Modulacion FM
Modulacion FM
FUNDAMENTOS DE COMUNICACIÓN
MODULACIÓN FM
Código
% Simulacion modulacion FM
clear; tic; clc;
%% PARAMETROS
FRECUENCIA =500;
FRECUENCIAPOR =10e3;
PERIODO =1/FRECUENCIA;
PERIODOPOR =1/FRECUENCIAPOR;
SAMPLING =20*FRECUENCIAPOR;
CICLOS =500;
TIEMPO =0:1/SAMPLING:CICLOS*PERIODO;
L =length(TIEMPO);
VPP_MODULADORA =1.5;
VPP_PORTADORA =3;
FDEV1 =75;
FDEV2 =100;
%% Generamos la senal moduladora
% y ploteamos la senal
moduladora =VPP_MODULADORA/2*square(2*pi*FRECUENCIA*TIEMPO);
figure;
plot(TIEMPO, moduladora);
xlabel('Tiempo [s]'); ylabel('Amplitud [V]');
title(['Senal Moduladora, Fs= ', num2str(SAMPLING/1e3), 'kHz']);
axis([0 10*PERIODO -VPP_MODULADORA VPP_MODULADORA])
%% Generamos su FFT
n=2^nextpow2(L);
fftmoduladora =abs( fft(moduladora, n)/n );
fftsingleside =fftmoduladora(1:n/2+1);
fftsingleside(2:end-1) =2*fftsingleside(2:end-1);
frecuencias =SAMPLING*(0:(n/2))/n;
figure;
plot(frecuencias, fftsingleside);
xlabel('Frecuencia [Hz]'); ylabel('|A(f) |[V^2]');
title(['Espectro Senal Moduladora']);
axis([0 16*FRECUENCIA 0 1])
figure;
plot(TIEMPO, portadora);
xlabel('Tiempo [s]'); ylabel('Amplitud [V]');
title(['Senal Portadora, Fs= ', num2str(SAMPLING/1e3), 'kHz']);
axis([0 10*PERIODOPOR -VPP_PORTADORA VPP_PORTADORA]);
%% Indices de moculacion
% Generamos la senal modulada
% sin ocupar fmmod()
% recordando que
% fm=Amplitud*sin(2pi*fc+im*moduladora)
im1 =FDEV1/FRECUENCIA;
im2 =FDEV2/FRECUENCIA;
fm1=zeros(length(TIEMPO), 1);
for i=1:length(TIEMPO);
Ac=VPP_PORTADORA/2;
Amod=VPP_MODULADORA/2;
fm1(i)=Ac.*cos(2*pi*(FRECUENCIAPOR.*TIEMPO(i))+
(im1/Amod).*moduladora(i));
end
% Verificamos
fm1demod = fmdemod(fm1,FRECUENCIAPOR,SAMPLING,FDEV1);
figure;
plot(TIEMPO,moduladora,'c',TIEMPO,fm1demod,'b--');
axis([0 10*PERIODO -VPP_MODULADORA VPP_MODULADORA])
figure;
plot(TIEMPO, fm1);
xlabel('Tiempo [s]'); ylabel('Amplitud [V]');
title(['Senal Portadora, Fs= ', num2str(SAMPLING/1e3), 'kHz']);
axis([0 200*PERIODOPOR -VPP_PORTADORA VPP_PORTADORA]);
Resultados