单边带调制MATLAB模拟
To Imitate The Modulation of Single Side
Band with MATLAB
摘要:这篇文章介绍了使用MATLAB软件编制程序,以实现单边带信号的调制和
解调。首先,利用相移法从双边带信号得到单边带信号,再编写MATLAB程序,使单边带信号得到调制和调解。分析调制前后的时域和频域波形图,以更加深入理解单边带信号的调制和解调的原理。
Abstract:This article introduces the way to modulate and demodulate the single side band with the soft program from MATLAB . First, get the single side band signal from the couple sides band , then wright the MATLAB program to modulate and demodulate the signal. Analyze the pictures ,and understand the theory furtherly.
关键词:单边带 调制和解调 MATLAB
Keywords:single side band , modulation and demodulation , MATLAB 一、 设计目的
本课程设计是实现单边带调幅和解调,在此次课程设计中,通过收集资料与分析,理解单边带调制与解调的具体过程和它在MATLAB中实现的方法。预期通过这个阶段的研习,更清楚地认识单边带解调原理,同时加深对MATLAB软件的操作熟练度,并在使用中感受MATLAB的应用方式与特色。通过对解调前后时域与频域波形图的比较,分析单边带调制与解调的作用。
二、 设计原理
单边带调制信号是将双边带信号中的一个边带滤掉而形成的。根据方法的不同,产生单边带调制信号的方法有:滤波和相移法。
由于滤波法在技术上比较难实现所以在此我们将用相移法对单边带调制与解调系统进行讨论与设计。
相移法和单边带调制信号的时域表示:
单边带调制信号的频域表示直观、简明,但其时域表示式的推导比较困难,需要借助尔伯特(Hilbert)变换来表达。为简单起见,我们以单频调制 为例,然后推广到一般情况。信号通过单边带调制信号调制器,会对载波和调制信号进行适当的相移,以便在合成过程中将其中的一个边带抵消而获得单边带调制信号。下图为单边带调制信号调制器的一般模型。
4
三、 设计过程 1.信号的产生
利用相移法来调制单边带调制信号,调制信号如下: Fs=100000;%信号脉冲
t=[0:1/Fs:0.01];%一个脉冲的时间 y=cos(300*2*pi*t);%调制信号
yz=sin(300*2*pi*t);%调制信号的希尔伯特变换
图(2) 时域波形图 图(3) 频域波形图
5
载波为:C(t)= coswct
Fc=30000;%载波脉冲
c=cos(Fc*2*pi*t);%载波 b=sin(2*pi*Fc*t);%载波正弦变换 lssb=y.*c+yz.*b;%保留下边带信号
图(4) 载波信号余弦时域波形图
图(5) 载波信号正弦时域波形图
6
2.信号的调制
得到单边带信号后,在信号中加入高斯白噪声(此时设加入的高斯白噪声为大
信噪比),得到加入噪声后的下边带信号: yl=awgn(lssb,30);%调制信号加噪声 wsingle=fft(lssb);%其傅里叶变换
wsingle=abs(wsingle(l:length(wsingle)/2+1);%已调信号的频谱
frqsingle=[0:length(wsingle)-1]*Fs/length(wsingle)/2;%已调信号
的频谱W
图(6) 其时域波形 图(7) 其频域波形
3.信号的解调
因为单边带信号也是抑制载波的已调信号,它的包络不能直接反映调制信号的变化,所以,仍需采用相干解调。通过解调器后的信号如下图:
7
图(8) 其时域波形 图(9) 其频域波形
四、 程序代码
用MATLAB语言编写代码,并在MATLAB 工具里运行得到设计与仿真结
果,编写代码如下:
Fs=100000; t=[0:1/Fs:0.01];
y=cos(300*2*pi*t);%调制信号 yw=fft(y);
yw=abs(yw(1:length(yw)/2+1)); frqyw=[0:length(yw)-1]*Fs/length(yw)/2;
Fc=30000;
c=cos(Fc*2*pi*t); b=sin(2*pi*Fc.*t);
lssb=y.*c+imag(hilbert(y)).*b; y1=awgn(lssb,30); %调制信号加噪声 wsingle=fft(lssb);
wsingle=abs(wsingle(1:length(wsingle)/2+1));
frqsingle=[0:length(wsingle)-1]*Fs/length(wsingle)/2; asingle=ademod(y1,Fc,Fs,'amssb'); %ssb解调
8