资源描述
内部
基于MATLAB的AM调制解调系统
仿真报告
XXXX-XXXX-XXXX-XXXX
V1.0
市智能信号与图像处理重点实验室
2013年10月29日
修订历史记录
日期
版本
文档负责人
修改容
2013-10-29
V1.0
亚洲
创建文档
编制
签字
日期
审查
签字
日期
审核
签字
日期
批准
签字
日期
文档评审负责人:
参加评审人员:
目 录
1引言5
1.1设计目的5
1.2术语定义5
1.3参考资料5
1.4文档组织5
2 AM调制解调6
2.1 AM调制6
2.2 AM解调7
3 基于MATLAB的AM仿真8
3.1仿真基本参数8
3.2生成调制信号8
3.3 AM调制器8
3.4相干解调器9
4 仿真结果曲线10
4.1发送信号波形和频谱10
4.2载波信号波形和频谱12
4.3 AM信号波形和频谱14
4.4相干解调波形和频谱16
4.5恢复信号波形和频谱18
5总结20
6程序附录20
22 / 22
1引言
1.1设计目的
本报告依照传统模拟调制的规,给出了AM调制解调的具体流程,重点研究了系统中各阶段信号时域和频谱波形以与频谱的搬移变化,为AM调制解调系统信号波形的进一步深入研究做了基础。
1.2术语定义
本文档使用以下关键术语和简略语。
英文缩写
英文全称
中文名称
AM
Amplitude Modulation
幅度调制
AWGN
Additive White Gaussian Noise
加性高斯白噪声
1.3参考资料
[1]通信原理(第六版)樊昌信 丽娜 编著 国防工业 2007年1月
1.4文档组织
报告第二部分给出了AM调制解调的基本原理;第三部分给出了系统在MATLAB里面的程序调试与仿真;第四部分给出了各仿真模块输出时域和频域波形,并对比发射信号和接收信号的时域波形;第五部分对报告进行了总结。
2 AM调制解调
图1 AM调制解调系统框图
图1显示给出了用于AM调制解调的系统框图。从图中可知,发送端信源信号经AM调制器的调制后搭载高频载波发送出去,发送信道中经历加性高斯白噪声的干扰。接收端信号经历AM解调器的解调输出,最终得到信宿信号。
2.1 AM调制
图2 AM调制模型
图2显示给出了AM调制的原理模型。从图中可知发送信号和直流分量叠加后乘以高频载波后即可形成AM调制信号。
具体时域表波形为:
(1)
对应的频谱波形为:
(2)
2.2 AM解调
图3 AM解调模型
图3显示给出了AM解调的数学模型。由上图可知,解调端信道输出信号乘以跟发送端同频同相的高频载波后,经低通滤波器提取低频分量,即可得到原始的基带调制信号。具体理论推导如下:
送入解调器的AM的表达为
(3)
与同频同相的相干载波相乘后得
(4)
经历低通滤波器滤除高频信号后得
(5)
再经过隔直流电容后
(6)
3 基于MATLAB的AM仿真
本仿真利用MATLAB自带函数仿真了AM系统各阶段信号的时域和频域波形,并对比发射信号和解调恢复信号的波形。
3.1仿真基本参数
系统仿真前定义采样间隔ts,载波频率fc,噪声系数sigma,和时间长度t。具体如下:
%----------------------------------------------------------------
ts=1.e-4;
t=-0.04:ts:0.04 ;
fc=500;
sigma=0.3 ;
3.2生成调制信号
仿真中采用时间长度[-0.02 0.02]高度为1的三角脉冲波形作为调制信号。
%----------------------------------------------------------------
% 生成调制信号
m_sig=tripuls(t+0.01,0.02)-tripuls(t-0.01,0.02);%调整信号m_sig由两个三角脉冲波形左右平移后叠加生成。
3.3 AM调制器
在MATLAB中使用如下的语句对发射信号进行调制:
%----------------------------------------------------------------
% 调制过程
s_am=(1+m_sig).*cos(2*pi*fc*t)+sigma*randn(size(t));
%AM信号由调制信号m_sig叠加直流分量后乘以载波并混以噪声形成。
cos(2*pi*fc*t);% 载波信号,fc为载波频率。
randn(size(t));%代表服从正态分布的噪声。
3.4相干解调器
相干解调依靠接收端提供跟发送端同频同相的高频载波乘以接收信号,再经低通滤波器提取低频分量来恢复出原调制信号。具体程序实现如下:
%----------------------------------------------------------------
% 产生本地接收载波
s_carr=cos(2*pi*fc*t);
% 同步解调
s_dem=s_am.*s_carr;
% 定义lfft变量
Lfft=length(t);%取时间区间的长度并赋值给Lfft。
Lfft=2^ceil(log2(Lfft)+1);%将Lfft重新转化成为更大的偶数Lfft。
ceil;%向正无穷大的方向取整
% 绘制解调后信号频谱
S_dem=fftshift(fft(s_dem,Lfft)/(length(t)));
% 生成低通滤波器
h=fir1(60,[B_m*ts]);%设计低通滤波器频域相应,其中滤波器阶数60,截至频率75Hz。
% 低通滤波
s_rec=filter(h,1,s_dem);%理想低通滤波器filter滤除s_dem中的高频分量得恢复信号s_rec。
% 绘制恢复信号频谱
S_rec=fftshift(fft(s_rec,Lfft)/(length(t)));
4 仿真结果曲线
4.1发送信号波形和频谱
图4发送信号时域波形
图4显示给出了用于调制的发送信号时域波形。图中横坐标和纵坐标分别对应表示时间和信号幅值。从图中可以明显看出发送信号为三角波信号。
图5 发送信号的频谱
图5显示给出了三角波发送信号对应的频谱。图中横坐标表示频率,纵坐标表示频谱幅值。从图中可以看出信号频谱主要集中在低频段,而且信号带宽较窄,大约在150Hz。
4.2载波信号波形和频谱
图6 载波信号时域波形
图6显示给出了发送端调制基带信号所使用的载波波形。图中横坐标表示载波持续时间,横坐标表示载波幅度。从图中可知本次调制使用的载波是幅度为1,周期为,频率为500Hz的余玄波。
图7 载波信号频谱
图7显示给出了系统发射信号所需载波信号频谱。图中横坐标表示频率,纵坐标表示信号频谱幅值。从图中可以明显看出载波频谱的中心频率分别为+500Hz,-500Hz。
4.3 AM信号波形和频谱
图8 AM信号波形(SNR=19.72dB)
图8显示给出了系统中经过AM调制后信号的时域波形。图中横坐标和纵坐标分别对应表示时间和信号幅值。从图中可知,已调制信号的外包络仍然保持着跟调制信号相同的包络特性。
图9 AM信号频谱波形(SNR=19.72dB)
图9显示给出了经历调制后信号所对应的频谱。频谱图中横坐标表示频率,纵坐标表示频谱幅值。从图中可知:原发射信号经过调制后,频谱明显从原来的低频部分搬移到载波频率对应的高频部分。但由于已调制信号中直流分量的作用,调制后信号频谱的幅值相比原调制信号频谱幅值并没有完全减半。
4.4相干解调波形和频谱
图10 经过相干解调后的时域信号波形
图10显示给出了相干解调号乘以跟发送载波同频的本地余玄波后的时域波形。图中横坐标为时间轴,纵坐标表示信号幅值。从上述图中可知:AM信号完整的输入波形转化为单一极性输出,同时信号的频率增加。
图11 相干解调频谱
图11 显示给出了信号通过相干解调乘以本地载波后对应频谱图。图中横坐标表示频率变化围,纵坐标表示频谱幅值。由上图对比图9可知,乘以本地载波后的信号频谱将AM信号频谱又重新的搬移,而在高频段仍然保留频谱分量。
4.5恢复信号波形和频谱
图12 经过低通滤波器后恢复信号时域波形(SNR=19.72dB)
图12显示给出了经过低通滤波器后恢复出的信号的时域波形。图中横坐标表示信号长度时间坐标轴,纵坐标表示恢复信号的幅值。从图中可看出,恢复的信号波形基本上跟发送端发送信号波形吻合。但由于受到噪声的影响,信号的包络发生了抖动。
图13 经历低通滤波器恢复信号频谱图
图13显示给出了相干解调信号经过低通滤波器后对应的频谱。上述图像中横坐标代表频率变化,纵坐标表示频谱幅度变化。对比原发射信号频谱可知,此恢复出的信号频谱基本跟发射信号频谱波形吻合并且带宽大约在150Hz,说明能较好的恢复出原调制信号。
5总结
本报告使用MATLAB软件仿真了AM调制解调系统中各阶段信号的时域和频谱波形,更直观的研究了信号在通过系统中各阶段的波形和频谱搬移变化情况。
6程序附录
%--------------------------------------------------------------------
%% AM Modulation &Demodulation
% by yazooliu
% 2013,10,28
% Copyright by N6_207lab
%--------------------------------------------------------------------
% the basic parameter for AM Modulation &Demodulation system
%--------------------------------------------------------------------
ts=1.e-4;
t=-0.04:ts:0.04;
fc=500; %frequency of carrier
sigma=0.2;%noise index
%--------------------------------------------------------------------
% Generate message signal by using function’tripuls’
m_sig=tripuls(t+0.01,0.02)-tripuls(t-0.01,0.02);
%--------------------------------------------------------------------
% FFT of m_sig
Lfft=length(t);%the length of t
Lfft=2^ceil(log2(Lfft));% shift the variable of ‘Lfft’
M_fre=fftshift(fft(m_sig,Lfft)/(length(t)));
freqm=(-Lfft/2:Lfft/2-1)/(Lfft*ts);%frequency range
B_m=150; %Bandwidth of the signal is B_mHz
h=fir1(60,[B_m*ts]);%B_m*ts=0.015*5K=75Hz,the cut_off freq of LPF filter
%--------------------------------------------------------------------
%Am signal generated by adding a carrier to DSB-SC
s_carr=cos(2*pi*fc*t);%carrier signal
s_am=(1+m_sig).*cos(2*pi*fc*t)+sigma*randn(size(t));% modulated signal
%--------------------------------------------------------------------
%fft to s_am
%--------------------------------------------------------------------
Lfft=length(t);
Lfft=2^ceil(log2(Lfft)+1);
S_am=fftshift(fft(s_am,Lfft)/(length(t)));% fft to”s_am”
freqs=(-Lfft/2:Lfft/2-1)/(Lfft*ts);%frequency range
%--------------------------------------------------------------------
%Display the Time_domain &Frequency_domain waveform of message_signal
%--------------------------------------------------------------------
figure(1);
h1=plot(t,m_sig);
%title('Message Signal');
xlabel('t(sec)');ylabel('m(t)');
axis([-0.025 0.025 -2 2]);
set(h1,'Linewidth',1.5);
figure(2);
h2=plot(freqm,abs(M_fre));
%title('Message Spectrum');
xlabel('f(Hz)');ylabel('M(f)');
axis([-200 200 0 0.5]);
set(h2,'Linewidth',1.5);
%--------------------------------------------------------------------
% Display the Time_domaim&Frequency_domain waveform Of Carrier
%--------------------------------------------------------------------
figure(3);
S_carr=fftshift(fft(s_carr,Lfft)/(length(t)));
h3=plot(freqs,abs(S_carr));
%title('Carrier Spectrum');
xlabel('f(Hz)');ylabel('{\it S}_{\it carr}({\it f})');
axis([-700 700 0 0.5]);set(h3,'Linewidth',1.5);
figure(4);
h33=plot(t,s_carr);
%title('Carrier Signal');
xlabel('t(sec)');ylabel('{\it s}_{carr}({\it t})');
axis([-0.005 0.005 -1.5 1.5]);set(h33,'Linewidth',1.5);
%--------------------------------------------------------------------
%Display the Time_domain &Frequency_domain wave of AM Dodulatied_signal
%--------------------------------------------------------------------
figure(5);
h4=plot(t,s_am);xlabel('t(sec)');ylabel('{\it s}_{\it AM}({\it t})');
%title('AM Modulated Signal');
axis([-0.025 0.025 -2 2]);set(h4,'Linewidth',1.5);
figure(6);
%S_am is given before
h5=plot(freqs,abs(S_am));xlabel('f(Hz)');ylabel('{\it S}_{\it AM}({\it f})');
%title('AM Specturm');
axis([-700 700 0 0.5]);set(h5,'Linewidth',1.5);
%--------------------------------------------------------------------
% Demodulation begins by using the coherent_demodulation
%--------------------------------------------------------------------
s_dem=s_am.*s_carr;
S_dem=fftshift(fft(s_dem,Lfft)/(length(t)));
%--------------------------------------------------------------------
%Using the ideal LPF with bandwidth 150Hz
%--------------------------------------------------------------------
s_rec=filter(h,1,s_dem);
S_rec=fftshift(fft(s_rec,Lfft)/(length(t)));
%--------------------------------------------------------------------
%Display the Time_domain &Frequency_domain wave of Coherent_signal
%--------------------------------------------------------------------
figure(7);
h6=plot(t,s_dem);xlabel('t(sec)');ylabel('{\it s}_{\it rect}({\it t})');
%title('Cohernet Signal');
axis([-0.025 0.025 -2 2]);set(h6,'Linewidth',1.5);
figure(8);
h7=plot(freqs,abs(S_dem));xlabel('f(Hz)');ylabel('{\it S}_{\it rect}({\it f})');
%title('Coherent Specturm');
axis([-1200 1200 0 0.5]);set(h7,'Linewidth',1.5);
%--------------------------------------------------------------------
%Display the Time_domain &Frequency_domain wave of Rcecovered_signal
%--------------------------------------------------------------------
figure(9);
h8=plot(t,s_rec);xlabel('t(sec)');ylabel('{\it s}_{\it rec}({\it t})');
%title('Recovered Signal');
axis([-0.025 0.025 -0.5 1]);set(h8,'Linewidth',1.5);
figure(10);
h9=plot(freqs,abs(S_rec));xlabel('f(Hz)');ylabel('{\it S}_{\it rec}({\it f})');
%title('Recovered Specturm');
axis([-200 200 0 0.5]);set(h9,'Linewidth',1.5);
%--------------------------------------------------------------------
% Display all time_domain wave on one figure(10)
%--------------------------------------------------------------------
region1=[-0.025 0.025 -2 2 ];
figure(11);
subplot(221);
h_1=plot(t,m_sig);title('Message Signal');xlabel('t(sec)');ylabel('m(t)');
set(h_1,'Linewidth',1.5); grid on;
axis(region1);
subplot(222);
h_2=plot(t,s_am);xlabel('t(sec)');ylabel('{\it s}_{\it AM}({\it t})');
title('AM Modulated Signal');
set(h_2,'Linewidth',1.5);axis(region1); grid on;
subplot(223);
h_3=plot(t,s_dem);xlabel('t(sec)');ylabel('{\it s}_{\it rect}({\it t})');
title('Rectified Signal');
axis(region1);set(h_3,'Linewidth',1.5); grid on;
subplot(224);
h_4=plot(t,s_rec);xlabel('t(sec)');ylabel('{\it s}_{\it rec}({\it t})');
title('Recovered Signal');
axis([-0.025 0.025 -0.5 1]);set(h_4,'Linewidth',1.5); grid on;
%--------------------------------------------------------------------
%Display all Frequency_domain wave on one figure(11)
%--------------------------------------------------------------------
region2=[-700 700 0 0.5];
figure(12);
subplot(221);
h_5=plot(freqm,abs(M_fre));title('Message Spectrum');xlabel('f(Hz)');ylabel('M(f)');
axis([-200 200 0 0.5]);set(h_5,'Linewidth',1.5); grid on;
subplot(222);
h_6=plot(freqs,abs(S_am));xlabel('f(Hz)');ylabel('{\it S}_{\it AM}({\it f})');
title('AM Specturm');
axis([-700 700 0 0.5]);set(h_6,'Linewidth',1.5); grid on;
subplot(223);
h_7=plot(freqs,abs(S_dem));xlabel('f(Hz)');ylabel('{\it S}_{\it rect}({\it f})');
title('Coherent Specturm');
axis(region2);set(h_7,'Linewidth',1.5,'color','r');grid on;
subplot(224);
h_8=plot(freqs,abs(S_rec));xlabel('f(Hz)');ylabel('{\it S}_{\it rec}({\it f})');
title('Recovered Specturm');
axis([-200 200 0 0.5]);set(h_8,'Linewidth',1.5,'color','r');grid on;
%--------------------------------------------------------------------
%save the result to file
%--------------------------------------------------------------------
save AM_mod_demod_yzliu_10_28
展开阅读全文