Поліпшення SNR з використанням методик DSP


14

Я будую оптичну систему OOK (On Off Key Ring) без несучої частоти. [Однак у мене є час захисту між символами, тому послідовні повідомлення "1" призводять до потягу імпульсів на відміну від постійного струму, див. Зображення]. По суті, наявність сигналу вказує на один, а його відсутність вказує на нуль. У мене є точний годинник, який синхронізує приймач із передавачем. Система працює з низьким SNR, і мені подобається вдосконалювати SNR, використовуючи методи DSP.

У мене є кілька питань:

Я роблю вибіркове відбір проб у своєму апараті, інакше кажучи, я не безперервно відбираю канал, але вибираю лише тоді, коли ймовірність бачити сигнал максимальна (тобто це світловий імпульс, я час АЦП таким чином, що АЦП проби в кінці імпульсу, де я знаю, весь аналоговий ланцюг стабілізується). Дивіться зображення. введіть тут опис зображення

Звичайно, на цьому малюнку не відображається шум, але він є. Це особливо низька сигнальна система, і первинними джерелами шуму є шумовий шум, шум Джонсона та підсилювачі внутрішнього шуму. (оптична система, щоб не було іншого втручання, крім ВС). Моє спостереження за шумом вказує, що він подібний на всіх частотах. (Принаймні те, що я бачу в області застосування)

Зараз я використовую просте порівняння порогових значень у програмному забезпеченні, щоб визначити, чи є дані один або нуль. Чи є кращий спосіб? Я продумав деякі варіанти, але мені подобається чути від експертів.

Поки що я розглядав такі варіанти:

  • Робіть безперервний АЦП і намагайтеся інтегруватися під час підйому: Не зовсім впевнений у вигоді (можуть бути й інші переваги, я не знаю).

  • Відповідний фільтр у програмному забезпеченні: Не дуже розумію математику, але виходячи з того, що я читав, є можливість

  • Відбирайте пробу під час захисту та віднімайте це від значення АЦП сигналу (Це може надати деякі додаткові деталі, але також не настільки впевнені, що час захисту буде вимірюванням шуму)

  • Зміна апаратного забезпечення на синхронний декодер, затратна, забирає багато часу і може працювати не так добре, оскільки швидкість моєї передачі даних є швидкою, а отримання синхронного демодулятора означатиме дорогу плату, оскільки я маю побудувати мульті-МГц несучу частотну систему.


Як ваш пробовідбірник знає, коли відбудуться імпульси? Чи існує якась інша форма синхронізації часу між передавачем і приймачем?
Джейсон R

@JasonR так. Про це згадується в тексті.
Френк

1
Вибачте, я пропустив це під час свого початкового читання. Як характеризується шум? Він білий? Гаусса? Це взагалі навіть шум, чи це втручання від якогось іншого джерела? Як зауваження, я б вважав перші два варіанти, які ви перерахували, як еквівалентні, і вони можуть стосуватися вашої проблеми, але спочатку я хотів отримати додаткову інформацію про умови вашої системи.
Джейсон R

@JasonR дякую за відгук, я оновив питання щодо шуму.
Френк

Я б робив кілька серйозних ставок на відповідний фільтр.
Фонон

Відповіді:


9

Оскільки ви вказали, що спектр потужності вашого фонового шуму рівний, я вважаю, що він білий . Основним недоліком у вашому поточному підході є те, що ви відкидаєте велику кількість потужності сигналу; навіть із ефектом фронтального обмеження частоти, показаного на вашій діаграмі, ступенем відповіді на експоненціальний підйом, один зразок АЦП біля кінця округлого імпульсу забезпечує знімок входу приймача, який досить локалізований у часі. Ви можете скористатися більшою потужністю сигналу, взявши вибірки з більшою швидкістю та застосувавши відповідний фільтр при більшій швидкості вибірки.

Теорія:

Ви можете розглядати це як порівняно просту проблему в теорії виявлення . У кожному інтервалі символів ваш приймач повинен визначати між двома гіпотезами:

H0:signal is not presentH1:signal is present

Таку проблему часто вирішують за допомогою байєсівських правил рішення , які намагаються прийняти оптимальне рішення відповідно до певної міри ризику. Це забезпечує основу, де можна оптимально приймати рішення щодо виявлення на основі гнучких наборів критеріїв. Наприклад, якщо ваша система має велике покарання за те, що вона не виявила сигнал, якщо він насправді присутній (тобто ви вибираєте колиH0H1 відповідає дійсності), то ви можете вбудувати це у своє правило прийняття рішення, якщо це необхідно.

Для такої проблеми з виявленням, як ваша, коли ви намагаєтеся вирішити між нулями та одиницями на виході приймача, штраф зазвичай вважається рівним (виведення нуля при передачі одного, і навпаки, "болить однаково" ). Баєсівський підхід у цьому випадку зводиться до оцінки максимальної ймовірності (також описаної тут ): ви вибираєте гіпотезу, яка є найбільш ймовірною, враховуючи спостереження, яке робить ваш приймач. Тобто, якщо кількість, яку спостерігає ваш приймач, дорівнює , то вона б генерувала рішення на основі гіпотези, яка має найбільше значення функції ймовірності . У випадку двійкового рішення замість цього можна використовувати коефіцієнт ймовірності:x

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

Використовуючи вищевказану модель, для кожного спостереження за каналом оптимальний приймач вирішив би, що сигнал відсутній (тому виводить нуль), якщо коефіцієнт ймовірності Λ ( x )xΛ(x) більший за одиницю (і тому сигнал, швидше за все, був не бути присутнім на основі спостереження), і навпаки.

Залишається модель для сигналу, що цікавить, та будь-яких інших компонентів статистики виявлення приймача, яка може вплинути на його рішення. Для такої цифрової комунікації її можна моделювати так:x

H0:x=NH1:x=s+N

де - випадкова величина, взята з деякого розподілу (часто вважається нульовим середнім гауссом), а s - детермінований компонент спостереження, обумовлений сигналом, який ви шукаєте. Таким чином, розподіл приймача, що спостерігається x , змінюється залежно від того, чи справжня гіпотеза H 0 або H 1 . Для того, щоб оцінити коефіцієнт вірогідності, вам потрібна модель, якими є ці розподіли. Для згадуваного вище випадку Гаусса математика виглядає приблизно так: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

where σ2 is the variance of the Gaussian noise term. Note that the additive signal component only has the function of shifting the mean of the resulting Gaussian distribution of x. The log-likelihood ratio can be used to get rid of the exponentials:

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

Recall that our decision rule picked H0 if the likelihood ratio was greater than one. The equivalent log-likelihood decision rule is to pick H0 if the log-likelihood is greater than zero. Some algebra shows that the decision rule reduces to:

x<s2choose H0x>s2choose H1

Note that if x=s2, then both hypotheses are equally likely, and you would need to just pick one; this isn't a practical concern for continuously-valued signals, however. So, given a known signal amplitude s, we can detect its presence against a background of Gaussian noise optimally by setting a threshold T=s2; if the observed value x is greater than T, we declare the signal present and emit a one, and vice versa.

Practice:

There are a few practical issues that creep into this simple, toy theoretical example. One: just mapping the scenario that you described into a deceptively simple-looking model might not seem straightforward. Secondly, it's very rare that you would know the amplitude s of the signal that you're looking for, so threshold selection requires some thought.

As I referenced before, noise is often assumed to be Gaussian because the normal distribution is so easy to work with: the sum of a bunch of independent Gaussians is still Gaussian, and their mean and variances just add also. Also, the first- and second-order statistics of the distribution are enough to completely characterize them (given the mean and variance of a Gaussian distribution, you can write its pdf). So, hopefully that's a decent approximation at least for your application.

There are two ways to improve the performance of the detector given the model described above: you can increase s (i.e. increase the signal power), making it stand out more against the noise. You could decrease N (i.e. reduce the amount of noise), reducing the amount of interference that makes the presence of s unclear. Or, equivalently, you can think of the signal to noise ratio instead. To see its importance, let's go back to the theory for a second. What is the probability of a bit error given our decision rule?

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))

where Fx | x=s+N(z) is the cumulative distribution function of the distribution of the observation x, given that x=s+N (and likewise for the other function). Substituting in the cdf for the Gaussian distribution, we get:

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

My receiver has a BPF that cuts the high frequency signals. The BPF rounds off the initial spike of the pulse and it becomes a more exponential in nature. I can disable the BPF but this will introduce HF noise currently not in the chain. It sounds like I have a tradeoff, how can I quantify which way is better. (i.e remove BPF and use matched filter for a pulse, don't remove BPF and use a matched filter for a exponential rise)
Frank

I awarded the bounty to you, thanks very much for a great answer.
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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.