Você está na página 1de 5

% Experimento AM

clc; close all;clear all;


%% Resoluo em frequencia
% Taxa de amostragem
fsampling = 10; % kHz
% resoluo mnima de frequncia
df = 0.001;
% nmero de amostras para resoluo escolhida
n1 = fsampling/df;
%% Parametros do sinal mensagem
fm = 0.05; % kHz
%% Escala temporal
t = 0 : (1/fsampling) : 10*(1/fm);
% Nmero de amostras do sinal
nSamples = length(t);
% O algortimo fft trabalha com sequncias que so potncia de 2, assim
% foramos o nmero de amostras do fft ser potncia de 2.
lfft = 2^(max(nextpow2(n1), nextpow2(nSamples)));
% Contudo, para esse exemplo especialmente interessante o valor lfft = 200
lfft = 200;
%% Modulao
% ndice de modulao: ma = Am/Ac
ma = 0.25;
Ac = 1;
Am = ma * Ac;
%% Parametros da Portadora
fc = 0.4; % Hz
%% sinal mensagem
m = Am*cos(2*pi*fm*t);
%% Portadora
c = Ac*cos(2*pi*fc*t);
%% onda modulada AM Padro
am = Ac*(1 + ma*cos(2*pi*fm*t) ).*cos(2*pi*fc*t);
%% plot do sinal m(t) no tempo
subplot(3,1,1);
plot(t,m);
title(['Sinal de mensagem m(t) - ndice de modulao: ' num2str(ma)])
xlabel('Tempo (s)')
ylabel('m(t)')
%% Plot do sinal M(f): single-sided amplitude spectrum.
subplot(3,1,2);
% fft
yfft = fft(m,lfft)/lfft;
% eixo das frequncias unilateral
freq1 = [0 : fsampling/lfft : fsampling/2 - fsampling/lfft];
% fft unilateral
yfftuni = yfft(1:lfft/2);
% plotagem do espectro M(f)
stem(freq1,abs(yfftuni))
% configurao do grfico
title(['Amplitude unilateral do Espectro de m(t) - ndice de modulao: ' num2str(ma)])
xlabel('Frequency (Hz)')
ylabel('|M(f)|')
% delimita eixo para melhor visualizao
axis([ 0 1 0 0.3])
%% Plot do sinal M(f): double-sided amplitude spectrum.
subplot(3,1,3);
% fftshift para rotacionar fft
ym = fftshift(yfft);
% Nova eixo da frequencia incluindo parte positiva e negativa
freq = [-fsampling/2 : fsampling/lfft : fsampling/2 - fsampling/lfft];
% plotagem do espectro M(f)
stem(freq,abs(ym))
% configurao do grfico
title(['Amplitude bilateral do Espectro de m(t) - ndice de modulao: ' num2str(ma)])
xlabel('Frequency (Hz)')
ylabel('|M(f)|')
set(gcf,'color',[1 1 1])
% delimita eixo para melhor visualizao
axis([ -1 1 0 0.3])

%% plot da portadora no tempo


% abre nova figura
figure;
subplot(3,1,1);
plot( t, c );
title(['Portadora c(t) - ndice de modulao: ' num2str(ma)])
xlabel('Tempo (s)')
ylabel('c(t)')
%% Plot do sinal C(f): single-sided amplitude spectrum.
subplot(3,1,2);
% fft
cfft = fft(c,lfft)/lfft;
% eixo das frequncias unilateral
freq1 = [0 : fsampling/lfft : fsampling/2 - fsampling/lfft];
% fft unilateral
cfftuni = cfft(1:lfft/2);
% plotagem do espectro C(f)
stem(freq1,abs(cfftuni))
% configurao do grfico
title(['Amplitude unilateral do Espectro de c(t) - ndice de modulao: ' num2str(ma)])
xlabel('Frequency (Hz)')
ylabel('|C(f)|')
%% Plot do sinal C(f): double-sided amplitude spectrum.
subplot(3,1,3);
freq = [-fsampling/2 : fsampling/lfft : fsampling/2 - fsampling/lfft];
yc = fftshift(cfft);
stem(freq,abs(yc))
title(['Amplitude bilateral do Espectro de c(t) - ndice de modulao: ' num2str(ma)])
xlabel('Frequency (Hz)')
ylabel('|C(f)|')
set(gcf,'color',[1 1 1])
% delimita eixo para melhor visualizao
axis([ -1 1 0 0.6])
%% plot da onda AM no tempo
figure;
subplot(3,1,1);
plot( t, am );
hold on;
% Plot do envolope com cor vermelha
plot(t, Ac+m, '--r');
title(['Sinal Modulado em Amplitude s(t) - ndice de modulao: ' num2str(ma)])
xlabel('Tempo (s)')
ylabel('s(t)')
legend('Onda modulada AM', 'Envelope da onda modulada AM')
%% Plot do sinal S(f): single-sided amplitude spectrum.
subplot(3,1,2);
% fft
amfft = fft(am,lfft)/lfft;
% eixo das frequncias unilateral
freq1 = [0 : fsampling/lfft : fsampling/2 - fsampling/lfft];
% fft unilateral
amfftuni = amfft(1:lfft/2);
% plotagem do espectro S(f)
stem(freq1,abs(amfftuni))
% configurao do grfico
title(['Amplitude unilateral do Espectro de s(t) - ndice de modulao: ' num2str(ma)])
xlabel('Frequency (Hz)')
ylabel('|S(f)|')
%% Plot double-sided amplitude spectrum.
subplot(3,1,3);
freq = [-fsampling/2 : fsampling/lfft : fsampling/2 - fsampling/lfft];
yam = fftshift(amfft);
stem(freq,abs(yam))
title(['Amplitude bilateral do Espectro de s(t) - ndice de modulao: ' num2str(ma)])
xlabel('Frequency (Hz)')
ylabel('|S(f)|')
axis([ -1 1 0 0.6])
set(gcf,'color',[1 1 1])

Você também pode gostar