抑制载波单边带调幅SSB和解调的实现.docx
- 文档编号:28971870
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:20
- 大小:246.53KB
抑制载波单边带调幅SSB和解调的实现.docx
《抑制载波单边带调幅SSB和解调的实现.docx》由会员分享,可在线阅读,更多相关《抑制载波单边带调幅SSB和解调的实现.docx(20页珍藏版)》请在冰豆网上搜索。
抑制载波单边带调幅SSB和解调的实现
抑制载波单边带调幅(SSB)和解调的实现
一、设计目的和意义
1、利用MATLAB实现对信号进行抑制载波单边带调幅(SSB)和解调
2、有助于理解模拟线性调制中利用相移法实现单边带调幅的调制方法
3、有助于理解相干解调的原理
4、有助于理解和掌握低通滤波器的设计过程
5、有助于理解信号的时频关系
6、有助于了解信号的频谱与功率谱的关系
7、通过对该题目的设计,巩固了《通信原理》和《数字信号处理》的相关知识,加深了对相关知识点的认识和理解。
二、设计原理
利用已学的《通信原理》和《数字信号处理》的相关知识完成对信号进行抑制载波单边带调幅(SSB)和解调。
1、调制
通过对《通信原理》这门课程的学习,已经了解到了抑制载波单边带调幅的调制方式有两种:
一种是用滤波法实现;一种是利用相移法实现。
所谓滤波法就是将双边带的已调制信号经过一个滤波器实现,如果要保留下边带,则让信号通过一个低通滤波器,如果要保留上边带则让信号通过一个高通滤波器。
滤波法原理图如图1所示。
图1单边带信号的滤波法形成
但是理想滤波特性是不可能做到的,实际滤波器从通带到阻带总有一个过渡带。
如果要把信号调制到很高的频率则需要进行多级调制才能满足指标,增加了调制设备的复杂性和成本;另外,如果调制信号中有直流及低频分量,则必须使用过渡带为零的理想滤波器才能将上、下边带分割开来,而这是不可能用滤波法实现的。
另外一种调制方法——相移法——实现对信号的调制。
由于这是单频调制,设单频调制信号为
(1)
载波为
(2)
则双边带信号的时间波形为
保留上边带的单边带调制信号为
(3)
同理可得保留下边带的单边带调制信号为
(4)
式(3)、(4)中第一项与调制信号和载波的成绩成正比,称为同相分量;而第二项乘积中则包含调制信号与载波信号分别相移-π/2的结果,称为正交分量。
单边带信号的相移法形成框图如图2所示。
相移Ⅰ相移Ⅱ
图2单边带信号的相移法形成
从图中可知,两路信号相乘结果相减时得到上边带信号;相加时得到下边带信号。
不难理解,当调制信号为确知信号时,由于它可以分解成许多频率分量之和,因而只要相移Ⅰ是一个宽带的相移网络,对每个频率分量都能够相移-π/2,则图中所示的相移法同样适用,只需将输入调制信号更改为f(t)/2即可。
对调制信号相移-π/2则需要借助希尔伯特滤波器实现。
2、解调
单边带信号的解调不能采用简单的包络检波。
与双边带抑制载波信号相比,单边带信号的包络检波更不能反映调制信号的波形。
例如,当调制信号为单频正弦时,单边带信号也是单频正弦,只是频率发生了变化,而包络毫无起伏。
通常,单边带信号采用相干解调,如图3所示。
图3单边带调制的相干解调
已知单边带信号的时域表达式为
(5)
乘上同频同相的载波后得
(6)
经低通滤波器后的解调输出为
(7)
因而可得到无失真的调制信号。
应当指出的是,相干解调的关键是必须在已调信号接收端产生与载波同频同相的本地载波。
如果不能得到同频同相的载波,则相干解调后将使原始信号减弱,甚至带来严重失真,这在数字信号传输时尤为严重。
虽然单边带调制不能采用简单的包络检波的方法解调,但若插入很强的载波则仍可以用包络检波的方法进行解调。
插入载波的包络检波法如图4所示。
图4插入载波的包络检波法
加入载波后的信号
上式中,瞬时幅度
瞬时相位
如果插入载波的幅度
很大,则
上式中
为直流分量,因此包络检波后输出的信号
由以上推导可知,插入强载波分量后线性调制信号可以用包络检波的方法近似的恢复原始调制信号。
载波分量可以在接收端插入,也可以在发送端插入。
三、详细设计步骤
1、调制信号的产生
由设计要求要产生一个频率为1Hz,功率为1的余弦信号
。
则可以利用matlab工具箱函数sin()产生满足该指标的信号,由于matlab在进行信号处理的时候不能处理无限长的信号,所以应该把信号离散化,在本设计中对信号进行采样的频率为1000Hz。
由于要求信号功率为1,所以信号的最大幅度为
V。
信号产生的代码为:
%信源
dt=0.001;%采样时间间隔
fm=1;%信源最高频率
fc=10;%载波中心频率
T=5;%信号时长
t=0:
dt:
T;
mt=sqrt
(2)*cos(2*pi*fm*t);%信源
plot(t,mt);%画调制信号波形
2、画调制信号的频谱
信号的频谱可以通过求信号的傅立叶变换得到,傅立叶变换又可以用普通傅立叶变换又可以通过快速傅立叶变换(FFT)得到。
在本设计中,傅立叶变换通过调用一个已经编好的利用快速傅立叶变换实现的求信号的频谱函数实现,这样就增加了程序的重用性,以后只要需要求信号的频谱的时候,只需要调用该函数,给出函数的参数即可。
函数的入口参数为信号的时间(信号时间长度必须大于二)和信号向量,出口参数为频率和信号频谱。
具体函数体如下:
%求信号频谱的函数
function[f,sf]=T2F(t,st)
%本函数用FFT函数来计算一个信号的Fourier变换
%入口参数是时间和信号向量,时间长度必须大于2
%出口参数是频率和信号的频谱向量
dt=t
(2)-t
(1);
T=t(end);
df=1/T;
N=length(st);
f=-N/2*df:
df:
N/2*df-df;
sf=fft(st);
sf=T/N*fftshift(sf);
3、SSB调制信号及其频谱
由前面的分析可知,如果采用滤波法实现信号的调制会出现很多问题,比如说理想特性的滤波器是无法实现的,如果要把信号调制到较高频率上需要进行多级调制,这样就增加了调制设备的复杂性。
所以本设计采用相移法实现信号的调制。
而且利用保留下边带的调制信号这种方法。
由前面可知:
而载波频率为10Hz。
调制信号的产生程序如下:
%单边带信号调制
s_ssb=sqrt
(2)/2*cos(2*pi*(fc-fm)*t);
plot(t,s_ssb);%画出SSB信号波形
而SSB信号的频谱仍然调用求信号频谱的函数实现。
4、SSB调制信号的功率谱
信号功率谱的一种算法是信号频谱的平方与信号持续时间的比值。
因此,计算SSB信号的功率谱的程序如下:
[f,sf]=T2F(t,s_ssb);%单边带信号频谱
psf=(abs(sf).^2)/T;%单边带信号功率谱
plot(f,psf);
5、单边带信号的解调
本设计采用相干解调的方式对SSB调制信号进行解调。
由前面的分析可知,只需要将SSB调制信号和一个同频同相的本地载波相乘,然后让信号通过一个地同滤波器即可得到无失真的调制信号。
乘上同频同相的载波以后信号的程序为:
%SSBdemodulation
rt=s_ssb.*cos(2*pi*fc*t);
6、低通滤波器的设计
低通滤波器要能够滤出调制信号,所以其截止频率不能太高,截止频率太高会让一些带外噪声也进入后面的信号处理部分。
由题,截止频率应该低于5Hz。
为此,设计了一个实现低通滤波器功能的通用函数,其程序如下:
function[t,st]=lpf(f,sf,B)
%本函数为通带为B的低通滤波器
%入口参数:
f:
频率样本向量
%sf:
频谱向量
%B:
低通滤波器带宽
%出口参数:
t:
时间向量
%st:
输出信号向量
df=f
(2)-f
(1);
T=1/df;
hf=zeros(1,length(f));
bf=[-floor(B/df):
floor(B/df)]+floor(length(f)/2);
hf(bf)=1;
yf=hf.*sf;
[t,st]=F2T(f,yf);
st=real(st);
程序中调用的F2T()函数是求信号的傅立叶反变换的函数,其程序代码为:
function[t,st]=F2T(f,sf)
%本函数对输入信号频谱用傅立叶反变换求出时间信号
df=f
(2)-f
(1);
Fmx=(f(end)-f
(1)+df);
dt=1/Fmx;
N=length(sf);
T=dt*N;
t=0:
dt:
T-dt;
sff=fftshift(sf);
st=Fmx*ifft(sff);
四、设计结果及分析
1、调制信号的波形
图5调制信号波形
从图可知,调制信号的频率为1Hz,幅度为
V,符合题目要求。
2、调制信号的频谱
图6调制信号的频谱
从图中可知调制信号频谱的峰值达到了3.5,该值的大小与信号的有效点数有关,信号越长,则该值越小,而且脉宽也越宽;反之,该值越大,脉宽也越窄,越接近真实的信号的情况。
从理论上讲如果信号,则信号的频域表达为,也就是说信号频谱的值应该为π,但是实际值比理论值稍大,这与信号的长度有一定的关系。
3、载波信号的波形
`
图7载波信号的波形
从图中可以看出载波信号的频率为10Hz,幅度为
V,符合设计要求。
4、SSB调制信号波形
图8SSB信号波形
从图中可以看出,已调的单边带信号的幅度并没有随时间变化。
由于选取的保留下边带的方法,由
知,信号经过调制以后幅度减半,频率发生变化,但是幅度并没有随时间变化,因此,不能简单地用包络检波实现。
5、SSB调制信号频谱
图9SSB调制信号频谱
6、单边带调制信号的功率谱
图10单边带调制信号的功率谱
求信号的频谱就是求信号的傅立叶变换,信号的功率谱就是信号频谱地平方与信号持续时间的比值。
图9和图10就说明了信号的功率谱密度是其频谱的平方与信号持续时间的比值这一点。
7、相干解调以后的输出波形
图11相干解调后的输出波形
从图中可以看出:
解调输出信号的幅度为调制信号的一半。
但是也可以看出,输出信号的频率已经变为了1.2Hz,这可能是由于本身调制信号太低造成的。
五、体会
通过这次数字信号处理与通信原理课程设计,巩固了很多以前学过但是已经忘了的知识,比如如何使用matlab产生一个自己想要的信号,如何利用matlab来进行信号的分析与处理等;另外也巩固了刚学习的《通信原理》和《数字信号处理》这两门课程的相关知识点。
如怎样设计一个低通滤波器,信号的功率谱和信号的频谱有什么关系等等。
加深了对单边带调幅的理解,从理论上对单边带调制系统的工作原理有了更进一步的认识,了解了单边带信号的调制和解调方法。
对信号进行傅立叶变换及其反变换有了更深的认识。
另外,通过这次课程设计,也看到了自己的一些不足,主要就是自己在平时学习的过程中对该掌握的知识点掌握得不太好,特别是在仿真的时候,还遇到过仿真结果与理论值相差太远,但是自己却不知道是怎么回事的现象。
这时候,没有办法,只有自己认真的看书,重新学习以前就应该掌握的知识点,把理论知识掌握好了以后才对所得的结果进行分析。
通过再学习,自己独立的解决了在程序的调试过程中出现的仿真结果和理论值不一样的情况。
现在才体会到理论知识的重要性。
因为以前学的很多知识都没有用到实际中,就造成了一种理论知识没有利用价值的错误观念。
在实验的过程中要是自己一点问题都没有遇到,肯定会觉得理论知识没有什么用,但是要在实验的工程中不遇到问题,那是基于平时对理论知识已经熟练掌握的基础之上的,在实验的过程中已经不知不觉的应用到了理论知识。
在这次课程设计中,自己明显的感觉到以前学过的很多东西都已经忘了。
就拿matlab来说吧,这门课程可能就学了一年半的样子,但是刚看到题目的设计要求用matlab来做的时候,自己真的不知道怎么下手,因为以前所学的知识都已经忘了,所以,自己也知道了,虽然考完试了,但是知识不能丢啊,再时间允许的时候还是要把以前学过的书本找出来看看,温故知新嘛。
还有就是一定要理论与实践相结合才能更好、更深的理解理论知识。
比如说在《数字信号处理》这门课程的学习中,我们就已经学习过了低通滤波器的设计,但是那仅仅是理论上算算,根本就没有亲自动手做过,就连用程序仿真都没有做过,通过这次课程设计,对低通滤波器的指标有了更深的理解。
六、参考文献
[1]曹志刚,钱亚生,现代通信原理,清华大学出版社,1991
[2]樊昌信等,通信原理,国防工业出版社,1984
[3]程佩清,数字信号处理(第二版),清华大学出版社,2001
[4]张志涌等,精通MATLAB6.5版,北京航空航天大学出版社,2003
[5]郭文彬等,通信原理——基于Matlab的计算机仿真,北京邮电大学出版社,2006
[6]约翰·G·普罗克斯,马苏德·萨勒赫著,刘树棠译,现代通信系统使用Matlab,西安交通大学出版社,2001
附录:
%显示模拟调制的波形及解调方法SSB
%信源
closeall;
clearall;
dt=0.001;%采样时间间隔
fm=1;%信源最高频率
fc=10;%载波中心频率
T=5;%信号时长
t=0:
dt:
T;
%%%%%%%%%画画调制信号波形%%%%%%%%%%%%%%
mt=sqrt
(2)*cos(2*pi*fm*t);%信源
figure
(1);
plot(t,mt);%画调制信号波形
axis([0,5,-2,2]);
xlabel('时间s');
ylabel('幅度V');
title('调制信号');
%%%%%%%%%画画调制信号频谱%%%%%%%%%%%%%%
[f,sf]=T2F(t,mt);
figure
(2);
plot(f,sf);%画调制信号频谱
axis([-2*fm,2*fm,0,4]);
xlabel('f');
title('调制信号频谱');
%%%%%%%%%画载波信号波形%%%%%%%%%%%%%%
mtt=sqrt
(2)*cos(2*pi*fc*t);%信源
figure(3);
plot(t,mtt);%画载波信号波形
axis([0,1,-2,2]);
xlabel('时间s');
title('载波信号');
%%%%%%%%%画出SSB信号波形%%%%%%%%%%%%%%
%N0=0.01;%白噪声单边功率谱密度
%SSBmodulation
%s_ssb=real(hilbert(mt).*exp(j*2*pi*fc*t));
%B=fm;
%noise=noise_nb(fc,B,N0,t);
%s_ssb=s_ssb+noise;
s_ssb=0.5*sqrt
(2)*cos(2*pi*(fc-fm)*t);
figure(4);
plot(t,s_ssb);%画出SSB信号波形
title('SSB调制信号');
xlabel('t');
axis([0,1,-1,1]);
%%%%%%%%%画画SSB信号频谱%%%%%%%%%%%%%%
[f,sff]=T2F(t,s_ssb);
figure(5);
plot(f,sff);%画SSB信号频谱
axis([-10,10,0,2]);
xlabel('f');
title('SSB信号频谱');
%%%%%%%%%画单边带信号功率谱%%%%%%%%%%%%%%
[f,sf]=T2F(t,s_ssb);%单边带信号频谱
psf=(abs(sf).^2)/T;%单边带信号功率谱
figure(6);
plot(f,psf);
axis([-10,10,0,0.7]);
title('单边带信号功率谱');
xlabel('f');
%%%%%%%%%画出解调波形%%%%%%%%%%%%%%
%SSBdemodulation
rt=4*s_ssb.*cos(2*pi*fc*t);
rt=rt+mean(rt);
[f,rf]=T2F(t,rt);
[t,rt]=lpf(f,rf,fm);
figure(7);
plot(t,rt);
title('相干解调后的波形');
xlabel('t');
%%%%%%%%%求信号Fourier变换函数%%%%%%%%%%%%%%
function[f,sf]=T2F(t,st)
%本函数用FFT函数来计算一个信号的Fourier变换
%入口参数是时间和信号向量,时间长度必须大于2
%出口参数是频率和信号的频谱向量
dt=t
(2)-t
(1);
T=t(end);
df=1/T;
N=length(st);
f=-N/2*df:
df:
N/2*df-df;
sf=fft(st);
sf=T/N*fftshift(sf);
%%%%%%%%%低通滤波器实现函数%%%%%%%%%%%%%%
function[t,st]=lpf(f,sf,B)
%本函数为通带为B的低通滤波器
%入口参数:
f:
频率样本向量
%sf:
频谱向量
%B:
低通滤波器带宽
%出口参数:
t:
时间向量
%st:
输出信号向量
df=f
(2)-f
(1);
T=1/df;
hf=zeros(1,length(f));
bf=[-floor(B/df):
floor(B/df)]+floor(length(f)/2);
hf(bf)=1;
yf=hf.*sf;
[t,st]=F2T(f,yf);
st=real(st);
%%%%%%%%%求信号Fourier反变换函数%%%%%%%%%%%%%%
function[t,st]=F2T(f,sf)
%函数对输入信号频谱用傅立叶反变换求出时间信号
df=f
(2)-f
(1);
Fmx=(f(end)-f
(1)+df);
dt=1/Fmx;
N=length(sf);
T=dt*N;
t=0:
dt:
T-dt;
sff=fftshift(sf);
st=Fmx*ifft(sff);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 抑制 载波 单边 调幅 SSB 解调 实现