Nilai-nilai kompleks heterodyning di gnuradio
Saya telah bekerja untuk mendidik diri saya sendiri tentang cara kerja Radio SDR dan GNU.
Untuk mendemonstrasikan heterodyning, saya membuat grafik aliran yang terdiri dari 2 generator sinyal, blok Multiply, dan QT GUI Frequency Sink. Generator terhubung ke input blok Multiply, dan output blok Multiply terhubung ke Freq Sink, untuk heterodyne dua sinyal generator.
Frekuensi generator terkait dengan penggeser. Satu generator adalah slider_value, yang lainnya adalah slider_value + 2000. Kedua generator mengeluarkan bentuk gelombang kosinus.
Saat mengatur semua input ke float, saat saya menggerakkan slider, saya mendapatkan hasil yang saya harapkan:
Saya melihat satu puncak selalu pada 2000 Hz: slider_value - slider_value + 2000 = 2000. Yaitu, sinyal perbedaan.
Saya melihat puncak lain pada jumlah output generator: slider_value + slider_value + 2000 = (2 * slider_value) + 2000.
Namun, jika saya mengalihkan semua input dan output ke kompleks, saya hanya melihat satu puncak yang merupakan jumlah nilai. Saya tidak melihat puncak perbedaan, yaitu, tidak ada pada 2000 (kecuali ketika slider_value = 0).
Dapatkah seseorang menjelaskan kepada saya mengapa saya tidak melihat perbedaan sinyal ketika mengalikan sinyal kompleks?
Jawaban
Beginilah cara kerja matematika sinyal kompleks.
Pembuktiannya dimulai dengan rumus Euler :
$$ e^{i\varphi} = \cos \varphi + i \sin \varphi \tag 1 $$
Untuk pemrosesan sinyal, alih-alih$\varphi$, kita biasanya berpikir tentang beberapa osilasi sinusoidal pada frekuensi sudut$\omega$yang bervariasi dengan waktu$t$, yang dapat kita tulis sebagai:
$$ e^{i\omega t} \tag 2 $$
Inilah yang dihasilkan oleh blok generator sinyal, ketika dalam mode sinus dan dengan keluaran yang kompleks. Dengan (1) di atas Anda dapat melihat bagian nyata dan imajiner adalah sinusoidal pada frekuensi sudut$\omega$, cukup offset 90 derajat dalam fase.
Ketika Anda mengalikan dua sinusoidal kompleks ini bersama-sama, pada frekuensi$\omega_1$dan$\omega_2$, Anda mendapatkan:
$$ e^{i\omega_1 t} e^{i\omega_2 t} \tag 3 $$
yang disederhanakan menjadi
$$ e^{i (\omega_1 + \omega_2) t} \tag 4 $$
yang, sekali lagi dengan (1), adalah sinusoid kompleks tunggal pada frekuensi$\omega_1 + \omega_2$. Tidak ada istilah perbedaan.
Konsekuensi dari matematika ini adalah bahwa$\omega$bisa negatif. Itulah sebabnya di GNU Radio jika Anda memiliki aliran kompleks pada laju sampel katakanlah 48 kHz, itu dapat mewakili bandwidth 96 kHz: dari -48 kHz hingga 48 kHz.
Jumlah dan perbedaan istilah ketika heterodyning fungsi bernilai nyata muncul karena fungsi nyata tidak dapat secara jelas mewakili frekuensi positif dan negatif, tetapi secara matematis, mereka masih ada.
Bagaimana? Pertimbangkan dua sinusoidal kompleks, pada frekuensi$\omega$dan$-\omega$, dijumlahkan:
$$ e^{i\omega t} + e^{-i\omega t} = \cos \omega t + i \sin \omega t + \cos -\omega t + i \sin -\omega t \tag 5 $$
Mengingat identitas trigonometri:
$$ \cos x = \cos −x \\ \sin x + \sin -x = 0 \tag 6 $$
Sekarang (5) disederhanakan menjadi:
$$ e^{i\omega t} + e^{-i\omega t} = 2\cos(\omega t) \tag 7 $$
Yang berarti ketika Anda mengalikan dua sinusoidal nyata ke heterodyne sebuah sinyal:
$$ \cos \omega_1 t \times \cos \omega_2 t \tag 8 $$
Kemudian dengan (7) dan mengabaikan faktor 2 (karena itu hanya mengubah amplitudo hasil, dan itu tidak penting), sama halnya Anda melakukan:
$$ (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 $$
Perhatikan perbedaan frekuensi di sebelah kiri, dan jumlah di sebelah kanan. Setiap grup terdiri dari variasi positif dan negatif dari frekuensi yang sama, yang dengan (7) kita tahu disederhanakan menjadi sinusoidal bernilai nyata. Jadi (9) lebih lanjut menyederhanakan (sekali lagi mengabaikan faktor 2) menjadi:
$$ \cos((\omega_1-\omega_2) t) + \cos((\omega_1+\omega_2) t) \tag {10} $$
Dan di sana Anda memiliki persamaan heterodyning fungsi bernilai nyata yang sama.
Jadi, setiap fungsi bernilai nyata memiliki frekuensi positif dan negatif di dalamnya, tetapi frekuensi negatif hanyalah "cermin" dari frekuensi positif. Karena frekuensi negatif itulah demodulasi LSB dapat "membalikkan" spektrum , dan frekuensi negatif itulah yang menyebabkan perbedaan istilah ketika heterodyning fungsi bernilai nyata.