Amélioration du SNR à l'aide des techniques DSP


14

Je construis un système optique OOK (On off Key Ring) sans fréquence porteuse. [Cependant, j'ai un temps de garde entre les symboles, donc un message "1" consécutif se traduira par un train d'impulsions par opposition à DC, voir l'image]. Essentiellement, la présence de signal indique un et son absence indique zéro. J'ai une horloge précise qui synchronise le récepteur avec l'émetteur. Le système fonctionne avec un faible SNR et j'aime améliorer le SNR en utilisant des techniques DSP.

J'ai quelques questions:

Je fais un échantillonnage sélectif dans mon matériel, en d'autres termes, je n'échantillonne pas en continu le canal mais seulement lorsque la probabilité de voir le signal est maximale (c'est-à-dire qu'il s'agit d'une impulsion lumineuse, je chronomètre l'ADC de telle sorte que l'ADC échantillonne à la fin de l'impulsion où je sais que toute la chaîne analogique est stabilisée). Voir l'image. entrez la description de l'image ici

Naturellement, ce dessin ne montre pas le bruit mais il est là. Il s'agit en particulier d'un système à faible signal et les principales sources de bruit sont le bruit de grenaille, le bruit de Johnson et le bruit interne des amplificateurs. (système optique donc il n'y a pas d'autre brouilleur que Sun). Mon observation du bruit indique qu'il est similaire à toutes les fréquences. (Au moins ce que je vois dans Scope)

J'utilise maintenant une comparaison de seuil simple dans le logiciel pour déterminer si les données sont égales à zéro ou nulles. Y a-t-il une meilleure façon? J'ai pensé à quelques options mais j'aime entendre les experts.

Jusqu'à présent, j'ai envisagé les options suivantes:

  • Faire un ADC continu et essayer de s'intégrer pendant le temps de montée: Pas tout à fait sûr de l'avantage (Il peut y avoir d'autres avantages, je ne sais pas).

  • Filtre adapté dans le logiciel: Je ne comprends pas vraiment les mathématiques mais en fonction de ce que je lis, une possibilité

  • Échantillonnez pendant le temps de garde et soustrayez-le de la valeur ADC du signal (cela peut fournir d'autres détails mais pas aussi sûr, le temps de garde serait la mesure du bruit)

  • Changer de matériel en un décodeur synchrone, coûteux, long et peut ne pas fonctionner correctement car mon débit de données est rapide et obtenir un démodulateur synchrone signifierait une carte coûteuse car je dois construire un système de fréquence porteuse multi-MHz.


Comment votre échantillonneur sait-il quand les impulsions vont se produire? Existe-t-il une autre forme de synchronisation horaire entre l'émetteur et le récepteur?
Jason R

@JasonR oui. Il est mentionné dans le texte.
Frank

1
Désolé, je l'ai raté lors de ma première lecture. Comment le bruit est-il caractérisé? C'est blanc? Gaussien? S'agit-il même de bruit, ou s'agit-il d'interférences d'une autre source? À titre de remarque, je considérerais les deux premières options que vous avez énumérées comme équivalentes, et elles peuvent être pertinentes pour votre problème, mais je voulais d'abord plus d'informations sur les conditions de votre système.
Jason R

@JasonR merci pour les commentaires, j'ai mis à jour la question concernant le bruit.
Frank

Je placerais quelques paris sérieux sur un filtre assorti.
Phonon

Réponses:


9

Puisque vous avez indiqué que le spectre de puissance de votre bruit de fond est plat, je suppose qu'il est blanc . Un inconvénient majeur de votre approche actuelle est que vous rejetez une grande partie de la puissance du signal; même avec l'effet de la limitation de bande frontale montrée par dans votre diagramme par la réponse de l'étape de montée exponentielle, un seul échantillon ADC près de la fin de l'impulsion arrondie fournit un instantané de l'entrée du récepteur qui est plutôt localisé dans le temps. Vous pouvez profiter d'une plus grande puissance du signal en échantillonnant à une fréquence plus élevée et en appliquant un filtre adapté à la fréquence d'échantillonnage plus élevée.

Théorie:

Vous pouvez considérer cela comme un problème relativement simple dans la théorie de la détection . Dans chaque intervalle de symboles, votre récepteur doit choisir entre deux hypothèses:

H0:signal is not presentH1:signal is present

Ce type de problème est souvent résolu en utilisant des règles de décision bayésiennes , qui tentent de prendre la décision optimale en fonction d'une mesure de risque spécifiée. Cela fournit un cadre dans lequel on peut prendre de manière optimale des décisions de détection basées sur un ensemble flexible de critères. Par exemple, s'il y a une grande pénalité dans votre système pour ne pas détecter le signal s'il est en fait présent (c'est-à-dire que vous choisissez lorsque H 1 est vrai), vous pouvez l'intégrer dans votre règle de décision si nécessaire.H0H1

Pour un problème de détection tel que le vôtre, où vous essayez de choisir entre des zéros et des uns à la sortie du récepteur, la pénalité est généralement supposée égale (sortie d'un zéro quand un a été transmis, et vice versa, "blessé également"). ). L'approche bayésienne dans ce cas se réduit à un estimateur du maximum de vraisemblance (également décrit ici ): vous choisissez l'hypothèse la plus probable, compte tenu de l'observation faite par votre récepteur. Autrement dit, si la quantité que votre récepteur observe est , cela générerait une décision basée sur l'hypothèse qui a la plus grande valeur de fonction de vraisemblance . Pour le cas de décision binaire, le rapport de vraisemblance peut être utilisé à la place:x

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

En utilisant le modèle ci-dessus, pour chaque observation du canal , le récepteur optimal déciderait que le signal n'était pas présent (donc produisant un zéro) si le rapport de vraisemblance Λ ( x ) est supérieur à un (et donc le signal était très probablement être absent sur la base de l'observation), et vice versa.xΛ(x)

Ce qui reste est un modèle pour le signal d'intérêt et tous les autres composants de la statistique de détection du récepteur qui pourraient affecter ses décisions. Pour une communication numérique comme celle-ci, elle pourrait être modélisée comme suit:x

H0:x=NH1:x=s+N

est une variable aléatoire tirée d'une certaine distribution (souvent supposée être gaussienne à moyenne nulle) et s est une composante déterministe de l'observation qui est due au signal que vous recherchez. La distribution du récepteur observable x varie donc selon que l'hypothèse H 0 ou H 1 est vraie. Afin d'évaluer le rapport de vraisemblance, vous avez besoin d'un modèle pour définir ces distributions. Pour le cas gaussien référencé ci-dessus, les mathématiques ressemblent à ceci: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

est la variance du terme de bruit gaussien. Notez que la composante du signal additif n'a pour fonction que de déplacer la moyenne de la distribution gaussienne résultante de x . Le rapport log-vraisemblance peut être utilisé pour se débarrasser des exponentielles:σ2x

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

Rappelons que notre règle de décision a choisi si le rapport de vraisemblance était supérieur à un. La règle de décision log-vraisemblance équivalente est de choisir H 0 si la log-vraisemblance est supérieure à zéro. Certaines algèbres montrent que la règle de décision se réduit à:H0H0

x<s2choose H0x>s2choose H1

Notez que si , alors les deux hypothèses sont tout aussi probables, et il vous suffit d'en choisir une; ce n'est cependant pas une préoccupation pratique pour les signaux à valeur continue. Donc, étant donné une amplitude de signal connues, nous pouvons détecter sa présence sur un fond de bruit gaussien de manière optimale en fixant un seuilT=sx=s2s ; si la valeur observéexest supérieure àT, nous déclarons le signal présent et émettons un, et vice versa.T=s2xT

Entraine toi:

Il y a quelques problèmes pratiques qui se glissent dans cet exemple théorique simple et jouet. Premièrement: le simple fait de mapper le scénario que vous avez décrit dans un modèle d'apparence trompeuse peut ne pas sembler simple. En second lieu , il est très rare que vous sauriez l'amplitude du signal que vous cherchez, si la sélection de seuil nécessite une certaine réflexion.s

Comme je l'ai mentionné précédemment, le bruit est souvent supposé être gaussien parce que la distribution normale est si facile à travailler: la somme d'un groupe de gaussiens indépendants est toujours gaussienne, et leur moyenne et leurs variances s'ajoutent également. De plus, les statistiques de premier et de second ordre de la distribution sont suffisantes pour les caractériser complètement (étant donné la moyenne et la variance d'une distribution gaussienne, vous pouvez écrire son pdf ). Donc, j'espère que c'est une approximation décente au moins pour votre application.

Il existe deux façons d'améliorer les performances du détecteur étant donné le modèle décrit ci-dessus: vous pouvez augmenter (c.-à-d. Augmenter la puissance du signal), en le faisant ressortir davantage contre le bruit. Vous pouvez diminuer N (c.-à-d. Réduire la quantité de bruit), ce qui réduit la quantité d'interférences qui rend la présence de s peu claire. Ou, de manière équivalente, vous pouvez plutôt penser au rapport signal / bruit . Pour voir son importance, revenons à la théorie pendant une seconde. Quelle est la probabilité d'une erreur de bit étant donné notre règle de décision?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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.