Heterodyning wartości zespolonych w gnuradio
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
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.