Comment ajouter AWGN à une représentation I et Q d'un signal?

16

J'ai un système de communication sans fil que je simule dans Matlab. J'effectue un tatouage en ajustant légèrement la phase du signal transmis. Ma simulation prend les valeurs d'origine I (en phase) et Q (quadrature) et ajoute le filigrane. Je dois ensuite simuler le taux d'erreur binaire résultant après avoir été transmis. Pour l'instant, j'ai juste besoin d'ajouter des quantités variables de bruit thermique au signal.

Étant donné que le signal est représenté par ses canaux I et Q, il serait plus facile d'ajouter directement AWGN (bruit blanc gaussien additif) aux I et Q. Une pensée était d'ajouter du bruit aux deux canaux indépendamment, mais mon intuition me dit que ce n'est pas la même chose que de l'ajouter au signal dans son ensemble.

Alors, comment puis-je y ajouter du bruit lorsqu'il est sous cette forme?

Kellenjb
la source
il serait peut-être plus utile de donner quelques détails sur le système de communication que vous simulez.
Rajesh Dachiraju
1
Je suppose que vous générez simplement du bruit pour I et Q, puis que vous les ajoutez. Je ne vois pas pourquoi le bruit serait corrélé entre les deux.
endolith
1
@endolith, La différence de bruit n'apparaîtrait que dans le mélangeur, en plus du fait qu'ils devraient partager leurs signaux de bruit.
Kortuk
Êtes-vous en train de dire que vous voudriez l'ajouter au signal multiplexé en quadrature?
Phonon
@phonon, que voulez-vous dire par multiplexé?
Kortuk

Réponses:

14

Oui, vous pouvez ajouter un AWGN de ​​variance séparément à chacun des deux termes, car la somme de deux gaussiens est également gaussienne et leurs variances s'additionnent . Cela aura le même effet que l'ajout d'un AWGN de ​​variance 2 σ 2 au signal d'origine. Voici quelques explications supplémentaires si vous êtes intéressé.σ22σ2

Un signal analytique peut être écrit dans ses composantes en phase et en quadrature commex(t)=a(t)sin(2πft+φ(t))

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

et Q ( t ) = a ( t ) sin ( φ ( t ) ) . Si vous souhaitez ajouter AWGN à votre signal d'origine sous la forme x ( t ) + u ( t ) , où u ( t ) N ( μ , σ 2I(t)=a(t)cos(φ(t))Q(t)=a(t)sin(φ(t))x(t)+u(t) , vous pouvez alors ajouter AWGN à chacun des termes commeu(t)N(μ,σ2)

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

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

Notez également que parce que les termes en phase et en quadrature sont additifs, l'AWGN peut également être simplement ajouté à l'un des deux termes dans la représentation de x ( t ) ci-dessus. En d'autres termes,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)

sont statistiquement équivalents à , bien que je préfère utiliser y 1 car je n'ai pas besoin de savoir quel composant a du bruit ajouté.y1y1

Lorem Ipsum
la source
Puisque le signal a du bruit, il semble que le bruit apparaisse sur les deux canaux avec la magnitude d'origine mais affecté par le processus de mixage. Je pense que le processus de mixage affecterait beaucoup plus le bruit que l'addition de la soustraction en divisant le signal.
Kortuk
1
Bien sûr, si vous aviez du bruit dans le signal pour commencer, puis le divisez en ses composants IQ, chacun aura du bruit associé. Cependant, OP parle de le simuler dans MATLAB et il a les parties I et Q séparément et veut savoir comment ajouter du bruit à celles-ci afin de simuler l'ajout de bruit au signal d'origine.
Lorem Ipsum,
bonne réponse avec beaucoup de détails, mais ne parvient pas à répondre de manière concise à la question de base - OP: Ignorez votre intuition; l'ajout de WGN sur l'axe réel avec WGN sur l'axe imaginaire résulte en un WGN complexe. N'oubliez pas de mettre à l'échelle de 3 dB car la variance de la somme est le double de celle des pièces (stdv2 = 1,413 stdv1)
Mark Borgerding
2
@Yoda, vous avez toutes les données, mais vous faites lire au lecteur de nombreuses équations avant d'arriver à la réponse. Je suggère simplement de mettre votre partie en gras en premier, puis de fournir les détails à l'appui.
Mark Borgerding
1
@yoda, j'étais fatigué quand j'ai lu ça. Votre réponse est très astucieuse. Je vous remercie d'avoir pris le temps!
Kortuk
5

Kellenjb n'a pas répondu aux requêtes de Rajesh D et d'endolith, et il n'est pas facile de déterminer exactement ce dont il a besoin. Mais comme je ne suis pas d'accord avec certains détails des réponses données par yoda et Mohammad, je poste une réponse séparée, où, avec toutes les excuses à Mark Borgerding, toutes les informations utiles apparaissent à la fin après toutes les équations ennuyeuses.

2BfcB

r(t)=I(t)cos(2πfct)Q(t)sin(2πfct)
where I(t) and Q(t) are low-pass signals of bandwidth B Hz and are referred to as the in-phase and quadrature components. Note the difference in signs and terminology from yoda'a writing: this way we can write
r(t)=Re{[I(t)+jQ(t)]ej2πfct}
where I(t)+jQ(t) is the complex baseband signal.

A local oscillator in the receiver generates signals 2cos(2πfct+θ) and 2sin(2πfct+θ) but we assume perfect synchronization for simplicity so that the phase error θ=0. I(t) and Q(t) are recovered through two mixers (multipliers) and low-pass filters:

r(t)[2cos(2πfct)]=I(t)[2cos2(2πfct)]Q(t)[2sin(2πfct)cos(2πfct)]=I(t)+[I(t)cos(2π(2fc)t)Q(t)sin(2π(2fc)t)]r(t)[2sin(2πfct)]=I(t)[2sin(2πfct)cos(2πfct)]+Q(t)[2sin2(2πfct)]=Q(t)+[I(t)sin(2π(2fc)t)Q(t)cos(2π(2fc)t)]
where the double frequency terms (in square brackets) are eliminated by the low-pass filters which we assume to have sufficient bandwidth to pass I(t) and Q(t) without distortion.

Broadband noise is present in the front end of the receiver and the key questions that need to be answered are what happens in an actual receiver, and what must be done to simulate the reality.

  • 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.
Dilip Sarwate
la source
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! :)

Spacey
la source