SSB调制与解调(Simulink&Matlab)
题目:基于Simulink的SSB信号调制与解调仿真
一、实验目的与要求
- 目的:学习SSB信号的调制与解调仿真
- 要求:
- 具有MATLAB的仿真结果并附上代码
- 具有基于Simulink的模块的模拟仿真结果,并附上设计模块图
- 结果清晰充分
- 包含实现结果分析和总结
二、原理
- 单边带调制是幅度调制的一种,由调制信号去控制高频载波的幅度,使之随调制信号做线性变化的过程。这里的
线性
并不意味着已调信号与调制信号之间符合线性变换关系,事实上,任何调制过程都是非线性变换过程。 - SSB信号是将DSB信号中的一个边带滤掉而形成的,最直接的方法是滤波法。所谓滤波法,就是通过产生一个双边带信号,然后让其通过一个边带滤波器,即可得到单边带信号。
其中,
DSB信号为:\(s_{DSB}(t)=m(t)cosw_ct\)
DSB信号频谱为:\(S_{DSB}(t)=\frac{1}{2}[M(w-w_c)+M(w+w_c)\)
SSB信号为:\(s_{SSB}(t)=s_{DSB}(t)*h_{SSB}(t)\)
SSB信号频谱为:\(s_{SSB}(t)=\frac{1}{2}[M(w-w_c)+M(w+w_c)H_{SSB}(t)\)
-
解调采用相干解调,也叫同步检波。解调与调制的实质一样,均是频谱搬移。调制是把基带信号的频谱搬移到载频的位置,这一过程可以通过一个相乘器与载波相乘来实现。解调是调制的反过程,即把在载波位置的已调信号的频谱搬回到原始基带位置,因此同样可以使用相乘器与载波相乘来实现。
即: \(S_p(t)=S_m(t)cosw_ct\) ,其中,\(cosw_ct\)为相干载波,\(S_m(t)\)为SSB信号
-
实际上,各种线性已调信号在传输过程中不可避免的要受到噪声的干扰,所以在解调过程中需要解调器的抗噪声性能足够的强,也就是信噪比增益越高,解调器抗噪声性能越好。
其中信噪比增益为:\(G=\frac{S_o/N_o}{S_i/N_i}\)
利用滤波法展示单边带信号框图
单边带信号频谱图(分上边带、下边带)
相干解调框图
线性调制相干解调是接收系统的一般模型
其中\(n(t)\)为加性高斯白噪声\(s_m(t)\)为已调信号,BPF为带通滤波器,解调器为相干解调器;\(n_i(t)\)为窄带高斯噪声,\(m_o(t)\)为输出的有用信号,\(n_o(t)\)为噪声
三、实验内容
一、基于Simulink的SSB调制实验(纯正弦)
图注:基于Simulink的SSB调制模块图
模块结构:
- 输入: 一个2Hz的正弦基带信号和一个20Hz的正弦载波信号,其中基带信号为\(2sin(4\pi)\),载波信号为\(2sin(40\pi)\)
- 边带滤波器: 采用的是椭圆模拟滤波器,过渡带比较窄。其中低通滤波器的通带边界频率为20-2=18Hz,高通滤波器的通带边界频率为20+2=22Hz,两个滤波器的通带最大衰减均为0.1dB,阻带最小衰减均为80dB
图注:第一个波形为:消息信号(2Hz)第二个波形为:载波信号 (20Hz)
第三个波形为:DSB已调信号
- 从上图可以看到DSB波形,在过零点处有相位翻转180°的现象,幅值为4
图注:黄色波形为:基带信号
蓝色波形为:DSB已调信号
- 可以看到基带信号经过DSB信号过零点处
图注:第一个波形为:下边带信号(LSSB)
第二个波形为:上边带信号(USSB)
图注:基带信号频谱
- 可以看到一个频率为2Hz,幅值为2的正弦信号频谱
图注:载波信号频谱
- 可以看到一个频率为20Hz,幅值为2的正弦信号频谱
图注:DSB信号频谱
- 可以看到有两个边带,其中下边带主要频率成分为18Hz,幅值为2;上边带主要频率成分为22Hz,幅值为2;
图注:LSB信号频谱
- 可以看到上边带基本没有了,主要频率成分为18Hz,幅值为2的下边带信号频谱
图注:USB信号频谱
- 可以看到下边带基本没有了,主要频率成分为22Hz,幅值为2的上边带信号频谱
小结: 通过把两个信号直接相乘来产生DSB信号,这种调制会把基带信号的频谱搬移到载波信号的频谱附近,形成对称的上下边带,所以从信息传输的角度考虑,仅需要任一边带就够了,所以通过适当的低通滤波器取得下边带,适当的高通滤波器取得上边带。这里原本的滤波器采用Butterworth滤波器的设计方式,但由于过渡带不够窄,即不够陡峭,总是会残留一部分边带,再经过查阅资料后选择了过渡带比较窄的椭圆滤波器,这样就基本滤除了另一个边带。
二、基于Simulink的SSB相干解调实验(纯正弦)
图注:基于Simulink的SSB解调模块图
模块结构:
- 输入: 一个2Hz的正弦基带信号和一个20Hz的正弦载波信号,其中基带信号为\(2sin(4\pi)\),载波信号为\(2sin(40\pi)\)
- 边带滤波器: 采用的是椭圆模拟滤波器,过渡带比较窄。其中低通滤波器的通带边界频率为20-2=18Hz,高通滤波器的通带边界频率为20+2=22Hz,两个滤波器的通带最大衰减均为0.1dB,阻带最小衰减均为80dB
- 相干载波: \(2sin(40\pi)\)与输入时的载波信号同频同相
- 低通滤波器 : 通带边界频率为40Hz的椭圆模拟低通滤波器
图注:波形1为:相干载波(20Hz)
波形2为:相干载波与LSB信号相乘后的波形
波形3为:相干载波与USB信号相乘后的波形
- 可以很明显看到波形2和波形3基本是相同的
图注:波形1为:相干载波与LSSB信号相乘后经过低通后的波形
波形2为:相干载波与USSB信号相乘后经过低通后的波形
- 可以看到图中标注的两个信号再经过LPF后的波形一致,且频率为2Hz,幅值为2,与基带信号一致,说明上下边带所含的信息一样,解调成功。
图注:相干载波与LSB信号相乘后的波形频谱
- 相干载波与LSB信号相乘后的波形频谱在20-18=2Hz处有一个信号,在18+20=38Hz处也有一个信号,符合DSB调制的规律
图注:相干载波与USB信号相乘后的波形频谱
- 相干载波与USB信号相乘后的波形频谱在-20-(-22)=2Hz处有一个信号,在20+22=42Hz处也有一个信号,符合DSB调制的规律。对比上面相干载波与LSB信号相乘后的波形发现,在2Hz处都有一个相同幅值的信号。
图注:相干载波与LSB/USB信号相乘后经过低通后的波形频谱
- 可以看到相干载波与LSB/USB信号相乘后经过低通后的波形频谱都是一样的,为频率2Hz,幅值为2的正弦信号。
小结: 通过从DSB信号经过单边带滤波器取得任一边带形成的SSB信号,与相干载波相乘后,形成的信号基本一样,再通过适当的LPF后就可得到基带信号。其中,相干载波要与DSB调制时的载波同频同相,从步骤上来看与DSB调制本质上一样。最后的结果说明用上边带或下边带都可以解调出基带信号。
三、基于Matlab的SSB调制
- 实验代码
%DSB design
clear all;
Fs=1024;%采样频率
t=0:1/Fs:2;%信号长度
Am=2;%基带信号幅值
Ac=2;%载波信号幅值
fm=2;%基带信号频率
fc=20;%载波信号频率
wm=2*pi*fm;%基带信号模拟角频率
wc=2*pi*fc;%载波信号模拟角频率
Sm=Am*sin(wm*t);%基带信号
Sc=Ac*sin(wc*t);%载波信号
SDSB=Sm.*Sc;%DSB已调信号
spec_SDSB=fft(SDSB,2*Fs);%对DSB信号做2048点FFT,做频谱分析
mag_SDSB=abs(spec_SDSB);%计算DSB频响幅值
fdsb=(0:2*Fs-1)./2;%真实频率
figure(10);
plot(fdsb,mag_SDSB);grid on;%显示DSB频谱
title('DSB Spectrum');
set(gca,'xlim',[10,30]);
figure(1);
plot(Sm);grid on;%显示基带信号
title('Base Sign');
set(gca,'xlim',[0,1000]);
figure(2);
plot(Sc);grid on;%显示载波信号
title('Carry Sign');
set(gca,'xlim',[0,1000]);
figure(3);
plot(SDSB);grid on;%显示DSB信号
title('DSB Wave');
set(gca,'xlim',[0,1000]);
%filter design
N=8;%椭圆滤波器的阶数
[BL,AL]=ellip(N,0.1,80,(fc-fm)/(Fs/2),'low');%设计椭圆低通滤波器
%其中通带最大衰减为0.1,阻带最小衰减为80,通带边界频率为20-2=18Hz
[H1,F1]=freqz(BL,AL,Fs/2,Fs);%获取滤波器的频响函数
[BH,AH]=ellip(N,0.1,80,(fc+fm)/(Fs/2),'high');%设计椭圆高通滤波器
%其中通带最大衰减为0.1,阻带最小衰减为80,通带边界频率为20+2=22Hz
[H2,F2]=freqz(BH,AH,Fs/2,Fs);%获取滤波器的频响函数
figure(4);
plot(F1,20*log10(abs(H1)));grid on;%显示椭圆低通滤波器的频响
title('Ellips low pass filter');
set(gca,'xlim',[0,100]);
figure(5);
plot(F2,20*log10(abs(H2)));grid on;%显示椭圆高通滤波器的频响
title('Ellips hign pass filter');
set(gca,'xlim',[0,100]);
%SSB design
LSSB=filter(BL,AL,SDSB);%DSB经过Ellips LPF后取得下边带
USSB=filter(BH,AH,SDSB);%DSB经过Ellips HPF后取得上边带
figure(6);
plot(LSSB);grid on;%显示下边带波形
title('LSSB Wave');
set(gca,'xlim',[0,1000]);
figure(7);
plot(USSB);grid on;%显示上边带波形
title('USSB Wave');
set(gca,'xlim',[0,1000]);
spec_LSSB=fft(LSSB,2*Fs);%对LSSB信号做2048点FFT
spec_USSB=fft(USSB,2*Fs);%对USSB信号做2048点FFT
mag_LSSB=abs(spec_LSSB);%计算LSSB频响幅值
mag_USSB=abs(spec_USSB);%计算USSB频响幅值
fssb=(0:2*Fs-1)./2;
figure(8);
plot(fssb,mag_LSSB);grid on;%显示LSSB频响幅值
title('LSSB Spectrum');
set(gca,'xlim',[10,30]);
figure(9);
plot(fssb,mag_USSB);grid on;%显示USSB频响幅值
title('USSB Spectrum');
set(gca,'xlim',[10,30]);
图注:基带信号 |
图注:载波信号 |
- ·基带信号: 频率为2Hz,幅值为2,其时域表达式为\(2sin(4\pi)\)
- ·载波信号: 频率为20Hz,幅值为2,其时域表达式为\(2sin(40\pi)\)
图注:DSB已调信号波形
- 从上图可以看到DSB波形,在过零点处有相位翻转180°的现象,幅值为4
图注:DSB已调信号频谱
- 可以看到有两个边带,其中下边带频率为18Hz,幅值为2;上边带频率为22Hz,幅值为2,因为做2048点FFT,所以这里的幅值是2048。
图注:椭圆低通滤波器频响
- 可以看到通带边界频率为18Hz,通带最大衰减基本为0,阻带衰减最小为80,过渡带比较窄,有较大的陡峭度,可以很好的滤除上边带
图注:椭圆高通滤波器频响
- 可以看到通带边界频率为22Hz,通带最大衰减基本为0,阻带衰减最小为80,过渡带比较窄,有较大的陡峭度,可以很好的滤除下边带
图注:下边带信号波形 |
图注:上边带信号波形 |
- 两个边带的波形基本一致,不过可以看到上边带信号频率明显比下边带频率要高,且反相
图注:下边带信号频谱 |
图注:上边带信号频谱 |
- 下边带信号频谱: 主要频率成分集中在18Hz处,上边带基本被滤除
- 上边带信号频谱: 主要频率成分集中在22Hz处,下边带基本被滤除
小结: 通过把两个信号直接相乘来产生DSB信号,这种调制会把基带信号的频谱搬移到载波信号的频谱附近,形成对称的上下边带,所以从信息传输的角度考虑,仅需要任一边带就够了,所以通过适当的低通滤波器取得下边带,适当的高通滤波器取得上边带。这里原本的滤波器采用Butterworth滤波器的设计方式,但由于过渡带不够窄,即不够陡峭,总是会残留一部分边带,再经过查阅资料后选择了过渡带比较窄的椭圆滤波器,这样就基本滤除了另一个边带。
四、基于Matlab的SSB相干解调
- 实验代码
%SSB信号与上面SSB调制过程的信号一致
%Demodulation SSB
coherent_carrier=Sc;%相干载波与输入载波一致
mul_LSSB_cc=coherent_carrier.*LSSB;%相干载波与下边带相乘
mul_USSB_cc=coherent_carrier.*USSB;%相干载波与下边带相乘
figure(4);
plot(mul_LSSB_cc);grid on;%显示相干载波与下边带相乘后的波形
title('mul_LSSB_cc');
set(gca,'xlim',[500,2000]);
figure(5);
plot(mul_USSB_cc);grid on;%显示相干载波与上边带相乘后的波形
title('mul_USSB_cc');
set(gca,'xlim',[500,2000]);
spec_LSSB_cc=fft(mul_LSSB_cc,2*Fs);%对相干载波与下边带相乘后的信号做FFT
spec_USSB_cc=fft(mul_USSB_cc,2*Fs);%对相干载波与上边带相乘后的信号做FFT
mag_LSSB_cc=abs(spec_LSSB_cc);%求频响幅度
mag_USSB_cc=abs(spec_USSB_cc);
fdssb=(0:2*Fs-1)./2;%真实频率
figure(6);
plot(fdssb,mag_LSSB_cc);grid on;%显示相干载波与下边带相乘后的波形频谱
title('DLSSB Spectrum');
set(gca,'xlim',[0,50]);
figure(7);
plot(fdssb,mag_USSB_cc);grid on;%显示相干载波与上边带相乘后的波形频谱
title('DUSSB Spectrum');
set(gca,'xlim',[0,50]);
%pass the LPF
LPF_LSSB=filter(BL,AL,mul_LSSB_cc);
%把相干载波与下边带相乘后的信号通过LPF
LPF_USSB=filter(BL,AL,mul_USSB_cc);
%把相干载波与上边带相乘后的信号通过LPF
figure(8);
plot(LPF_LSSB);grid on;%显示相干载波与下边带相乘后信号经过LPF后的波形
title('LPF_LSSB');
set(gca,'xlim',[500,2000]);
figure(9);
plot(LPF_USSB);grid on;%显示相干载波与上边带相乘后信号经过LPF后的波形
title('LPF_USSB');
set(gca,'xlim',[500,2000]);
spec_LPF_LSSB=fft(LPF_LSSB,2*Fs);
%对相干载波与下边带相乘后信号经过LPF后的信号做FFT
spec_LPF_USSB=fft(LPF_USSB,2*Fs);
%对相干载波与上边带相乘后信号经过LPF后的信号做FFT
mag_LPF_LSSB=abs(spec_LPF_LSSB);%求频响幅度
mag_LPF_USSB=abs(spec_LPF_USSB);
figure(10);
plot(fdssb,mag_LPF_LSSB);grid on;
%显示相干载波与下边带相乘后信号经过LPF后的波形频谱
title('DLSSB Spectrum');
set(gca,'xlim',[0,50]);
figure(11);
plot(fdssb,mag_LPF_USSB);grid on;
%显示相干载波与上边带相乘后信号经过LPF后的波形频谱
title('DUSSB Spectrum');
set(gca,'xlim',[0,50]);
figure(12);
plot(Sm);grid on;
title('msg sign');
set(gca,'xlim',[500,2000]);
图注:相干载波与LSB相乘后的信号波形
图注:相干载波与LSB相乘后的信号频谱
- 相干载波与LSB信号相乘后的波形频谱在20-18=2Hz处有一个信号,在18+20=38Hz处也有一个信号,符合DSB调制的规律
图注:相干载波与USB相乘后的信号波形
图注:相干载波与USB相乘后的信号频谱
- 相干载波与USB信号相乘后的波形频谱在-20-(-22)=2Hz处有一个信号,在20+22=42Hz处也有一个信号,符合DSB调制的规律。对比上面相干载波与LSB信号相乘后的波形发现,在2Hz处都有一个相同幅值的信号。
图注:相干载波与LSB/USB相乘后经过LPF的信号波形
- 相干载波与LSB和USB信号相乘后经过LPF的波形是基本一致的
图注:相干载波与LSB/USB相乘后经过LPF的信号频谱
- 相干载波与LSB和USB信号相乘后经过LPF的信号频谱是基本一致的
图注:基带信号波形
- 相干载波与LSB和USB信号相乘后经过LPF的信号与基带信号基本一致的,说明用上边带或下边带都可以解调出基带信号
五、基于Simulink的SSB带加性噪声的相干解调(下边带)
图注:基于Simulink的SSB带加性噪声的相干解调模块图
模块结构:
- 输入: 一个2Hz的正弦基带信号和一个20Hz的正弦载波信号,其中基带信号为\(2sin(4\pi)\),载波信号为\(2sin(40\pi)\)
- 边带滤波器: 采用的是椭圆模拟滤波器,过渡带比较窄。其中低通滤波器的通带边界频率为20-2=18Hz,滤波器的通带最大衰减均为0.1dB,阻带最小衰减均为80dB
- 加性噪声: 直接加噪声功率为0.01的带限白噪声,就不用带通滤波器了
- 相干载波: \(2sin(40\pi)\)与输入时的载波信号同频同相
- 低通滤波器 : 通带边界频率为2Hz的椭圆模拟低通滤波器
整体上和上面的SSB调制所用的信号和滤波器一样
图注:带限白噪声频谱
图注:下边带LSB加上带限白噪声时域波形
图注:下边带LSB加上带限白噪声的频谱
- 可以看到新的信号在原来LSB频谱上多了很多的噪声频谱分量
图注:下边带LSB加上带限白噪声后与相干载波相乘的波形
图注:下边带LSB加上带限白噪声后与相干载波相乘的波形频谱
- 可以看到下边带LSB加上带限白噪声后与相干载波相乘的波形频谱在20-18=2Hz处和20+18=38Hz处都有幅度较大频谱分量和上面无噪声时的情况一样。
图注:相干解调后的信号经过LPF后的信号波形
- 可以看到整体上与原基带信号相比,幅度上会有一些畸变,频率基本一样,为2Hz
图注:相干解调后的信号经过LPF后的信号频谱
- 可以看到,经过LPF后的信号频谱的主要分量就集中在2Hz处,也就是说可以解调出基带信号
四、实验总结
本次实验学习了采用滤波法实现SSB信号的调制与解调,在仿真过程中遇到许多的问题,不过通过查阅资料,询问老师和同学,最终得到了解决,现总结如下。
在用Simulink仿真调制与解调过程时,需要分为两个模块,一个为调制模块,另一个为解调模块。为了确认上下边带是否真的同时可以恢复基带信号,所以我就对两个边带同时进行调制与解调,把DSB信号通过低通滤波器得到下边带,通过高通滤波器得到上边带,然后分别与相干载波相乘后通过LPF,最后进行对比发现上下边带均能恢复基带信号。在仿真过程中会遇到显示上的问题,需要信号采样时间间隔保持一致,在那个频谱分析仪前还要加个零阶保持器,采样间隔需要和前面信号的一致。在做滤波器设计时,最先使用的巴特沃斯滤波器,由于过渡带比较宽,在进行边带滤波时,总会残留一些边带,所以最后选择了边带窄的椭圆滤波器,实现了比较好的边带滤波效果。 而matlab代码的仿真基本思路是一样的。
在用Simulink做SSB带加性噪声的仿真调制过程中,因为在实际中,已调信号在传输过程中总会受到噪声干扰,所以只仿真了解调过程。按照书本上的原理,加性噪声为高斯白噪声,然后经过BPF后进行相干解调,但由于版本问题,没有高斯白噪声模块,所以我这里就直接用了带限白噪声,相当于高斯白噪声通过BPF后的带限白噪声,然后进行相干解调,解调出来的信号,与基带信号相比,会有不少的畸变,当然因为实际情况更为复杂,所以我的仿真模块一些参数的设计并不能满足实际,所以这是我需要提升的。
本文来自博客园,作者:pie_thn,转载请注明原文链接:https://www.cnblogs.com/pie-o/p/16448607.html