实验报告_模拟线性调制系统仿真(11页)
时间:2020-11-18 16:45:45 来源:勤学考试网 本文已影响 人
实验一:模拟线性调制系统仿真
一、实验目的:
掌握模拟调制系统的调制和解调原理;
理解相干解调。
三、实验内容:
1、编写AM、DSB、SSB调制,并画出时域波形和频谱图。
2、完成DSB调制和相干解调。
四、实验步骤
线性调制
1) 假定调制信号为,载波,=1kHz,=10kHz; 绘制调制信号和载波的时域波形(保存为图1-1)。
2) 进行DSB调制,;进行AM调制,;绘制DSB已调信号和AM已调信号的波形,并与调制信号波形进行对照(保存为图1-2)。
3) 用相移法进行SSB调制,分别得到上边带和下边带信号,,,。
4) 对载波、调制信号、DSB已调信号、AM已调信号和SSB 已调信号进行FFT变换,得到其频谱,并绘制出幅度谱(保存为图1-3)。
DSB信号的解调
用相干解调法对DSB信号进行解调,解调所需相干载波可直接采用调制载波。
将DSB已调信号与相干载波相乘。
设计低通滤波器,将乘法器输出中的高频成分滤除,得到解调信号。
绘制低通滤波器的频率响应(保存为图1-4)。
对乘法器输出和滤波器输出进行FFT变换,得到频谱。
绘制解调输出信号波形;绘制乘法器输出和解调器输出信号幅度谱(保存为图1-5)。
绘制解调载波与发送载波同频但不同相时的解调信号的波形,假定相位偏移分别为 (保存为图1-6).
五、实验思考题
1、与调制信号比较,AM、DSB和SSB的时域波形和频谱有何不同?
答:AM时域波形的上包络其形状与调制信号的波形相同,只是幅度有所增大;而DSB时域波形的上包络则不再与调制信号相同,但幅度却不变。
调制信号的频谱频率相对较低,只有一个冲击,功率较大;AM已调信号频谱集中出现在10kHz附近,有三个冲击,中间一个功率较大,且与调制信号的功率接近,其余两个大约为其一半;DSB已调信号频谱也是集中在10kHz左右,只有两个冲击,以10kHz为对称轴对称分布,功率为调制信号的一半左右;SSB已调信号频谱就是DSB已调信号两个冲击的分解。
2、低通滤波器设计时应考虑哪些因素?
答:本地载波接收信号的载波保证同频同相,且低通滤波器的带宽应略大于DSB信号带宽。
3、采用相干解调时,接收端的本地载波与发送载波同频不同相时,对解调性能有何影响?
答:导致载波失真,不能完好的解调原波形。
六、源程序
%fc=10kHz, fm=1kHz, tp: 10 periods of moulation wave
%fs=10fc
close all;
clear;
fc=10e3; %载波频率
fm=1e3; %调制信号频率
fs=8*fc; %抽样频率
ts=1/fs; %抽样周期
tp=10/fm; %信号持续时间
N=tp*fs; %样值点数
t=0:ts:tp; %抽样时间点
m_sig=cos(2*pi*fm*t); %调制信号
c_sig=cos(2*pi*fc*t); %载波
m_shift_p = sin(2*pi*fm*t); %调制信号的90度相移
c_q_sig = sin(2*pi*fc*t); %正交载波
dsb_sig=m_sig.*c_sig; %DSB已调信号
am_sig=(1+m_sig).*c_sig; %AM已调信号
ssb_sig_usb=(m_sig.*c_sig - m_shift_p.*c_q_sig)/2; %SSB已调信号,上边带
ssb_sig_lsb=(m_sig.*c_sig + m_shift_p.*c_q_sig)/2; %SSB已调信号,下边带
fHz=[0:4095]/4096*fs; %频率点
M_f=fft(m_sig,4096); %调制信号的频谱
C_f=fft(c_sig,4096); %载波的频谱
dsb_f=fft(dsb_sig,4096); %DSB已调信号频谱
am_f = fft(am_sig, 4096); %AM已调信号频谱
ssb_usb_f = fft(ssb_sig_usb, 4096); %SSB已调信号,上边带频谱
ssb_lsb_f = fft(ssb_sig_lsb, 4096); %SSB已调信号,下边带频谱
figure(1);
subplot(2,1,1); %调制信号波形
plot(t,m_sig);
title('调制信号');
xlabel('\itt\rm(s)');
%ylabel('\itm\rm(\itt\rm)');
subplot(2,1,2); %载波波形
plot(t,c_sig);
title('载波');
xlabel('\itt\rm(s)');
%ylabel('\itc\rm(\itt\rm)');
figure(2);
subplot(3,1,1);
plot(t,dsb_sig);
title('DSB已调信号');
xlabel('\itt\rm(s)');
%ylabel('\its\rs_D_S_B(\itt\rm)');
axis([0 0.01 -2 2]);
subplot(3,1,2); %DSB已调制信号波形
plot(t,am_sig);
title('AM已调信号');
xlabel('\itt\rm(s)');
%ylabel('\itm\rm(\itt\rm)');
axis([0 0.01 -2 2]);
subplot(3,1,3); %AM调制信号波形
plot(t,m_sig);
title('调制信号');
xlabel('\itt\rm(s)');
axis([0 0.01 -2 2]);
figure(3);
subplot(3,2,1); %调制信号频谱
plot(fHz/1e3,abs(M_f));
title('调制信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itM\rm(\itf\rm)');
axis([0 22 0 420]);
grid on;
subplot(3,2,2);
plot(fHz/1e3,abs(C_f)) %载波信号频谱
title('载波信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itF\rm_C(\itf\rm)');
axis([0 22 0 420]);
grid on;
subplot(3,2,3);
plot(fHz/1e3,abs(dsb_f)); %DSB已调信号频谱
title('DSB已调信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itF\rm_D_S_B(\itf\rm)');
axis([0 22 0 420]);
grid on;
subplot(3,2,4); %AM已调信号频谱
plot(fHz/1e3,abs(am_f));
title('AM已调信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itM\rm(\itf\rm)');
axis([0 22 0 420]);
grid on;
subplot(3,2,5);
plot(fHz/1e3,abs(ssb_usb_f)) % SSB已调信号,上边带频谱
title('SSB已调信号,上边带频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itF\rm_C(\itf\rm)');
axis([0 22 0 420]);
grid on;
subplot(3,2,6);
plot(fHz/1e3,abs(ssb_lsb_f)); % SSB已调信号,下边带频谱
title('SSB已调信号,下边带频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itF\rm_D_S_B(\itf\rm)');
axis([0 22 0 420]);
grid on;
%DSB解调
wc=1.5*2*pi*fm/fs; %解调器低通滤波器截止频率,1.5fm
% lbf_hn=fir1(8,wc/pi);
lbf_hn16=fir1(16,wc/pi); %低通滤波器系统函数,FIR滤波器
dsb_dem_mul=dsb_sig.*c_sig; %解调器乘法器输出
dem_out=filter(lbf_hn16,1,dsb_dem_mul); %滤波器输出
dsb_dem_mul_f=fft(dsb_dem_mul,4096); %解调器乘法器输出信号频谱
dem_out_f=fft(dem_out,4096); %DSB解调信号频谱
figure(4);
grid on;
hold on;
[h,w]=freqz(lbf_hn16, 1, N); %低通滤波器的频率响应
semilogx(w*fs/(2*pi)/1e3,20*log10(abs(h)),'r');
title('Frequence response - LBF');
xlabel('\itf\rm(kHz)');
ylabel('\itH\rm_L_P_F(dB)');
%axis([0.1 40 -90 0]);
figure(5);
subplot(3,1,1);
plot(fHz/1e3,abs(dsb_dem_mul_f)); %DSB解调乘法器输出信号频谱
title('解调乘法器输出信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itS\rm_o(\itf\rm)');
axis([0 22 0 210]);
grid on;
subplot(3,1,2);
plot(fHz/1e3,abs(dem_out_f)); %解调器输出信号频谱
title('解调器输出信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itM\rm_o(\it\f\rm)');
axis([0 22 0 210]);
grid on;
subplot(3,1,3);
plot(t,dem_out,'r'); %解调器输出信号波形
title('解调器输出信号');
xlabel('\itt\rm(s)');
%ylabel('\itm\rm_o(\itt\rm)');
% axis([0 0.01 -0.6 0.6]);
grid on;
%SSB解调,上边带
wc=1.5*2*pi*fm/fs; %解调器低通滤波器截止频率,1.5fm
% lbf_hn=fir1(8,wc/pi);
lbf_hn16=fir1(16,wc/pi); %低通滤波器系统函数,FIR滤波器
ssb_dem_mul=ssb_sig_usb.*c_sig; %解调器乘法器输出
sem_out=filter(lbf_hn16,1,ssb_dem_mul); %滤波器输出
ssb_dem_mul_f=fft(ssb_dem_mul,4096); %解调器乘法器输出信号频谱
sem_out_f=fft(sem_out,4096); %SSB解调信号频谱
figure(6);
subplot(3,1,1);
plot(fHz/1e3,abs(ssb_dem_mul_f)); %SSB解调乘法器输出信号频谱
title('解调乘法器输出信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itS\rm_o(\itf\rm)');
axis([0 22 0 210]);
grid on;
subplot(3,1,2);
plot(fHz/1e3,abs(sem_out_f)); %解调器输出信号频谱
title('解调器输出信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itM\rm_o(\it\f\rm)');
axis([0 22 0 210]);
grid on;
subplot(3,1,3);
plot(t,sem_out,'r'); %解调器输出信号波形
title('解调器输出信号');
xlabel('\itt\rm(s)');
%ylabel('\itm\rm_o(\itt\rm)');
% axis([0 0.01 -0.6 0.6]);
grid on;
%SSB解调,下边带
wc=1.5*2*pi*fm/fs; %解调器低通滤波器截止频率,1.5fm
% lbf_hn=fir1(8,wc/pi);
lbf_hn16=fir1(16,wc/pi); %低通滤波器系统函数,FIR滤波器
ssb_dem_mul2=ssb_sig_lsb.*c_sig; %解调器乘法器输出
sem_out2=filter(lbf_hn16,1,ssb_dem_mul2); %滤波器输出
ssb_dem_mul_f2=fft(ssb_dem_mul2,4096); %解调器乘法器输出信号频谱
sem_out_f2=fft(sem_out2,4096); %SSB解调信号频谱
figure(7);
subplot(3,1,1);
plot(fHz/1e3,abs(ssb_dem_mul_f2)); %SSB解调乘法器输出信号频谱
title('解调乘法器输出信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itS\rm_o(\itf\rm)');
axis([0 22 0 210]);
grid on;
subplot(3,1,2);
plot(fHz/1e3,abs(sem_out_f2)); %解调器输出信号频谱
title('解调器输出信号频谱');
xlabel('\itf\rm(kHz)');
%ylabel('\itM\rm_o(\it\f\rm)');
axis([0 22 0 210]);
grid on;
subplot(3,1,3);
plot(t,sem_out2,'r'); %解调器输出信号波形
title('解调器输出信号');
xlabel('\itt\rm(s)');
%ylabel('\itm\rm_o(\itt\rm)');
% axis([0 0.01 -0.6 0.6]);
grid on;
%解调载波不同步时的解调情况
lc_sig1 = cos(2*pi*fc*t+pi/8);
lc_sig2 = cos(2*pi*fc*t+pi/4);
lc_sig3 = cos(2*pi*fc*t+pi/3);
lc_sig4 = cos(2*pi*fc*t+pi/2);
dsb_dem_mul1=dsb_sig.*lc_sig1; %解调器乘法器输出
dsb_dem_mul2=dsb_sig.*lc_sig2; %解调器乘法器输出
dsb_dem_mul3=dsb_sig.*lc_sig3; %解调器乘法器输出
dsb_dem_mul4=dsb_sig.*lc_sig4; %解调器乘法器输出
dem_out1=filter(lbf_hn16,1,dsb_dem_mul1); %滤波器输出
dem_out2=filter(lbf_hn16,1,dsb_dem_mul2); %滤波器输出
dem_out3=filter(lbf_hn16,1,dsb_dem_mul3); %滤波器输出
dem_out4=filter(lbf_hn16,1,dsb_dem_mul4); %滤波器输出
figure(6);
subplot(2,2,1);
plot(t,dem_out1); %解调器输出信号波形
title('解调器输出信号,解调载波相差\pi/8');
xlabel('\itt\rm(s)');
axis([0 0.01 -0.5 0.5]);
subplot(2,2,2);
%grid on;
plot(t,dem_out2); %解调器输出信号波形
title('解调器输出信号,解调载波相差\pi/4');
xlabel('\itt\rm(s)');
axis([0 0.01 -0.5 0.5]);
subplot(2,2,3);
%grid on;
plot(t,dem_out3); %解调器输出信号波形
title('解调器输出信号,解调载波相差\pi/3');
xlabel('\itt\rm(s)');
axis([0 0.01 -0.5 0.5]);
axis([0 0.01 -0.5 0.5]);
subplot(2,2,4);
%grid on;
plot(t,dem_out4); %解调器输出信号波形
title('解调器输出信号,解调载波相差\pi/2');
xlabel('\itt\rm(s)');
axis([0 0.01 -0.5 0.5]);
%grid on;
- 下载文档
- 收藏
- 0