Mengubah I / Q mentah menjadi dB

8

Saya mendapatkan data I / Q dari radio yang ditentukan perangkat lunak. Saya ingin melakukan beberapa hal pada sinyal dalam data, tetapi hanya jika melebihi kisaran tertentu. Apa prosedur umum untuk mendapatkan dB (dBm, atau apa pun) dari data seperti ini? Program seperti SDR # melakukannya, tapi saya tidak tahu persis apa yang mereka lakukan sehingga saya bisa meniru mereka.

rambut kuda
sumber
Bagaimana dengan 10 * log10 (I ^ 2 + Q ^ 2)?
Hilmar
@Hilmar Saya bertanya-tanya apakah hanya itu yang ada di sana. Unit apa yang akan saya gunakan?
Rambut kuda
1
Mulailah dengan unit sinyal I dan Q Anda. Jika itu di Volt rumus di atas memberi Anda dBV.
Hilmar
@Hilmar Bisakah Anda memberi tahu saya, apa yang harus saya pertimbangkan nilai I dan Q masing-masing?
Pritam
@Pritam - apa maksudmu?
Rambut kuda

Jawaban:

16

Dasar-dasar

The amplitudo dari sinyal IQ hanya besarnya vektor, .saya2+Q2

The kekuatan dari sinyal IQ adalah besarnya kuadrat, .saya2+Q2

Ketika Anda melihat meter logaritmik (dB), biasanya mengukur log kekuatan, yaitu . (Ini juga dapat dihitung sebagai dari amplitudo, tetapi kecuali Anda sudah memiliki amplitudo yang membuang operasi root kuadrat.)10catatan10(saya2+Q2)20catatan10

Unit

Ingat, dB adalah angka relatif. Jika Anda hanya mengambil , maka 0 dB sesuai dengan amplitudo tepat 1. Jika driver perangkat keras Anda menggunakan konvensi titik mengambang biasa dari nilai sampel ekstrem absolut yang berasal dari −1 hingga +1, maka Anda dapat mengatakan bahwa nilai daya dB Anda adalah dBFS - desibel relatif terhadap skala penuh . Setiap sinyal yang lebih kuat dari level itu akan terpotong , mendistorsi sinyal.10catatan10(saya2+Q2)

dBm , desibel relatif terhadap satu miliwatt daya, hanya menggunakan level referensi yang berbeda. Anda dapat mengonversi ke dBm hanya dengan menambahkan atau mengurangi nilai kalibrasi yang tepat dari nilai dBFS - tetapi Anda perlu mengetahui kalibrasi untuk perangkat keras Anda pada frekuensi yang diinginkan, seperti dengan mengukurnya (menggunakan sumber sinyal output daya yang diketahui) ; tidak mungkin untuk melakukan kalibrasi itu murni dalam perangkat lunak karena sampel digital hanya angka tanpa unit yang melekat.

(Kesalahan yang saya lihat adalah merujuk pada nilai sampel, atau parameter yang skala menurut mereka seperti ambang batas amplitudo, sebagai berada di "volt"; ini adalah omong kosong kecuali ADC Anda (dan perangkat keras lainnya) benar-benar dikalibrasi hingga satu volt. Ini terlalu besar untuk penerima radio.)

Aplikasi praktis

Jika Anda hanya ingin mengabaikan sinyal yang tidak cukup kuat (ini dikenal sebagai carrier squelch atau power squelch ), tidak masalah unit apa yang Anda gunakan, atau bahkan jika mereka logaritmik atau linier, karena Anda hanya melakukan perbandingan yang lebih besar. Satu-satunya komponen penting adalah bahwa Anda mulai dengan (sebagai lawan dari, katakanlah, , yang jelas-jelas salah).saya2+Q2saya+Q

Catatan tentang bandwidth Anda mungkin tidak perlu membaca

Mungkin juga relevan untuk dicatat bahwa jika Anda memfilter sinyal, Anda secara definisi menghapus beberapa kekuatan sinyal, sehingga pengukuran akan lebih kecil.

Secara khusus, FFT (seperti tampilan visual utama dalam alat-alat seperti SDR #) dapat secara longgar dianggap sebagai kumpulan besar filter yang sangat tajam; setiap "bin" keluaran mengumpulkan sebagian daya input. Dengan demikian, daya di setiap tempat sampah tergantung pada lebar tempat sampah. Jika Anda membaginya dengan lebar tempat sampah di hertz (nilai itu menjadi ) sebelum mengambil logaritma, maka alih-alih daya dB, Anda mengukur kepadatan spektral daya dB , yang memiliki keuntungan menjadi independen dari lebar nampan FFT jika fitur yang Anda pedulikan lebih luas dari satu nampan (misalnya sinyal termodulasi pita lebar); jika lebih sempit (misalnya nada murni) maka nilai daya lebih berguna.tingkat sampel/Panjang FFT

Kevin Reid
sumber
3
Salah satu jawaban terbaik, paling relevan yang pernah saya lihat untuk pertanyaan yang saya ajukan. Terima kasih
rambut kuda,