Demodule una señal AM de la portadora utilizando Matlab

0

Entonces, la señal de AM tiene un ancho de banda de 5kHz y la señal de portadora es de 100kHz. Demodulo la señal AM multiplicándola a una función sin (sin (2000000 * pi), la misma frecuencia con la frecuencia portadora).

Esta es mi opinión sobre Matlab para el ideal:

%read in the audio
[y,Fs]=audioread('Signal1.wav');
[gt,fs]=audioread('Signal1_gt.wav');

%demodulation
for t=1:1:size(y,1)
    x=sin(200000*pi*(t/Fs));
    y(t,1)=y(t,1)*x;
    y(t,2)=y(t,2)*x;
end

%low pass filter
h=10*sinc(10*(-10:10));
y1=filter(h,1,y);

%down sample
y1=downsample(y1,Fs/fs);

%plot
t=1:size(y1,1);
plot(t,y1,t,gt);

Pero cuando se compara con la señal de verdad básica, está lejos de ser correcta. ¿Alguna sugerencia?

    
pregunta Việt England

2 respuestas

1

Sospecho que el problema radica en el núcleo del filtro FIR que genera. (-10: 10) genera un vector de 21 enteros sucesivos [-10, -9, -8 ... 8, 9, 10]. A continuación, realice una multiplicación de dicho vector por 10, resultando en el vector [-100, -90, -80 ... 80, 90, 100]. Finalmente, calcula el valor de cada elemento, lo que da como resultado el vector [-0.0051, 0.0100, -0.0124 ... -0.0124, 0.0100, -0.0051]. Tenga en cuenta que cada muestra está separada por 10 rad (573 grados) debido a esa multiplicación por 10, lo que significa que su filtro está realmente diseñado para una frecuencia unas cuantas veces mayor que la frecuencia de nyquist en su frecuencia de muestreo. Probablemente no sea lo que pretendías, y ese filtro no funcionará en absoluto.

    
respondido por el jms
0

Dependiendo de las cajas de herramientas que tenga, hay una función amdemod

enlace

z = amdemod (y, Fc, Fs) demodula la señal modulada en amplitud y de una señal portadora con frecuencia Fc (Hz). La señal portadora y y tienen frecuencia de muestreo Fs (Hz). La señal modulada y tiene una fase inicial cero y una amplitud de portadora cero, por lo que representa la modulación de portadora suprimida. El proceso de demodulación utiliza el filtro de paso bajo especificado por [num, den] = butter (5, Fc * 2 / Fs).

    
respondido por el JonRB

Lea otras preguntas en las etiquetas