Implementación Señal BB modulada en FM Stereo
Contents
Importamos la señal digital
data=importdata('x3.wav'); xL=data.data(1:2^15,1); %Toma algunas muestras xR=data.data(1:2^15,2); FsBB=data.fs; FsFI=4*FsBB; % Nyquist
Incremento de la Frecuencia de Muestreo a 4*FsBB
%(Esto no hay porque entenderlo) L = (FsFI/FsBB)-1; % Inserccion de 0s zint=zeros(length(xL),L); xLMatInterp=[xL,zint]; xRMatInterp=[xR,zint]; xLInterp=reshape(xLMatInterp',1,size(xLMatInterp,1)*size(xLMatInterp,2)); xRInterp=reshape(xRMatInterp',1,size(xLMatInterp,1)*size(xLMatInterp,2)); % Filtro a 15kHz para quitar las frecuencias altas Hd = LPF15khz(FsFI); a=1;b=Hd.Numerator; xLInterp_LPF=filter(b,a,xLInterp); % Señal canal izdo filtrada xRInterp_LPF=filter(b,a,xRInterp); % Señal canal dcho filtrada figure f=linspace(-.5,.5,length(xLInterp)).*FsFI; plot(f*1e-3,abs(fftshift(fft(xLInterp)))); title('Espectro de la señal interpolada sin filtrar'), grid on xlabel('Frecuencia en kHz') figure f=linspace(-.5,.5,length(xLInterp_LPF)).*FsFI; plot(f*1e-3,abs(fftshift(fft(xLInterp_LPF)))); title('Espectro de la señal interpolada y filtrada'), grid on xlabel('Frecuencia en kHz')


Composición de las señales suma y resta
xSum= xLInterp_LPF+xRInterp_LPF; % Composición de la señal suma xDiff= xLInterp_LPF-xRInterp_LPF; % Composición de la señal resta f=linspace(-.5,.5,length(xSum)).*FsFI; figure,plot(f*1e-3,abs(fftshift(fft(xSum)))); title('Espectro de la señal suma en BandaBase'), grid on xlabel('Frecuencia en kHz') figure f=linspace(-.5,.5,length(xDiff)).*FsBB; plot(f*1e-3,abs(fftshift(fft(xDiff)))); title('Espectro de la señal resta en BandaBase'), grid on xlabel('Frecuencia en kHz')


Tono de 19kHz
%Genero la base de tiempos para construir el tono de 19kHz Fosc=19e3; N=length(xLInterp_LPF); %Tomo la longitud para generar un vector igual de largo t=0:1/FsFI:(N-1)/FsFI; t=t(:); % este como este, la pongo en columna tono19=.01*cos(2*pi*Fosc*t); figure subplot(2,1,1) plot(t(1:500)*1e3,tono19(1:500)), title('Tono de 19kHz en el tiempo'),xlabel('Tiempo en ms'), grid on subplot(2,1,2) f=linspace(-.5,.5,length(t)).*FsFI; plot(f*1e-3,abs(fftshift(fft(tono19)))), title('Tono de 19kHz en el tiempo'), xlabel('Frecuencia en kHz'), grid on

Modulacion de la señal resta
La señal resta se modula en doble banda lateral utilizando el doble de frecuencia del tono como señal portadora
xSup=xDiff.*cos(2*pi*Fosc*2*t.');
Composición del espectro final
Compongo la señal completa con la parte superior (señal resta modulada en DSB), tono de 19kHz y parte inferior (señal suma)
xInf=xSum; %Espectro inferior % Sumo todas las componentes de banda base antes de subirlo a la portadora senyalBB=xInf+xSup+tono19.';
Figuras
f=linspace(-.5,.5,length(xSup)).*FsFI; figure plot(f*1e-3,abs(fftshift(fft(xSup)))); hold on plot(f*1e-3,abs(fftshift(fft(tono19))),'r'); plot(f*1e-3,abs(fftshift(fft(xInf))),'g'); grid on legend('Senyal Diferencia', 'Tono de 19kHz', 'Senyal Suma'); xlabel('Freq. in kHz') title('Espectro en BB con las diferentes señales') figure plot(f*1e-3,abs(fftshift(fft(senyalBB)))), grid on xlabel('Freq. in kHz') title('Espectro en BB conjunto')

