کدهای برنامه Matlab برای مدولاسیون دامنه AM و ...

  • نویسنده موضوع نویسنده موضوع Sina
  • تاریخ شروع تاریخ شروع
👋 سلام!

انجمن یه حس خوب جایی برای گفت‌وگو، تجربه‌های مفید و ارتباط دوستانه است. برای ارسال پیام، چت خصوصی، یا دانلود فایل‌ها، کافیه ثبت‌نام کنی.

📝 [ثبت‌نام کن و شروع کن!]

Sina

Administrator
پرسنل مدیریت
2013-05-11
4,760
2,906
113
چابکســـر، سرزمین پارس
​​
[h=3]Code:[/h]
close all; clear all;clc;

%************************************************%
% Amplitude Modulation %
%************************************************%

%********************Variables******************%

fs=input('Enter sampling frequency= '); % sampling frequency
fm=2; % Modulatig Signal Frequency
fc=50; % Carrier Frequency
Am=1; % Modulatig Signal Amplitude
Ac=1; % Carrier Signal Amplitude

%*********************Signals*******************%

Wc=2*pi*fc;
Wm=2*pi*fm;
t=0:1/(fs):1;
choice = questdlg('Choose input for AM','Input','Sine','square', 'Sawtooth', '');
switch choice
case 'Sine'
Modulating_Signal=Am*sin(Wm*t);
case 'square'
Modulating_Signal=Am*square(Wm*t);
case 'Sawtooth'
Modulating_Signal=Am*sawtooth(Wm*t);
end

carrier_Signal = Ac*sin(Wc*t);

%********************MODULATION*****************%

AM_time= Modulating_Signal.*carrier_Signal;
AM_Freq=fftshift(abs(fft(AM_time)));

%**********************Plot*********************%
figure(1);subplot(321);plot(t,carrier_Signal);
title('AM carrier signal');xlabel('time'),ylabel('amplitude');grid on;

car_Sig_freq=fftshift(abs(fft(carrier_Signal)));
axiss=-fs/2:fs/(length(car_Sig_freq)-1):fs/2
figure(1);subplot(322);plot(axiss,car_Sig_freq);axis([-1000 1000 0 6000])
title('Carrier signal FREQ');xlabel('Frequency'), ylabel('amplitude');grid on;

figure(1);subplot(323);plot(t,Modulating_Signal);
title('AM modulating signal');
xlabel('time'), ylabel('amplitude');grid on;

Mod_Sig_freq=fftshift(abs(fft(Modulating_Signal)));
axiss=-fs/2:fs/(length(Mod_Sig_freq)-1):fs/2
figure(1);subplot(324);plot(axiss,Mod_Sig_freq);axis([-1000 1000 0 6000])
title('Modulating signal FREQ');
xlabel('Frequency'), ylabel('amplitude');grid on;

figure(1);subplot(325);plot(t,AM_time);
title('AM time-domain');
xlabel('time'), ylabel('amplitude');grid on;

axiss=-fs/2:fs/(length(AM_Freq)-1):fs/2;
figure(1);subplot(326);plot(axiss,AM_Freq);axis([-1000 1000 0 6000])
title('AM frequency-domain');xlabel('frequency'), ylabel('amplitude');grid on;

%********************DEMODULATION****************%

AM_DM_time=AM_time.*carrier_Signal;
AM_DM_Freq=fftshift(abs(fft(AM_DM_time)));

filter=fir1(200,fm/fs,'low');
orignal_t_Signal=conv(filter,AM_DM_time);
orignal_f_Signal=fftshift(abs(fft(orignal_t_Signal)));

figure(2);subplot(221);plot(t,AM_DM_time);
title('Demodulated Signal time-domain');xlabel('time'), ylabel('amplitude');grid on;

axiss=-fs/2:fs/(length(AM_DM_Freq)-1):fs/2;
figure(2);subplot(222);plot(axiss,AM_DM_Freq);axis([-1000 1000 0 6000])
title('Demodulated Signal freq-domain');xlabel('frequency'), ylabel('amplitude');grid on;

t1=0:1/(length(orignal_t_Signal)-1):1
figure(2);subplot(223);plot(t1,orignal_t_Signal);
title('Filterd Signal time-domain');xlabel('time'), ylabel('amplitude');grid on;

axiss=-fs/2:fs/(length(orignal_f_Signal)-1):fs/2;
figure(2);subplot(224);plot(axiss,orignal_f_Signal);axis([-1000 1000 0 6000])
title('Filterd Signal freq-domain');
xlabel('frequency'), ylabel('amplitude');grid on;clear all;


%************************************************%
% Frequency Modulation %
%************************************************%

%***************Variables************************%

Ac=1; %carrier signal amplitude
Am=1; %Modulation signal amplitude
fm=2; %Modulating signal frequncy
fc=50; %carrier signal frequncy
m=10; % index of FM

%********************Signal********************%
fs=10000;
Wc=2*pi*fc;
Wm=2*pi*fm;
t=0:1/(fs-1):1;
choice1 = questdlg('Choose input for FM','Input','Sine','cosine', '');
switch choice1
case 'Sine'
Modulating_Signal=Am*sin(Wm*t);
case 'cosine'
Modulating_Signal=Am*cos(Wm*t);
end


Carrier_Signal_fm = Ac*cos(Wc*t);


%********************Modulation****************%
m=10; %modulating index
FM_time= Ac*cos((Wc*t)+m*Modulating_Signal);
FM_Freq=fftshift(abs(fft(FM_time)));
%Demodulation
FM_DEM_T= 100*demod(FM_time,fc,fs,'fm'); %Hilbert transform gives 90 phase shift
FM_DEM_F=fftshift(abs(fft(FM_DEM_T)));
axisx=-fs/2:fs/(length(FM_DEM_F)-1):fs/2
%*****************Plot*************************%

figure(3);subplot(221);plot(t, Modulating_Signal);
title('FM modulating signal');

mod_Sig_fre=fftshift(abs(fft(Modulating_Signal)));
axiss=-fs/2:fs/(length(mod_Sig_fre)-1):fs/2
figure(3);subplot(222);plot(axiss,mod_Sig_fre);axis([-1000 1000 0 6000])
title('Mod signal Freq');xlabel('Frequncy'), ylabel('amplitude');grid on;

figure(3);subplot(223);plot(t, Carrier_Signal_fm);
title('FM Carrier signal');

Carrier_Signal_freq=fftshift(abs(fft( Carrier_Signal_fm)));
axiss=-fs/2:fs/(length( Carrier_Signal_freq)-1):fs/2
figure(3);subplot(224);plot(axiss,Carrier_Signal_freq);axis([-1000 1000 0 6000])
title('Carrier signal Freq');xlabel('Frequency'), ylabel('amplitude');grid on;

figure(4);subplot(221);plot(t,FM_time);
xlabel('time(second)'),ylabel('amplitude');title('FM Modulated time-domain');grid on;

FM_Sig_freq=fftshift(abs(fft(FM_time)));
axiss=-fs/2:fs/(length(FM_Sig_freq)-1):fs/2
figure(4);subplot(222);plot(axiss, FM_Sig_freq);
title('FM signal Freq');xlabel('Frequncy'), ylabel('amplitude');grid on;

figure(4);subplot(223);plot(t,FM_DEM_T);
title('FM DEmodulated signal Time');

figure(4);subplot(224);plot(axiss,FM_DEM_F);
title('FM DEmodulated signal Freq');
_______________________________________________________________
 

درباره ما

  • انجمن یه‌حس‌خوب در اردیبهشت سال 1392 با هدف ایجاد یک شبکه اجتماعی شامل موضوعات سرگرمی، علمی، دانشگاهی، فناوری و ... شروع بکار کرد و بیش از یک دهه آنلاین است. این مجموعه کاربرمحور بوده و اعضای آن در طول این سال‌ها تجارب خود را برای شما بازدیدکنندگان عزیز به اشتراک گذاشتند. این مجموعه دارای نظارت 24 ساعته بوده تا محیطی سالم را برای کاربران خود فراهم آورد، از کاربران انتظار می رود که با رعایت قوانین ما را برای رسیدن به این هدف یاری نمایند.

منوی کاربر