Codigo de Matlab

download Codigo de Matlab

If you can't read please download the document

Transcript of Codigo de Matlab

aa1

123


%LABORATORIO DE MODULACION AM %************************************************************************ % Ingeniera Electrnica %************************************************************************ %************************************************************************ %MODULACION AM %************************************************************************ %Punto (1) %************************************************************************ %Modulacin en amplitud de un tono de prueba Lmedio=1000; %Mitad de la cantidad de muestras a r ecolectar fm=1000; %Frecuencia de muestreo treq=2*Lmedio/fm; %Tiempo requerido para recolectar las muestras t=0:1/(fm-1):treq; %Vector de muestras a recolectar %Seal mensaje (tono): fs=fm; ftono=10; wtono=2*pi*ftono; mtono=1.6*cos(wtono*t); %Seal modulada (AM) fc=100; s=modulate(mtono,fc,fs,'am'); %Demodulacin (AM) mreconst = demod(s,fc,fs,'am'); %************************************************************************ %Punto (2) %************************************************************************ %Grfica de la seal tono de prueba figure(1) subplot(3,1,1); plot(t,mtono); title('Seal tono de prueba'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); txt=strcat('f muestreo =',num2str(fs),' Hz'); legend(txt); grid on; %Grfica de la seal modulada subplot(3,1,2) plot(t,s); title('Seal modulada'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); txt=strcat('f muestreo =',num2str(fs),' Hz'); legend(txt); axis([0 treq/4 -2 2]); grid on; %Grfica de la seal demodulada subplot(3,1,3); plot(t,mreconst); %Frecuencia de muestreo %Frecuencia de la seal a modular %Frecuencia en rads/s %Seal a modular %Frecuencia de la seal portadora %Seal modulada

title('Seal reconstruida'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); axis([0 treq -3 3]); txt=strcat('f muestreo =',num2str(fs),' Hz'); legend(txt); grid on; %Clculo de la DFT utilzando la FFT Nfft=1024; Y=fft(s,Nfft); Y2=fftshift(Y); norm=max(abs(Y2)); Yf=unwrap(angle(Y2)); eal %Vector de frecuencias M=Nfft/2; faux(M+1:Nfft)=0:M-1; faux(1:M)=-M:-1; f=fm*faux/(Nfft);

%FFT de Nfft puntos para la seal s %Reordenamiento de los valores de la FFT %Para normalizar el espectro en magnitud %Clculo de las componentes de fase de la s

%Vector de frecuencias desordenado %Vector de frecuencias ordenado %Vector de frecuencias normalizado

%Se grafican los resultados obtenidos figure(2); subplot(2,1,1); plot(f,abs(Y2)/norm); title('Espectro continuo en magnitud de la seal modulada'); xlabel('Frecuencia (Hz)'); ylabel('Magnitud normalizada |FFT|'); grid on; subplot(2,1,2); plot(f,Yf,'b'); title('Espectro continuo de fase de la seal modulada'); xlabel('Frecuencia (Hz)'); ylabel('Fase (rads)'); grid on; %Clculo de la DFT utilzando la FFT de la seal tono de prueba Ytono=fft(mtono,Nfft); %FFT de Nfft puntos para la seal mtono Y2tono=fftshift(Ytono); %Reordenamiento de los valores de la FFT norm1=max(abs(Y2tono)); %Para normalizar el espectro en magnitud Yftono=unwrap(angle(Y2tono)); %Clculo de las componentes de fase %Clculo de la DFT utilzando la FFT de la seal reconstruida Yreconst=fft(mreconst,Nfft); %FFT de Nfft puntos para la seal mtono Y2reconst=fftshift(Yreconst); %Reordenamiento de los valores de la FFT norm2=max(abs(Y2reconst)); %Para normalizar el espectro en magnitud Yfreconst=unwrap(angle(Y2reconst)); %Clculo de las componentes de fase %Se grafican los resultados figure(3); subplot(2,1,1); plot(f,abs(Y2tono)/norm1,f,abs(Y2reconst)/norm2); title('Espectro continuo en magnitud'); xlabel('Frecuencia (Hz)'); ylabel('Magnitud normalizada |FFT|'); legend('Seal tono de prueba','Seal reconstruida'); grid on; subplot(2,1,2); plot(f,Yftono,f,Yfreconst);

title('Espectro continuo de fase'); xlabel('Frecuencia (Hz)'); ylabel('Fase (rads)'); legend('Seal tono de prueba','Seal reconstruida'); grid on; %************************************************************************ %************************************************************************ %Punto (3) y (4) %************************************************************************ Lmedio=2000; %Mitad de la cantidad de muestras a recole ctar fm=1000; %Frecuencia de muestreo treq=2*Lmedio/fm; %Tiempo requerido para recolectar las mues tras t=0:1/(fm-1):treq; %Vector de muestras a recolectar Ap=5; %Amplitud de la portadora indmod=[0.45 1 2.6]; %Indice de modulacin ka=0.5; %Indice de sensibilidad %Modulacin para cada uno de los diferentes ndices de modulacin L=length(indmod); for i=1:L Am1=indmod(i)/ka; fym=5; fyc=10*fym; %Seal a modular ym=Am1*cos(2*pi*fym*t); %Seal portadora yc=Ap*cos(2*pi*fyc*t); %seal modulada ys=(1+ka*ym).*yc; ysmax=max(abs(ys)); %Se grafican los resultados figure(4); if i==1 subplot(3,1,1); plot(t,real(ys)); title('Seal AM con ndice de modulacin m1');

xlabel('Tiempo (segundos)'); ylabel('Amplitud'); axis([0 treq/4 -(ysmax+1) ysmax+1]); grid on; end figure(5); if i==1 subplot(4,1,1); plot(t,yc); title('Seal portadora'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); axis([0 treq/4 -Ap Ap]); txtp=strcat('fc=',num2str(fyc)); legend(txtp); grid on; subplot(4,1,2); plot(t,ym); title('Seal a modular para obtener un ndice de modulacin m1'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); txtp=strcat('Amplitud media=',num2str(Am1)); legend(txtp); grid on; end end %************************************************************************ %Punto (5) %************************************************************************ %Modulacin de una seal con ruido utilzando las funciones "modulate" y %"demod" Lmedio=1000; %Mitad de la cantidad de muestras a recolectar fm=1000; %Frecuencia de muestreo treq=2*L_medio/fm; %Tiempo requerido para recolectar las muestras t=0:1/(fm-1):treq; %Vector de muestras a recolectar %Seal modulada (AM) fc=100; s=modulate(mtono,fc,fs,'am'); %Frecuencia de la seal portadora %Seal modulada

% Portadora fc=50; % Seal mensaje fs=fm; m=15*sin(10*pi*t)+10*sin(20*pi*t); % Seal modulada g=modulate(m,fc,fs,'am'); % Ruido gruido=g+8*randn(1,length(g)); % Seal reconstruida mreconst=demod(g,fc,fs,'am'); figure(6); subplot(3,1,1); plot(t,m); title('Seal a modular'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); txtp=strcat('fmuestreo=',num2str(fm)); legend(txtp); grid on; subplot(3,1,2); plot(t,g_ruido); title('Seal modulada con ruido adherido en el canal de transmisin'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); txtp=strcat('fmuestreo=',num2str(fm)); legend(txtp); grid on; subplot(3,1,3); plot(t,m_reconst,t,m); title('Seal reconstruida o demodulada'); xlabel('Tiempo (segundos)'); ylabel('Amplitud'); legend('Seal demodulada o reconstruida','Seal original'); grid on; %************************************************************************ Modulacin AM