Heterodyning wartości zespolonych w gnuradio

Dec 01 2020

Pracowałem nad kształceniem się na temat działania radia SDR i GNU.

Aby zademonstrować heterodynację, ustawiłem wykres przepływu składający się z 2 generatorów sygnału, bloku mnożenia i spadka częstotliwości GUI QT. Generatory są podłączone do wejść Multiply block, a wyjście Multiply block jest podłączone do Freq Sink w celu heterodynacji dwóch sygnałów generatora.

Częstotliwości generatorów są połączone z suwakiem. Jeden generator ma wartość slider_value, a drugi slider_value + 2000. Oba generatory generują przebieg cosinusoidalny.

Ustawiając wszystkie wejścia na pływające, gdy przesuwam suwak, otrzymuję wyniki, których bym się spodziewał:

Widzę jeden szczyt zawsze przy 2000 Hz: slider_value - slider_value + 2000 = 2000. Tj. Sygnał różnicowy.

Widzę kolejny szczyt na sumie wyjść generatora: slider_value + slider_value + 2000 = (2 * slider_value) + 2000.

Jeśli jednak przełączę wszystkie wejścia i wyjścia na złożone, widzę tylko jeden szczyt, który jest sumą wartości. Nie widzę szczytu różnicy, tj. Nic przy 2000 (z wyjątkiem sytuacji, gdy slider_value = 0).

Czy ktoś może mi wyjaśnić, dlaczego nie widzę sygnału różnicowego podczas mnożenia sygnałów złożonych?

Odpowiedzi

6 PhilFrost-W8II Dec 01 2020 at 21:47

Tak działa matematyka złożonych sygnałów.

Dowód zaczyna się od wzoru Eulera :

$$ e^{i\varphi} = \cos \varphi + i \sin \varphi \tag 1 $$

Do przetwarzania sygnału zamiast $\varphi$, zwykle myślimy o jakiejś sinusoidalnej oscylacji przy częstotliwości kątowej $\omega$ to zmienia się w czasie $t$, które możemy zapisać jako:

$$ e^{i\omega t} \tag 2 $$

To jest to, co generuje blok generatora sygnału w trybie sinusoidalnym i ze złożonym wyjściem. W punkcie (1) powyżej widać, że zarówno części rzeczywiste, jak i urojone są sinusoidami o częstotliwości kątowej$\omega$, tylko przesunięcie o 90 stopni w fazie.

Kiedy pomnożymy razem dwie z tych złożonych sinusoid, na częstotliwościach $\omega_1$ i $\omega_2$, dostajesz:

$$ e^{i\omega_1 t} e^{i\omega_2 t} \tag 3 $$

co upraszcza do

$$ e^{i (\omega_1 + \omega_2) t} \tag 4 $$

który, ponownie przez (1), jest pojedynczą sinusoidą złożoną o częstotliwości $\omega_1 + \omega_2$. Nie ma różnicy terminów.

Konsekwencją tej matematyki jest to $\omega$może być negatywna. Dlatego w GNU Radio, jeśli masz złożony strumień o częstotliwości próbkowania, powiedzmy 48 kHz, może on odpowiadać szerokości pasma 96 kHz: od -48 kHz do 48 kHz.

Terminy sum i różnic, gdy heterodynowanie funkcji o wartościach rzeczywistych pojawia się, ponieważ funkcja rzeczywista nie może jednoznacznie reprezentować dodatnich i ujemnych częstotliwości, ale matematycznie nadal istnieją.

W jaki sposób? Rozważ dwie złożone sinusoidy na częstotliwościach$\omega$ i $-\omega$, podsumowane razem:

$$ e^{i\omega t} + e^{-i\omega t} = \cos \omega t + i \sin \omega t + \cos -\omega t + i \sin -\omega t \tag 5 $$

Biorąc pod uwagę tożsamości trygonometryczne:

$$ \cos x = \cos −x \\ \sin x + \sin -x = 0 \tag 6 $$

Now (5) upraszcza się do:

$$ e^{i\omega t} + e^{-i\omega t} = 2\cos(\omega t) \tag 7 $$

Co oznacza, że ​​mnożymy dwie rzeczywiste sinusoidy, aby heterodynować sygnał:

$$ \cos \omega_1 t \times \cos \omega_2 t \tag 8 $$

Następnie przez (7) i pomijając współczynnik 2 (ponieważ zmienia on tylko amplitudę wyniku, a to nie jest ważne), równoważnie robisz:

$$ (e^{i\omega_1 t} + e^{-i\omega_1 t}) (e^{i\omega_2 t} + e^{-i\omega_2 t}) \\ = (e^{-i(\omega_1-\omega_2)} + e^{i(\omega_1-\omega_2)}) + (e^{-i(\omega_1+\omega_2)} + e^{i(\omega_1+\omega_2)}) \tag 9 $$

Zwróć uwagę na różnicę częstotliwości po lewej stronie i sumę po prawej. Każda grupa składa się z dodatnich i ujemnych zmian o tej samej częstotliwości, co przez (7), jak wiemy, upraszcza się do sinusoidy o wartościach rzeczywistych. Zatem (9) dodatkowo upraszcza (ponownie pomijając współczynnik 2) do:

$$ \cos((\omega_1-\omega_2) t) + \cos((\omega_1+\omega_2) t) \tag {10} $$

I masz swoje wspólne równanie heterodynujące funkcji o wartościach rzeczywistych.

Zatem każda funkcja o wartościach rzeczywistych ma w sobie zarówno dodatnie, jak i ujemne częstotliwości, ale ujemne częstotliwości są tylko „zwierciadłem” dodatnich. To z powodu tych ujemnych częstotliwości demodulacja LSB może „odwrócić” widmo i to właśnie te ujemne częstotliwości powodują różnicę, gdy heterodynuje funkcje o wartościach rzeczywistych.