Codigo de Matlab
-
Upload
luis-alberto-maldonado-sanchez -
Category
Documents
-
view
373 -
download
2
Transcript of Codigo de Matlab
aa1
%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