Miglioramento del SNR mediante tecniche DSP


14

Sto costruendo un sistema OOK (On off Key Ring) ottico senza frequenza portante. [Comunque ho un tempo di guardia tra i simboli, quindi un messaggio "1" consecutivo produrrà un treno di impulsi rispetto a DC, vedi immagine]. In sostanza, la presenza del segnale indica uno e la mancanza di esso indica zero. Ho un orologio preciso che sincronizza il ricevitore con il trasmettitore. Il sistema funziona con un SNR basso e mi piace migliorare il SNR usando le tecniche DSP.

Ho alcune domande:

Faccio un campionamento selettivo nel mio hardware, in altre parole, non continuo a campionare il canale ma solo a campionare quando la probabilità di vedere il segnale è massima (cioè questo è un impulso luminoso, temporizzo l'ADC in modo tale che ADC alla fine dell'impulso in cui so che l'intera catena analogica è stabilizzata). Vedi l'immagine enter image description here

Naturalmente, questo disegno non mostra il rumore ma è lì. Si tratta in particolare di un sistema a basso segnale e le fonti di rumore primarie sono il rumore di colpo, il rumore di Johnson e il rumore interno degli amplificatori. (sistema ottico quindi non ci sono altri interferenti tranne Sun). La mia osservazione del rumore indica che è simile in tutte le frequenze. (Almeno quello che vedo in Scope)

Ora utilizzo un semplice confronto di soglie nel software per determinare se i dati sono uno o zero. C'è un modo migliore? Ho pensato ad alcune opzioni, ma mi piace sentire gli esperti.

Finora ho considerato le seguenti opzioni:

  • Esegui l'ADC continuo e cerca di integrarti durante i periodi di crescita: non sei completamente sicuro del vantaggio (potrebbero esserci altri vantaggi, non lo so).

  • Filtro abbinato nel software: non capisco davvero la matematica, ma in base a ciò che leggo, una possibilità

  • Campionare durante il tempo di guardia e sottrarlo dal valore del segnale ADC (Questo potrebbe fornire ulteriori dettagli ma anche non essere sicuro, il tempo di guardia sarebbe la misurazione del rumore)

  • Cambia l'hardware in un decodificatore sincrono, costoso, che richiede tempo e potrebbe non funzionare bene poiché la mia velocità di dati è veloce e ottenere un demodulatore sincrono significherebbe una scheda costosa poiché devo costruire un sistema di frequenza portante multi-MHz.


Come fa il campionatore a sapere quando si verificano gli impulsi? Esiste un'altra forma di sincronizzazione dell'ora tra trasmettitore e ricevitore?
Jason R,

@JasonR sì. È menzionato nel testo.
Frank,

1
Scusa, mi sono perso durante la mia lettura iniziale. Come si caratterizza il rumore? È bianco? Gaussiana? È addirittura rumore o interferenza da qualche altra fonte? Come nota, considererei le prime due opzioni che hai elencato come equivalenti e potrebbero essere rilevanti per il tuo problema, ma prima volevo avere maggiori informazioni sulle condizioni del tuo sistema.
Jason R,

@JasonR grazie per il feedback, ho aggiornato la domanda relativa al rumore.
Frank

Vorrei fare alcune scommesse serie su un filtro abbinato.
Phonon,

Risposte:


9

Dato che hai indicato che lo spettro di potenza del tuo rumore di fondo è piatto, suppongo che sia bianco . Un grosso svantaggio del tuo attuale approccio è che stai scartando una grande quantità di potenza del segnale; anche con l'effetto del limite di banda front-end mostrato nel diagramma dalla risposta del passo di aumento esponenziale, un singolo campione ADC vicino alla fine dell'impulso arrotondato fornisce un'istantanea dell'ingresso del ricevitore piuttosto localizzata nel tempo. È possibile sfruttare al massimo la potenza del segnale campionando a una frequenza più elevata e applicando un filtro corrispondente alla frequenza di campionamento più elevata.

Teoria:

Puoi considerare questo come un problema relativamente semplice nella teoria del rilevamento . In ogni intervallo di simboli, il ricevitore deve decidere tra due ipotesi:

H0:signal is not presentH1:signal is present

Questo tipo di problema viene spesso risolto utilizzando le regole decisionali bayesiane , che tentano di prendere la decisione ottimale secondo una determinata misura di rischio. Ciò fornisce un quadro in cui è possibile prendere in modo ottimale decisioni di rilevamento basate su una serie flessibile di criteri. Ad esempio, se il tuo sistema ha una grande penalità per non riuscire a rilevare il segnale se è effettivamente presente (cioè scegli quando H 1 è vero), allora puoi incorporarlo nella tua regola di decisione, se necessario.H0H1

Per un problema di rilevamento come il tuo, in cui si sta tentando di decidere tra zero e uno sull'uscita del ricevitore, la penalità viene generalmente considerata uguale (emettere uno zero quando viene trasmesso uno e viceversa, "fare ugualmente male" ). L'approccio bayesiano in quel caso si riduce a uno stimatore della massima verosimiglianza (anche descritto qui ): si sceglie l'ipotesi che è molto probabile, data l'osservazione che il ricevitore fa. Cioè, se la quantità osservata dal ricevitore è , genererebbe una decisione basata sull'ipotesi che ha il valore della funzione di probabilità più grande . Per il caso di decisione binaria, è possibile utilizzare invece il rapporto di probabilità:x

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

Utilizzando il modello di cui sopra, per ogni osservazione del canale , il ricevitore ottimale sarebbe decidere che il segnale non era presente (quindi emetta zero) se il rapporto rischio Λ ( x ) è maggiore di uno (e quindi il segnale era più probabile non essere presente in base all'osservazione) e viceversa.xΛ(x)

Ciò che rimane è un modello per il segnale di interesse e qualsiasi altro componente nella statistica di rilevazione del ricevitore che potrebbe influenzare le sue decisioni. Per comunicazioni digitali come questa, potrebbe essere modellato come segue:x

H0:x=NH1:x=s+N

dove è una variabile casuale presa da una certa distribuzione (spesso considerata gaussiana a media zero) e s è una componente deterministica dell'osservazione dovuta al segnale che stai cercando. La distribuzione della ricevibile osservabile x , pertanto, varia a seconda che l'ipotesi H 0 o H 1 sia vera. Per valutare il rapporto di verosimiglianza, è necessario un modello per quali sono tali distribuzioni. Per il caso gaussiano di cui sopra, la matematica appare così: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

dove è la varianza del termine di rumore gaussiano. Si noti che il componente del segnale additivo ha solo la funzione di spostare la media della distribuzione gaussiana risultante di x . Il rapporto verosimiglianza può essere usato per sbarazzarsi degli esponenziali:σ2x

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

Ricordiamo che la nostra regola di decisione ha scelto se il rapporto di probabilità era maggiore di uno. La regola di decisione della probabilità logaritmica equivalente è selezionare H 0 se la verosimiglianza logaritmica è maggiore di zero. Alcune algebre mostrano che la regola decisionale si riduce a:H0H0

x<s2choose H0x>s2choose H1

Nota che se , quindi entrambe le ipotesi sono ugualmente probabili e dovresti sceglierne solo una; questa non è una preoccupazione pratica per segnali a valore continuo, comunque. Quindi, data un'ampiezza del segnale notas, possiamo rilevare la sua presenza su uno sfondo di rumore gaussiano in modo ottimale impostando una sogliaT=sx=s2s ; se il valore osservatoxè maggiore diT, dichiariamo il segnale presente ed emettiamo uno e viceversa.T=s2xT

Pratica:

Ci sono alcuni problemi pratici che si insinuano in questo semplice esempio teorico di giocattoli. Uno: semplicemente mappare lo scenario che hai descritto in un modello apparentemente semplice dall'aspetto potrebbe non sembrare semplice. In secondo luogo, è molto raro che si dovrebbe conoscere l'ampiezza del segnale che si sta cercando, quindi selezione soglia richiede una riflessione.s

Come ho fatto riferimento in precedenza, si presume spesso che il rumore sia gaussiano perché la distribuzione normale è così facile da lavorare: la somma di un gruppo di gaussiani indipendenti è ancora gaussiana e anche la loro media e varianze si aggiungono. Inoltre, le statistiche della distribuzione di primo e secondo ordine sono sufficienti per caratterizzarle completamente (data la media e la varianza di una distribuzione gaussiana, puoi scrivere il suo pdf ). Quindi, si spera che sia un'approssimazione decente almeno per la tua applicazione.

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)X, dato che X=S+N(e similmente per l'altra funzione). Sostituendo nel cdf la distribuzione gaussiana, otteniamo:

Pe=12(1Q(s2Sσ))+12Q(S2σ)=12+12(-Q(S2-Sσ)+Q(S2σ))=12+12(-Q(-S2σ)+Q(S2σ))=12+12(-Q(-SNR2)+Q(SNR2))=Q(SNR2)

dove Q(X)è la funzione Q :

Q(X)=12πXe-z22dz

(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 σ, diminuisce la probabilità di commettere un errore di decisione bit. Quindi, ti conviene fare tutto il possibile per aumentare questo rapporto.

Ricordi la nostra supposizione che il rumore fosse bianco e gaussiano? Questo può aiutarci ora. Se il rumore è bianco e gaussiano, le componenti del rumore contenute in ciascuna osservazione sono congiuntamente indipendenti l'una dall'altra. Una proprietà importante di variabili casuali indipendenti è che quando le sommi, le loro medie e varianze si sommano. Quindi, consideriamo un altro caso semplice, in cui invece di prelevare un campione per intervallo di simboli, ne prendi due e poi li sommiamo. Presumo per semplicità che la forma dell'impulso sia rettangolare (non un aumento esponenziale), quindi la componente del segnaleS in ogni osservazione X1 e X2è la stessa. Qual è la differenza nel rapporto segnale-rumore tra una singola osservazioneX1 e la somma di due indipendenti?

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 viene spesso utilizzato come figura di merito nella valutazione delle prestazioni del sistema di comunicazione digitale.

Più rigorosamente, si può dimostrare che un filtro abbinato ha una risposta all'impulso di forma identica (cioè "abbinato", con l'unica sottile eccezione che la risposta all'impulso è invertita nel tempo) alla forma dell'impulso che il ricevitore vede (quindi pondera più fortemente i campioni con componenti di segnale più grandi). Tale forma è una funzione della forma dell'impulso trasmesso nonché di qualsiasi effetto indotto dal canale o dal front-end del ricevitore, come la limitazione della banda o il multipath .

Per implementare questo tipo di disposizione in pratica, si dovrebbe contorcere il flusso di campioni prelevati dall'ADC con la forma dell'impulso previsto invertita nel tempo. Ciò ha l'effetto di calcolare la correlazione incrociata tra la forma dell'impulso e il segnale ricevuto per tutti i possibili offset di tempo. L'implementazione è aiutata dalla sincronizzazione temporale esatta che hai a disposizione, quindi saprai esattamente quali campioni di output del filtro abbinati corrispondono a istanti di campionamento corretti. Le uscite del filtro in quei momenti vengono utilizzate come statistica di rilevamentoX nel modello teorico sopra.

In precedenza ho fatto riferimento alla selezione della soglia, che può essere un argomento complicato, e ci sono molti modi in cui puoi sceglierne uno, a seconda della struttura del tuo sistema. La selezione di una soglia per un sistema con chiave on-off è complicata dall'ampiezza del segnale probabilmente sconosciutaS; altre costellazioni di segnale, come la segnalazione antipodale (ad es. binary key shift shifting o BPSK ) hanno una scelta di soglia più ovvia (per BPSK, la soglia migliore è zero per dati altrettanto probabili).

Una semplice implementazione di un selettore di soglia per OOK potrebbe calcolare la media di molte osservazioni. Supponendo che gli zeri e quelli siano ugualmente probabili, il valore atteso della variabile casuale risultante è la metà dell'ampiezza del segnale, che è la soglia che si cerca. L'esecuzione di questa operazione su una finestra scorrevole può consentire di adattarsi in qualche modo alle diverse condizioni dello sfondo.

Si noti che si intende solo un'introduzione di alto livello ai problemi inerenti alle comunicazioni digitali rispetto alla teoria del rilevamento. Può essere un argomento molto complicato, con molte statistiche coinvolte; Ho cercato di renderlo in qualche modo facile da capire mantenendo fedele alla teoria di base. Per una spiegazione migliore, vai a prendere un buon libro di testo, come quello di Sklar .


grazie per la risposta dettagliata, ho imparato molto da esso. Mi piace chiedere alcuni chiarimenti. Ottengo il punto di più di 1 campione alla durata. In questo caso come appare un filtro abbinato? Dì, ho tre campioni x1, x2, x3 (x3 alla fine della coda e x1 all'inizio). Sulla base di ciò che ho letto, devo contrapporlo con un segnale di forma uguale ma simmetrico. Puoi forse spiegare questa parte? [Penso di conoscere la risposta, ma solo per essere sicuro] Seconda parte, so qual è la gamma dinamica del segnale in ingresso sarebbe come ho preso le misurazioni. Posso usare quell'intervallo per l'impostazione della soglia?
Frank,

Un filtro abbinato è un modo per implementare una correlazione incrociata scorrevole tra il segnale visto dal ricevitore e la forma dell'impulso prevista. Il diagramma mostrato nella tua domanda illustra l'impulso visto dall'ADC come un aumento esponenziale; se questo è davvero il tuo modello per ciò che vede il ricevitore, allora il filtro abbinato appropriato avrebbe la stessa forma, solo invertito nel tempo (l'inversione del tempo trasforma l'operazione di convoluzione in correlazione). Se il front-end del ricevitore non distorce in modo sensibile l'impulso, è possibile utilizzare un filtro rettangolare "ideale", che è più semplice da implementare.
Jason R,

Per quanto riguarda la tua seconda domanda: sì, se conosci a priori l'ampiezza attesa del componente del segnale, puoi usarla per selezionare una soglia. Utilizzando il modello statistico per il sistema (in base al tipo di rumore presente), è possibile calcolare il tasso di errore bit in funzione del rapporto segnale rumore (che è proporzionale all'ampiezza del segnale). Se il rumore termico del ricevitore è la fonte dominante, allora il rumore gaussiano bianco è di solito un buon presupposto.
Jason R,

Il mio ricevitore ha un BPF che taglia i segnali ad alta frequenza. Il BPF completa il picco iniziale dell'impulso e diventa di natura più esponenziale. Posso disabilitare il BPF ma questo introdurrà il rumore HF attualmente non nella catena. Sembra che ho un compromesso, come posso quantificare in che modo è meglio. (es. rimuovi BPF e usa un filtro abbinato per un impulso, non rimuovi BPF e usa un filtro abbinato per un aumento esponenziale)
Frank

Ti ho assegnato la grazia, grazie mille per un'ottima risposta.
Frank,

0

Una possibile tecnica potrebbe essere quella di provare a utilizzare sequenze di allenamento periodiche per raccogliere statistiche, non solo per differenziare tra 1 e 0 o per calcolare una metrica di affidabilità per una determinata soglia, ma per analizzare come varie sequenze di bit potrebbero influenzare una soglia di decisione adattiva dei bit .


pensiero interessante ma non adatto. Devo prendere una decisione velocemente e anche se lavoro con dati precedenti, la variazione nel campo sarebbe grande.
Frank
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.