Meningkatkan SNR menggunakan teknik DSP


14

Saya sedang membangun sistem OOK (On off Key Ring) optik tanpa frekuensi pembawa. [Namun saya memiliki waktu jaga di antara simbol, sehingga pesan "1" berturut-turut akan menghasilkan kereta pulsa yang berlawanan dengan DC, lihat gambar]. Pada dasarnya, keberadaan sinyal menunjukkan satu dan kurangnya sinyal menunjukkan nol. Saya memiliki jam yang tepat yang menyinkronkan penerima dengan pemancar. Sistem beroperasi dengan SNR rendah dan saya ingin meningkatkan SNR menggunakan teknik DSP.

Saya punya beberapa pertanyaan:

Saya melakukan pengambilan sampel selektif dalam perangkat keras saya, dengan kata lain, saya tidak terus-menerus mengambil sampel saluran tetapi hanya sampel ketika probabilitas melihat sinyal maksimum (yaitu ini adalah pulsa cahaya, saya mengatur waktu ADC sehingga sampel ADC di akhir) dari pulsa di mana saya tahu seluruh rantai analog distabilkan). Lihat gambar. masukkan deskripsi gambar di sini

Secara alami, gambar ini tidak menunjukkan suara tetapi itu ada. Ini khususnya sistem sinyal rendah dan sumber kebisingan utama adalah noise tembakan, noise Johnson dan noise internal amplifier. (Sistem optik sehingga tidak ada interferer lain kecuali Sun). Pengamatan saya terhadap kebisingan menunjukkan, ini serupa di semua frekuensi. (Setidaknya apa yang saya lihat di Lingkup)

Saya sekarang menggunakan perbandingan ambang batas sederhana dalam perangkat lunak untuk menentukan apakah datanya satu atau nol. Apakah ada cara yang lebih baik? Saya telah memikirkan beberapa opsi tetapi saya suka mendengar dari para ahli.

Sejauh ini saya telah mempertimbangkan opsi-opsi berikut:

  • Lakukan ADC terus menerus dan coba integrasikan selama waktu naik: Tidak sepenuhnya yakin akan manfaatnya (Mungkin ada manfaat lain, saya tidak tahu).

  • Filter yang cocok dalam perangkat lunak: Tidak benar-benar memahami matematika tetapi berdasarkan pada apa yang saya baca, kemungkinan

  • Sampel selama waktu jaga dan kurangi ini dari nilai ADC sinyal (Ini mungkin memberikan beberapa rincian lebih lanjut tetapi juga tidak begitu yakin, waktu jaga akan menjadi pengukuran kebisingan)

  • Mengubah perangkat keras menjadi decoder sinkron, mahal, memakan waktu dan mungkin tidak berfungsi dengan baik karena kecepatan data saya cepat dan mendapatkan demodulator sinkron akan berarti papan mahal karena saya harus membangun sistem frekuensi pembawa multi-MHz.


Bagaimana sampler Anda tahu kapan pulsa akan terjadi? Apakah ada bentuk sinkronisasi waktu antara pemancar dan penerima?
Jason R

@JasonR ya. Itu disebutkan dalam teks.
Frank

1
Maaf, saya melewatkannya saat membaca awal saya. Bagaimana karakteristik kebisingannya? Apakah itu putih? Gaussian? Apakah bahkan noise sama sekali, atau itu gangguan dari sumber lain? Sebagai catatan, saya akan mempertimbangkan dua opsi pertama yang Anda daftarkan setara, dan mereka mungkin relevan dengan masalah Anda, tetapi saya ingin informasi lebih lanjut tentang kondisi sistem Anda terlebih dahulu.
Jason R

@JasonR terima kasih atas umpan baliknya, saya memperbarui pertanyaan tentang kebisingan.
Frank

Saya akan menempatkan beberapa taruhan serius pada filter yang cocok.
Telepon

Jawaban:


9

Karena Anda menunjukkan bahwa spektrum daya kebisingan latar belakang Anda datar, saya akan menganggapnya putih . Kelemahan utama dengan pendekatan Anda saat ini adalah bahwa Anda membuang sejumlah besar kekuatan sinyal; bahkan dengan efek pengikatan ujung depan yang ditunjukkan oleh diagram Anda dengan respons langkah naik eksponensial, sampel ADC tunggal di dekat ujung pulsa bulat memberikan snapshot dari input penerima yang agak terlokalisir pada waktunya. Anda dapat memanfaatkan lebih banyak daya sinyal dengan mengambil sampel pada laju yang lebih tinggi dan menerapkan filter yang cocok pada laju sampel yang lebih tinggi.

Teori:

Anda dapat melihat ini sebagai masalah yang relatif sederhana dalam teori deteksi . Dalam setiap interval simbol, penerima Anda perlu memutuskan antara dua hipotesis:

H0:signal is not presentH1:signal is present

Masalah semacam ini sering diselesaikan dengan menggunakan aturan keputusan Bayesian , yang berupaya untuk membuat keputusan optimal sesuai dengan beberapa ukuran risiko tertentu. Ini memberikan kerangka kerja di mana seseorang dapat secara optimal membuat keputusan deteksi berdasarkan serangkaian kriteria yang fleksibel. Misalnya, jika ada penalti besar untuk sistem Anda karena gagal mendeteksi sinyal jika ternyata ada (yaitu Anda memilih ketika H 1 benar), maka Anda dapat membangun itu ke dalam aturan keputusan Anda jika diperlukan.H0H1

Untuk masalah pendeteksian seperti milik Anda, di mana Anda mencoba untuk memutuskan antara nol dan yang di output penerima, hukuman biasanya diasumsikan sama (mengeluarkan nol ketika satu dikirim, dan sebaliknya, "sama-sama sakit" ). Pendekatan Bayesian dalam kasus tersebut dikurangi menjadi penduga kemungkinan maksimum (juga dijelaskan di sini ): Anda memilih hipotesis yang paling mungkin, mengingat pengamatan yang dilakukan penerima Anda. Artinya, jika jumlah yang diamati oleh penerima Anda adalah , maka itu akan menghasilkan keputusan berdasarkan hipotesis yang memiliki nilai fungsi kemungkinan terbesar . Untuk kasus keputusan biner, rasio kemungkinan dapat digunakan sebagai gantinya:x

Λ(x)=P(x | H0 is true)P(x | H1 is true)=P(x | signal is not present)P(x | signal is present)

Dengan menggunakan model di atas, untuk setiap pengamatan saluran , penerima optimal akan memutuskan bahwa sinyal tidak ada (karena itu menghasilkan nol) jika rasio kemungkinan Λ ( x ) lebih besar dari satu (dan karena itu sinyal kemungkinan besar adalah untuk tidak hadir berdasarkan pengamatan), dan sebaliknya.xΛ(x)

Yang tersisa adalah model untuk sinyal dari bunga dan komponen lainnya di penerima deteksi statistik yang dapat mempengaruhi keputusan-keputusannya. Untuk komunikasi digital seperti ini, mungkin dimodelkan sebagai berikut:x

H0:x=NH1:x=s+N

di mana adalah variabel acak yang diambil dari beberapa distribusi (sering diasumsikan sebagai Gaussian nol-rata) dan s adalah komponen deterministik dari pengamatan yang disebabkan oleh sinyal yang Anda cari. Distribusi penerima yang dapat diamati x , oleh karena itu, bervariasi tergantung pada apakah hipotesis H 0 atau H 1 benar. Untuk mengevaluasi rasio kemungkinan, Anda memerlukan model untuk apa distribusi tersebut. Untuk kasus Gaussian yang dirujuk di atas, matematika terlihat seperti ini:nsxH0H1

Λ(x)=P(x | H0 is true)P(x | H1 is true)=P(x | x=N)P(x | x=s+N)

Λ(x)=P(x | H0 is true)P(x | H1 is true)=ex22σ2e(xs)22σ2

di mana adalah varian dari istilah noise Gaussian, Perhatikan bahwa komponen sinyal aditif hanya memiliki fungsi menggeser rata-rata distribusi Gaussian x yang dihasilkan . Rasio log-likelihood dapat digunakan untuk menyingkirkan eksponensial:σ2x

ln(Λ(x))=ln(ex22σ2e(xs)22σ2)=(x22σ2)((xs)22σ2)

Ingat bahwa aturan keputusan kami memilih jika rasio kemungkinan lebih besar dari satu. Aturan keputusan log-likelihood yang setara adalah untuk memilih H 0 jika log-likelihood lebih besar dari nol. Beberapa aljabar menunjukkan bahwa aturan keputusan berkurang menjadi:H0H0

x<s2choose H0x>s2choose H1

x=s2sT=s2xT

Praktek:

s

Seperti yang saya rujuk sebelumnya, noise sering dianggap sebagai Gaussian karena distribusi normal sangat mudah untuk dikerjakan: jumlah sekelompok Gaussi independen masih Gaussian, dan rata-rata serta variansnya juga menambahkan. Juga, statistik urutan pertama dan kedua dari distribusi sudah cukup untuk sepenuhnya mencirikannya (mengingat rata-rata dan varian dari distribusi Gaussian, Anda dapat menulis pdf -nya ). Jadi, semoga itu perkiraan yang layak setidaknya untuk aplikasi Anda.

sNs

Pe=P(choose H0 | H1 true)P(H1 true)+P(choose H1 | H0 true)P(H0 true)=12P(x<s2 | x=s+N)+12P(x>s2 | x=N)=12Fx | x=s+N(s2)+12(1Fx | x=N(s2))

Fx | x=s+N(z)xx=s+N

Pe=12(1Q(s2sσ))+12Q(s2σ)=12+12(Q(s2sσ)+Q(s2σ))=12+12(Q(s2σ)+Q(s2σ))=12+12(Q(SNR2)+Q(SNR2))=Q(SNR2)

where Q(x) is the Q function:

Q(x)=12πxez22dz

(i.e. the tail integral of the standard normal distribution's pdf, or 1 minus the distribution's cdf) and SNR is the signal-to-noise ratio sσ. The above function is a strictly decreasing function of SNR; as you increase the ratio of the signal amplitude s to the noise standard deviation σ, the probability of making a bit decision error decreases. So, it behooves you to do whatever you can to increase this ratio.

Remember our assumption that the noise was white and Gaussian? That can help us now. If the noise is white and Gaussian, then the noise components contained in each observation are jointly independent of one another. An important property of independent random variables is that when you sum them together, their means and variances sum. So, let's consider another simple case, where instead of taking one sample per symbol interval, you take two, then sum them together. I'll assume for simplicity that the pulse shape is rectangular (not an exponential rise), so the signal component s in each observation x1 and x2 is the same. What is the difference in signal to noise ratio between just a single observation x1 and the sum of two independent ones?

SNR1=sσ

SNR2=2s2σ=2SNR1

So, the signal to noise ratio in the combined observation is larger than using only a single sample (under the assumption of equal signal component and equal-variance white Gaussian noise in both samples that we took). This is a basic observation that points out the potential benefits of taking more than one sample per symbol interval and integrating them together (which, for a rectangular pulse, is a matched filter). In general, you want to cover the entire symbol interval with samples so that your receiver "ingests" as much of the transmitted energy for each symbol, thus maximizing the SNR in the combined output. The ratio of symbol energy to the background noise variance EsN0 is often used as a figure of merit when evaluating digital communications system performance.

More rigorously, it can be shown that a matched filter has an impulse response that is identical in shape (that is, "matched", with the only subtle exception being that the impulse response is reversed in time) to the pulse shape that the receiver sees (so it weights more strongly samples that have larger signal components). That shape is a function of the transmitted pulse shape as well as any effects induced by the channel or receiver front end, such as bandlimiting or multipath.

To implement this sort of arrangement in practice, you would convolve the stream of samples taken by your ADC with the time-reversed expected pulse shape. This has the effect of calculating the cross-correlation between the pulse shape and the received signal for all possible time offsets. Your implementation is aided by the precise time synchronization that you have available, so you'll know exactly which matched filter output samples correspond to correct sampling instants. The filter outputs at those times are used as the detection statistic x in the theoretical model above.

I referred to threshold selection before, which can be a complicated topic, and there are many different ways that you can choose one, depending upon your system's structure. Selecting a threshold for an on-off-keyed system is complicated by the likely-unknown signal amplitude s; other signal constellations, like antipodal signaling (e.g. binary phase shift keying, or BPSK) have a more obvious threshold choice (for BPSK, the best threshold is zero for equally-likely data).

One simple implementation of a threshold selector for OOK might calculate the mean of many observations. Assuming that zeros and ones are equally likely, the expected value of the resulting random variable is half of the signal amplitude, which is the threshold that you seek. Performing this operation over a sliding window can allow you to be somewhat adaptive to varying background conditions.

Note that this is only intended to be a high-level introduction to the issues inherent in digital communications with respect to detection theory. It can be a very complicated topic, with a lot of statistics involved; I tried to make it somewhat easy to understand while keeping true to the underlying theory. For a better explanation, go get a good textbook, like Sklar's.


thanks for the detailed answer, I learned a lot from it. I like to ask a few clarifications. I get the point of more than 1 sample at the duration. In this case how a matched filter look like? Say, I have three samples x1,x2,x3 (x3 at the tail end and x1 at the beginning). Based on what I read, I must convolve this with a same but symmetrical shape signal. Can you perhaps explain this part? [I think I know the answer but just to make sure] Second part, I know what is the dynamic range of incoming signal would be as I have taken measurements. Can I use that range for threshold setting?
Frank

A matched filter is a way of implementing a sliding cross-correlation between the signal seen by your receiver and the expected pulse shape. The diagram shown in your question illustrates the pulse seen by the ADC as an exponential rise; if that is indeed your model for what the receiver sees, then the appropriate matched filter would have the same shape, only reversed in time (the time reversal turns the convolution operation into correlation). If the receiver front end doesn't appreciably distort the pulse, you could use an "ideal" rectangular matched filter, which is simpler to implement.
Jason R

As to your second question: yes, if you know a priori the expected amplitude of the signal component, then you can use that to select a threshold. Using the statistical model for the system (based on the type of noise that is present), you can calculate the bit error rate as a function of the signal to noise ratio (which is proportional to the signal amplitude). If the thermal noise of your receiver is the dominant source, then white Gaussian noise is usually a good assumption.
Jason R

Penerima saya memiliki BPF yang memotong sinyal frekuensi tinggi. BPF melengkapi lonjakan awal pulsa dan menjadi lebih eksponensial. Saya dapat menonaktifkan BPF tetapi ini akan memperkenalkan kebisingan HF saat ini tidak dalam rantai. Sepertinya saya memiliki pengorbanan, bagaimana saya bisa mengukur mana yang lebih baik. (Yaitu menghapus BPF dan menggunakan filter yang cocok untuk pulsa, jangan menghapus BPF dan menggunakan filter yang cocok untuk kenaikan eksponensial)
Frank

Saya memberikan hadiah kepada Anda, terima kasih banyak atas jawaban yang bagus.
Frank

0

One possible technique might be to try using periodic training sequences to gather statistics, not only to differentiate between the 1's and 0's, or to calculate a reliability metric for any given threshold, but to analyze how various bit sequences might affect an adaptive bit decision threshold.


interesting thinking but not suitable. I need to make a decision fast and even if I work with previous data, variation in the field would be large.
Frank
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.