¿Cómo agrego AWGN a una representación I y Q de una señal?

16

Tengo un sistema de comunicación inalámbrica que estoy simulando en Matlab. Estoy realizando una marca de agua ajustando ligeramente la fase de la señal transmitida. Mi simulación toma los valores originales I (en fase) y Q (en cuadratura) y agrega la marca de agua. Luego tengo que simular la tasa de error de bits resultante después de ser transmitida. Por ahora solo necesito agregar cantidades variables de ruido térmico a la señal.

Como tengo la señal representada como su canal I y Q, sería más fácil agregar AWGN (ruido gaussiano blanco aditivo) al I y Q directamente. Una idea era agregar ruido a ambos canales de forma independiente, pero mi intuición me dice que esto no es lo mismo que agregarlo a la señal como un todo.

Entonces, ¿cómo puedo agregarle ruido cuando está en esta forma?

Kellenjb
fuente
quizás podría ser de más ayuda si pudiera dar algunos detalles del sistema de comunicación que está simulando.
Rajesh Dachiraju
1
Supongo que solo genera ruido para I y Q y luego los agrega. No veo por qué el ruido estaría correlacionado entre los dos.
endolito
1
@endolith, la diferencia de ruido solo aparecería en el mezclador, además de que deberían compartir sus señales de ruido.
Kortuk
¿Estás diciendo que lo agregarías a la señal multiplexada en cuadratura?
Phonon
@phonon, ¿qué quieres decir con multiplexado?
Kortuk

Respuestas:

14

Sí, puede agregar AWGN de ​​varianza separado a cada uno de los dos términos, porque la suma de dos gaussianos también es gaussiana y sus variaciones se suman . Esto tendrá el mismo efecto que agregar un AWGN de ​​varianza 2 σ 2σ22σ2 a la señal original. Aquí hay más explicaciones si está interesado.

Una señal analítica puede escribirse en sus componentes en fase y en cuadratura comoX(t)=un(t)pecado(2πFt+φ(t))

X(t)=yo(t)pecado(2πFt)+Q(t)cos(2πFt)

donde y Q ( t ) = a ( t ) sin ( φ ( t ) ) . Si desea agregar AWGN a su señal original como x ( t ) + u ( t ) , donde u ( t ) N ( μ , σ 2yo(t)=un(t)cos(φ(t))Q(t)=un(t)pecado(φ(t))X(t)+tu(t)tu(t)norte(μ,σ2), entonces puede agregar AWGN a cada uno de los términos como

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

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

También tenga en cuenta que debido a que los términos en fase y en cuadratura son aditivos, el AWGN también se puede agregar simplemente a cualquiera de los dos términos en la representación de x ( t ) anterior. En otras palabras,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)

son estadísticamente equivalentes a , aunque prefiero usar y 1 porque no tengo que hacer un seguimiento de qué componente tiene ruido agregado.y1y1

Lorem Ipsum
fuente
Dado que la señal tiene el ruido, parece que el ruido se mostraría en ambos canales con la magnitud original pero afectada por el proceso de mezcla. Creo que el proceso de mezcla afectaría el ruido mucho más que la suma de la resta al dividir la señal.
Kortuk
1
Por supuesto, si tuvo ruido en la señal para comenzar y luego lo dividió en sus componentes IQ, cada uno tendrá ruido asociado. Sin embargo, OP está hablando de simularlo en MATLAB y tiene las partes I y Q por separado y quiere saber cómo agregar ruido a ellas para simular la adición de ruido a la señal original.
Lorem Ipsum
buena respuesta con muchos detalles, pero no responde de manera concisa la pregunta básica - OP: Ignora tu intuición; agregar WGN en el eje real con WGN en el eje imaginario resulta en WGN complejo. Recuerde escalar en 3dB ya que la varianza de la suma es el doble de la de las partes (stdv2 = 1.413 stdv1)
Mark Borgerding
2
@Yoda, tienes todos los datos, pero haces que el lector lea muchas ecuaciones antes de llegar a la respuesta. Simplemente sugiero poner primero su parte en negrita, luego proporcionar los detalles de apoyo.
Mark Borgerding
1
@yoda, estaba cansada cuando leí esto. Tu respuesta es muy astuta. ¡Gracias por tomarse el tiempo!
Kortuk
5

Kellenjb no ha respondido a las preguntas de Rajesh D y el endolito, y no es fácil descubrir qué es exactamente lo que necesita. Pero como no estoy de acuerdo con algunos de los detalles de las Respuestas dadas por yoda y Mohammad, estoy publicando una respuesta separada, donde, con las debidas disculpas a Mark Borgerding, todas las cosas útiles aparecen al final después de todas las ecuaciones aburridas.

En un sistema de comunicación típico, la señal entrante es una señal de paso de banda de ancho de banda 2si a frecuencia central FCsi Hz y se puede expresar como

r(t)=yo(t)cos(2πFCt)-Q(t)pecado(2πFCt)
dónde yo(t) y Q(t)son señales de paso bajo de ancho de bandasiHz y se denominan componentes en fase y en cuadratura. Tenga en cuenta la diferencia en los signos y la terminología de la escritura yoda'a: de esta manera podemos escribir
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
fuente
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.

La forma en que recomendaría simular esto, (¿está haciendo todo esto en la banda base?), Es simplemente construir una base de pecado y coseno, y simplemente multiplicar contra (señal + ruido), donde 'señal' es su señal original de Por supuesto, y luego, por supuesto, llevarlo a la banda base después de eso. De hecho, una vez que filtre para llevarlo a la banda base, sus vectores de ruido no serán blancos ni gaussianos.

¡Espero que esto ayude! :)

Spacey
fuente