Come faccio ad aggiungere AWGN a una rappresentazione I e Q di un segnale?


16

Ho un sistema di comunicazione wireless che sto simulando in Matlab. Sto eseguendo alcuni watermarking regolando leggermente la fase del segnale trasmesso. La mia simulazione prende i valori I (inphase) e Q (quadrature) originali e aggiunge la filigrana. Devo quindi simulare il tasso di errore bit risultante dopo essere stato trasmesso. Per ora ho solo bisogno di aggiungere al segnale quantità variabili di rumore termico.

Dato che ho il segnale rappresentato come canale I e Q, sarebbe più semplice aggiungere AWGN (rumore gaussiano bianco additivo) direttamente a I e Q. Un pensiero era aggiungere rumore a entrambi i canali in modo indipendente, ma la mia intuizione mi dice che non è la stessa cosa di aggiungerlo al segnale nel suo insieme.

Quindi, come posso aggiungere rumore quando è in questa forma?


forse potrebbe essere di maggiore aiuto se tu potessi fornire alcuni dettagli del sistema di comunicazione che stai simulando.
Rajesh Dachiraju,

1
Suppongo che tu generi solo rumore per I e Q e poi li aggiungo. Non vedo perché il rumore sarebbe correlato tra i due.
endolith,

1
@endolith, La differenza di rumore apparirebbe solo nel mixer, inoltre dovrebbero condividere i loro segnali di rumore.
Kortuk,

Stai dicendo che lo vorresti aggiungere al segnale multiplex in quadratura?
Phonon,

@phonon, cosa intendi per multiplexato?
Kortuk,

Risposte:


14

Sì, puoi aggiungere AWGN di varianza separatamente a ciascuno dei due termini, perché la somma di due gaussiani è anche gaussiana e le loro varianze si sommano . Ciò avrà lo stesso effetto dell'aggiunta di un AWGN di varianza 2 σσ2 al segnale originale. Ecco qualche spiegazione in più se sei interessato.2σ2

Un segnale analitico può essere scritto nelle sue componenti in fase e quadratura comex(t)=a(t)sin(2πft+φ(t))

x(t)=I(t)sin(2πft)+Q(t)cos(2πft)

dove e Q ( t ) = a ( t ) sin ( φ ( t ) ) . Se si desidera aggiungere AWGN al segnale originale come x ( t ) + u ( t ) , dove u ( t ) N ( μ , σ 2I(t)=a(t)cos(φ(t))Q(t)=a(t)sin(φ(t))x(t)+u(t)u(t)N(μ,σ2), quindi puoi aggiungere AWGN a ciascuno dei termini come

y1(t)=[I(t)sin(2πft)+v(t)]+[Q(t)cos(2πft)+w(t)]

dove v(t),w(t)N(μ/2,σ2/2)

Si noti inoltre che poiché i termini in fase e quadratura sono additivi, l'AWGN può anche essere semplicemente aggiunto a uno dei due termini nella rappresentazione di x ( t ) sopra. In altre parole,IQx(t)

y 3 = [ I ( t ) sin ( 2 π f t ) + u ( t ) ] + Q ( t ) cos

y2=I(t)sin(2πft)+[Q(t)cos(2πft)+u(t)]
y3=[I(t)sin(2πft)+u(t)]+Q(t)cos(2πft)

sono statisticamente equivalenti a , anche se preferisco usare y 1 perché non devo tenere traccia di quale componente ha il rumore aggiunto ad esso.y1y1


Dato che il segnale ha il rumore, sembra che il rumore verrebbe visualizzato su entrambi i canali con la grandezza originale ma influenzato dal processo di miscelazione. Penserei che il processo di miscelazione influirebbe molto più sul rumore che sull'aggiunta della sottrazione suddividendo il segnale.
Kortuk,

1
Ovviamente, se all'inizio avevi del rumore nel segnale e poi lo dividevi nei suoi componenti IQ, a ciascuno di essi sarebbe associato un rumore. Tuttavia, OP sta parlando di simularlo in MATLAB e ha le parti I e Q separatamente e vuole sapere come aggiungere rumore a questi in modo da simulare l'aggiunta di rumore al segnale originale.
Lorem Ipsum,

buona risposta con molti dettagli, ma non riesce a rispondere in modo conciso alla domanda di base - OP: Ignora la tua intuizione; aggiungendo WGN sull'asse reale con WGN sull'asse immaginario si ottiene una WGN complessa. Ricorda di ridimensionare di 3dB poiché la varianza della somma è doppia rispetto a quella delle parti (stdv2 = 1.413 stdv1)
Mark Borgerding,

2
@Yoda, hai tutti i dati, ma fai leggere al lettore molte equazioni prima di arrivare alla risposta. Suggerisco semplicemente di inserire prima la parte in grassetto, quindi fornire i dettagli di supporto.
Mark Borgerding,

1
@yoda, ero stanco quando ho letto questo. La tua risposta è molto astuta. Grazie per aver dedicato del tempo!
Kortuk,

5

Kellenjb non ha risposto alle domande di Rajesh D ed endolith, e non è facile capire di cosa abbia esattamente bisogno. Ma poiché non sono d'accordo con alcuni dettagli delle Risposte fornite da Yoda e Mohammad, sto postando una risposta separata, dove, con le dovute scuse a Mark Borgerding, tutte le cose utili appaiono alla fine dopo tutte le noiose equazioni.

In un tipico sistema di comunicazione, il segnale in ingresso è un segnale passa-banda della larghezza di banda alla frequenza centrale f cB Hz e può essere espresso come r ( t ) = I ( t ) cos ( 2 π f c t ) - Q ( t ) sin ( 2 π f c t ) dove I ( t ) e Q ( t ) sono2Bfc»B

r(t)=io(t)cos(2πfct)-Q(t)peccato(2πfct)
io(t)Q(t)segnali passa-basso della larghezza di banda Hz e sono indicati come componenti in fase e quadratura. Nota la differenza di segni e terminologia dalla scrittura di yoda'a: in questo modo possiamo scrivere r ( t ) = Re { [ I ( t ) + j Q ( t ) ] e j 2 π f c t } dove I ( t ) + j Q ( t ) è il segnale complesso in banda base .B
r(t)=Ri{[io(t)+jQ(t)]ej2πfct}
io(t)+jQ(t)

2cos(2πfct+θ)-2peccato(2πfct+θ)θ=0io(t)Q(t)

r(t)[2cos(2πfct)]=io(t)[2cos2(2πfct)]-Q(t)[2peccato(2πfct)cos(2πfct)]=io(t)+[io(t)cos(2π(2fc)t)-Q(t)peccato(2π(2fc)t)]r(t)[-2peccato(2πfct)]=io(t)[-2peccato(2πfct)cos(2πfct)]+Q(t)[2peccato2(2πfct)]=Q(t)+[-io(t)peccato(2π(2fc)t)-Q(t)cos(2π(2fc)t)]
dove i termini a doppia frequenza (tra parentesi quadre) sono eliminati dai filtri passa-basso che si presume abbiano larghezza di banda sufficiente per passare io(t) e Q(t) senza distorsione.

Il rumore a banda larga è presente nella parte frontale del ricevitore e le domande chiave a cui è necessario rispondere sono cosa succede in un ricevitore reale e cosa bisogna fare per simulare la realtà.

  • In an actual system, the net result is that the outputs of the low-pass filters are
    x(t)=I(t)+NI(t)y(t)=Q(t)+NQ(t)
    where NI(t) and NQ(t) are independent zero-mean Gaussian random processes with common variance
    σ2=N02|H(f)|2df
    where H(f) is the common transfer function of the low pass filters. In particular, for each t0, NI(t0) and NQ(t0) are independent zero-mean Gaussian random variables with variance σ2. However, NI(t0) and NI(t1) need not be independent. The SNR can be taken to be the ratio of the signal power in I(t) and Q(t) to the noise variance.
  • In a quadrature down-sampling system or in a MATLAB simulation wishing to capture every nuance, "r(t)+  noise" is sampled M times each cycle of the RF carrier at fc Hz, and so the m-th sample is
    r[m]=r(m/Mfc)+N[m]=I(m/Mfc)cos(2π(m/M))Q(m/Mfc)sin(2π(m/M))+N[m]
    where the N[m]'s zero-mean Gaussian random variables with common variance whose value depends on the SNR. These can be tracked through the mixers and the low-pass filters during the detailed simulation.
  • I do not recommend adding noise between the mixer outputs and the low-pass filter units. While there is noise introduced at that stage, this is typically overwhelmed by the noise from the front end that is coming through the mixers.
  • In some systems, A/D conversion is done at the output of the low pass filters. If more filtering is to be done (e.g. matched filtering), the sampling will typically be at a higher rate than B1 or the inverse of the filter bandwidth. If noise is introduced at this stage, then for each m, NI[m] and NQ[m] should be taken to be independent zero-mean Gaussian random variables, but whether NI[m] and NI[m+i] are independent or not requires a lot of thought and analysis, and details that are known to Kellenjb but not to us.

Thanks, Dilip. Nice detailed, practically-focused answer.
Jason R

-2

Kellenjb,

The noise in both the I and Q are not in fact going to be gaussian. In fact they are going to originate from the same original noise vector. This is because there was only one noise vector to begin with at the receiver. So what is happening, is your signal comes into the receiver, where AWGN is added of course. Soon afterwards though, the receiver is going to project that (signal + noise) onto a sin basis, and onto a cosine basis, thereby giving you your I and Q components.

So now the noise in either branch is no longer gaussian, but are in fact, the product of a sin basis times orignal noise vector, and product of cosine basis times original noise vector.

The way I would recommend to simulate this, (are you doing all of this in baseband?), is to simply construct a sin and cosine basis, and simply multiply against (signal+noise), where 'signal' is your original signal of course, and then of course take it down to baseband after that. In fact once you filter for taking it down to baseband, your noise vectors are going to be non-white, and non-gaussian.

Hope this helps! :)

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.