1、MATLAB 中用 M 文件实现 SSB 解调一、课程设计目的本次课程设计是对通信原理课程理论教学和实验教学的综合和总结。通过这次课程设计,使同学认识和理解通信系统,掌握信号是怎样经过发端处理、被送入信道、然后在接收端还原。要求学生掌握通信原理的基本知识,运用所学的通信仿真的方法实现某种传输系统。能够根据设计任务的具体要求,掌握软件设计、调试的具体方法、步骤和技巧。对一个实际课题的软件设计有基本了解,拓展知识面,激发在此领域中继续学习和研究的兴趣,为学习后续课程做准备。二、课程设计内容(1)熟悉 MATLAB 中 M 文件的使用方法,掌握 SSB 信号的解调原理,以此为基础用 M 文件编程实现
2、 SSB 信号的解调。(2)绘制出 SSB 信号解调前后在时域和频域中的波形,观察两者在解调前后的变化,通过对分析结果来加强对 SSB 信号解调原理的理解。(3)对信号分别叠加大小不同的噪声后再进行解调,绘制出解调前后信号的时域和频域波形,比较未叠加噪声时和分别叠加大小噪声时解调信号的波形有何区别,借由所得结果来分析噪声对信号解调造成的影响。(4)在老师的指导下,独立完成课程设计的全部内容,并按要求编写课程设计论文,文中能正确阐述和分析设计和实验结果。三、设计原理1、 SSB 解调原理在单边带信号的解调中,只需要对上、下边带的其中一个边带信号进行解调,就能够恢复原始信号。这是因为双边带调制中上
3、、下两个边带是完全对称的,它们所携带的信息相同,完全可以用一个边带来传输全部消息。单边带解调通常采用相干解调的方式,它使用一个同步解调器,即由相乘器和低通滤波器组成。在解调过程中,输入信号和噪声可以分别单独解调。相干解调的原理框图如图 a 所示:)(tSB)(1tS)(2tS低通滤波器 c(t)图 a 相干解调原理框图此图表示单边带信号首先乘以一个同频同相的载波,再经过低通滤波器即可还原信号。单边带信号的时域表达式为 ttmtttSccB sin)(21os)(21)(表示基带信号其中取“-”时为上边带,取“+”时为下边带。乘上同频同相载波后得 ttmtttmttSt cccB 2sin)(4
4、12os)(41os)()(1 表示 的希尔伯特变换经低通滤波器可滤除 2 的分量,所得解调输出为c )(412tmtS由此便可得到无失真的调制信号。2、 SSB 解调的实现SSB 信号的产生在本次课程设计中,我选用频率为 50Hz,初相位为 0 的余弦信号 m 作为原始基带信号,在 MATLAB 中表示为“m=cos(2*pi*50.*t);” ;设置载波信号 c 为频率 500Hz 的余弦信号,程序中表示为“fc=500; c=cos(2*pi*fc.*t);” 。在调制过程的实现中,通过语句“b=sin(2*pi*fc.*t); lssb=m.*c+imag(hilbert(m).*b;
5、”产生下边带信号。接下来的解调过程主要就针对该下边带信号进行。SSB 解调实现根据相干解调原理,在解调的实现中,我先用下边带调制信号乘以本地载波,再通过自己设计的低通滤波器滤除高频成分,如此便得到了解调后的信号。相关的程序语句为:y=lssb.*c; Y,y,dfl=fft_seq(y,ts,df);Y=Y/fs;n_cutoff=floor(fl/dfl);H=zeros(size(f); H(1:n_cutoff)=2*ones(1,n_cutoff);H(length(f)-n_cutoff+1:length(f)=2*ones(1,n_cutoff); DEM=H.*Y; dem=re
6、al(ifft(DEM)*fs; 在此段程序中,y是下边带信号与本地载波相乘的结果,用数学表达式可以表示为 ttmtttmttlsby ccc 2sin)(412os)(41o)( 根据此式可知,此低通滤波器的作用在于去除 y 中包含的具有频率为 的分量,滤波后就得到了基带信号。Y 是对 y 进行傅立叶变换求得的频谱函数。通过“Y=Y/fs”对结果进行缩放,用于满足显示要求和计算需要。低通滤波器的设计是由“n_cutoff=floor(fl/dfl);”到“DEM=H.*Y;”之间的语句实现的,其中“fl”表示低通滤波器的截止频率,混频信号 y 中高于此频率的分量将被滤除,得到解调信号;而“D
7、EM=H.*Y;”表示 Y 与截止系数 H 相乘后,其高频部分被滤去,所得结果 DEM 即为过滤后的频谱函数,就是解调后信号的频谱。最后再由“dem=real(ifft(DEM)*fs;”对 DEM 进行傅立叶逆变换,取其实部,乘以采样频率后可得出滤波后的时域信号函数dem,它就是解调后的信号。另外要注意对采样频率 fs 的选取。由于 MATLAB 仿真模拟信号是通过抽样来确定此信号的,所以能否通过抽样完全确定信号直接关系到仿真的成败。我所设的载波频率为 fc=500Hz,根具抽样定理,要使得载波信号 c 被所得到的抽样值完全确定,必须以 T 秒的间隔对它进行等间隔抽样,即是 fs 2fc。故
8、 fs 最小值应为 2fc=1000Hz,fc21 为了确保结果合理,我取 fs=2500Hz。其他一些参数设置为:信号保持时间 t0=0.5s,滤波器截止频率 fl=700Hz,频率分辨率 df=0.1Hz。在求频谱函数时,我调用了一个自己设定的函数“fft_seq”,它是对快速傅立叶变换函数 fft 的改进。它通过提高频率分辨率,能更好地区分两个谱峰。若设信号 m的长度为 T 秒,则其频率分辨率为 1/T(Hz)。因为输入计算机中的连续信号被转f换成了离散的序列,而设其序列共有 N 个点,则两根谱线间的距离 fs/N,它也是f频率分辨率的一种度量。如果该式的 不够小,我们可以增加 N 来减
9、小 。而一种f有效的方法是在离散序列后面补零,这不会破坏原来的信号。函数“fft_seq”就是基于以上思想编成。我在 MATLAB 中实现 SSB 解调的仿真就是基于以上的程序和参数设定,运行调用了plot 函数的 M 文件,可以分别得出解调前后的频域与时域对比图,为了便于参照,将LSSB 信号的时域与频域图也一同进行比较。三者时域图比较结果如图 b 所示:图 b 调制信号、LSSB 信号、解调信号的时域对比图由图 b 可以看出,解调信号能够基本还原原始基带信号,只有少许失真,可见解调过程较为成功。对于失真接问题接下来将会进行具体分析。为了更好分析解调的结果,还必须将时域图与频域图进行比较,通
10、过观察频域图能够更为直观的了解信号的频率分布,借此来讨论滤波器的作用特性。三者的频域图比较如图 c 所示:图 c 调制信号、LSSB 信号、解调信号的频域对比图由频域图可以明显地看出,下边带信号将基带信号的频谱向两侧进行了搬移,然后去除了其中上边带的那一半。而解调后的频谱与基带信号在频率小于 700Hz 的范围内几乎没有区别,用肉眼很难观察出不同之处;解调信号在频率大于 700Hz 范围外的频谱已经被低通滤波器完全滤除,故没有波形,这就是解调信号与基带信号频谱差异最明显之处。由于在理论上,解调过程可以完全恢复基带信号,但实际中仍然会产生少许失真,故失真的原因可以从参数的设置上入手找寻。在解调过
11、程中,相乘器是严格按照数学关系运算的,不会产生误差,失真的产生因该在低通滤波器环节。为了探究低通滤波器的设置对解调的影响,我将滤波器的截止频率 fl 分别改为 1000Hz 和 50Hz 进行比较,根据结果来判断原因。首先我选 fl=1000Hz,它等于 2fc,它应该无法滤除混频信号中的 2 分量。实际c得出的时域和频域图结果如图 d 和图 e:图 d fl=1000Hz 时的解调信号时域对比图图 e fl=1000Hz 时的解调信号频域对比图从时域比较图中可以明显看出解调信号严重失真,还保留着载波信号的频率变化;而频谱图中,解调信号频谱的两侧将近 1000Hz 处有两个高峰,可见解调信号频
12、谱与基带信号频谱存在巨大差异。原因很简单,低通滤波器的截止频率高于 2fc,故无法滤除相乘器输出的混频信号y 的高频 2 分量,完全没有起到低通滤波的作用,所以解调信号保留有高频分量,无c法正确还原调制信号。接下来将截止频率 fl 设为 50Hz,观察在 fl 较低的情况下的解调输出结果。此时,fl 远远小于 2fc,不存在无法滤除高频分量的问题,不会产生上一种情况的错误。通过分析这种情况下的结果可以得出低截止频率对解调的影响。在 fl=50Hz 时得出的时域和频域解调结果对比如图 f 和图 g 所示:图 f fl=50Hz 时解调信号时域对比图图 g fl=50Hz 时解调信号频域对比图由时
13、域比较图中可以清晰地看出解调信号能够保持平滑的余弦波形,但幅度小了将近一倍,且两端的幅度明显小于中间。由此可以估计出一种可能性:基带信号的一部分丢失了,解调信号只是原基带信号的一部分。因此才会造成幅度下降的结果。频谱对比图很好地验证了这种可能性。观察发现解调信号的频谱被滤去频率大于50Hz 的部分之后,虽然保持了原基带信号的主体部分,但两边的分量已经全部滤除。这就是问题所在。两边的分量也占据了一定的比重,滤除的越多,原基带信号损失的部分也越多,就如时域图中所示。幅度减小的原因就在于此。通过在 fl=50Hz 时对解调信号频域和时域的观察,可以得出结论:fl 较低时,在滤去高频 2 分量的同时,
14、也会连带去除基带信号中的一部分。因此为了保全基带信c号的完整性,fl 不宜过低。综上所述,截止频率 fl 过高时会导致高频 2 分量无法滤除;而 fl 较低,又会c使得基带信号有部分被滤去。经过调整分析,我认为 fl 应该在能够滤去 2 分量的情c况下,尽可能高一点。这样就能保证基带信号被滤去的部分减到最少。所以开始所设的 fl=700Hz 是一个较为合适的值,解调结果也很接近基带信号。实现解调还有一种方法,就是调用专用于 SSB 信号解调的函数 ssbdemod(u,fc,fs),此函数内部集成了解调过程,不需要自行再设置相乘器与滤波器。为了与前一种方法对比,现简要用此函数来实现SSB的解调
15、。为了增强对比性,除了fl无需再设置外,其它的参数设置均与上一种方法相同:采样频率fs=2500Hz,信号保持时间t0=0.5s,频率分辨率df=0.1Hz,且调制信号不变。在本程序中,实现调制过程使用语句“u=ssbmod(m,fc,fs);” ,解调单边带信号则用“y=ssbdemod(u,fc,fs);”来实现。运行本程序,所得基带信号、LSSB信号、解调信号的时域图对比情况如图h所示:图 h 方法 2 中基带、LSSB、解调信号的时域对比图解调信号通过 MATLAB 中函数 ssbdemod()实现了解调并通过函数本身内设的低通滤波器,解调出了基带信号 m(t)。解调后的信号基本与基带
16、信号相同,只是边缘处有少许失真。再观察三者的频域比较如图 i 所示:图i 方法2中基带、LSSB、解调信号的频域对比图由频域图中可以看出,解调信号的频谱与基带信号很接近,不包含相乘器输出的混频信号中的高频2 分量,也没采用第一种方法中设定截止频率,将高于一定频率的c部分完全滤除的做法。但仔细观察可以发现,解调信号中分布在频率较高处的波形比相同频率处的基带信号波形起伏更大一些,这应该是本解调方式的缺陷,会造成一定误差。在时域图中的解调信号边缘失真的情况或许来源于此。这种方法不用自己设置滤波器,程序简单,在实现解调时较为简便。前一种方法可以根据自己的需要调整滤波器的截止频率,从而得到更精确的解调信
17、号。这两种解调方式可谓各有千秋。3、叠加噪声时的SSB解调在实际信号传输过程中,通信系统不可避免的会遇到噪声,例如自然界中的各种电磁波噪声和设备本身产生的热噪声、散粒噪声等,它们很难被预测。而且大部分噪声为随机的高斯白噪声,所以在设计时引入噪声,才能够真正模拟实际中信号传输所遇到的问题,进而思考怎样才能在接受端更好地恢复基带信号。信道加性噪声主要取决于起伏噪声,而起伏噪声又可视为高斯白噪声,因此我在此环节将对单边带信号添加高斯白噪声来观察噪声对解调的影响情况。为了具体而全面地了解噪声的影响问题,我将分别引入大噪声(信噪比为3dB)与小噪声(信噪比为30dB)作用于单边带信号,再分别对它们进行解
18、调,观察解调后的信号受到了怎样的影响。在此过程中,我用函数“awgn(x,snr,measured)”来添加噪声,此函数功能为向信号x中添加信噪比为snr的高斯白噪声。其中的一个参数measured的功能是在叠加噪声前先测量信号x的功率,再根据所测结果来产生所设信噪比的噪声。具体实现语句为:snr1=3;snr2=30;s1 = awgn(lssb,snr1,measured);s2 = awgn(lssb,snr2,measured);其中snr1表示大信噪比,snr2表示小信噪比,s1表示叠加大噪声后的信号,s2表示叠加小噪声后的信号。再通过以下傅立叶变换程序来求出它们的频谱图:S1,s1
19、,dfl=fft_seq(s1,ts,df); S1=S1/fs; S2,s2,dfl=fft_seq(s2,ts,df); S2=S2/fs; 为了便于比较,我先显示了下边带信号加入两种噪声后的时频波形图,再将基带信号、叠加大噪声后的解调信号以及叠加小噪声后的解调信号放在一起,分别比较三者的时域与频域图。运行程序,求得下边带信号加入两种噪声后的时频波形图如图j所示:图j 下边带信号加入两种噪声后的时频波形比较图基带信号、叠加大噪声后的解调信号以及叠加小噪声后的解调信号三者之间的时域对比图如图k所示:图k 基带信号、叠加大小噪声后解调信号的时域对比图基带信号、叠加大噪声后的解调信号以及叠加小噪
20、声后的解调信号三者之间的频域对比图如图l所示:图l 基带信号、叠加大小噪声后解调信号的频域对比图由图i可知,首先下边带信号因为叠加噪声而发生了变化。再进一步观察图1中的时域变化:当叠加大噪声时,解调波形出现明显的紊乱,产生了很多不规则的毛刺杂波,与基带信号相去甚远;而叠加小噪声时,波形图只是局部稍有不平滑现象,总体还是与未加噪声时的解调信号相同,出入不大。再比较图k中各频谱之间的关系,可以清晰地看出,加大噪声后,解调信号的频谱波形两边杂乱无章,起伏远大于未加噪声时的波形;而加小噪声后,解调信号频谱基本与未加噪声时一致,看不出明显变化。造成此现象的原因是当信噪比较小时,噪声的功率在解调信号中所占
21、比重较大,所以会造成杂波较多的情况;而信噪比很大时,噪声的功率在解调信号中所占比重就很小了,噪声部分造成的杂乱波形相对就不是很明显,甚至可以忽略。综上所述,叠加噪声会造成解调信号的失真,信噪比越小,失真程度越大。所以当信噪比低于一定大小时,会给解调信号带来严重的失真,导致接收端无法正确地接收有用信号。所以在解调的实际应用中,应该尽量减少噪声的产生。4 、遇到的问题及解决办法我在该课程设计中曾遇到过一些问题,具体如下:其一是频谱显示问题。起初我得出的频谱显示波形并非是频率为0点居中,而是0点在最左端。这样不利于我观察频谱特性,为了能让频谱图居中显示,我对程序设置进行分析,发现关键在于频率矢量的设
22、置上。起初所设置的值f = (0:length(U)-1)*fs/length(U),不能将图形显示在0Hz两边,经过改进为 f = (0:length(U)-1)*fs/length(U)-fs/2,使得频谱居中显示成功。其中-fs/2就是将图形向右搬移半个长度,这样0点就能居中了。其二是滤波器截止频率fl的设置问题。开始我将截止频率设置为fl=50Hz,但仿真结果显示解调信号的幅度明显小于基带信号。这说明基带信号没有完全被还原,有部分损失。经分析我认为是滤波器的截止频率太低,将基带信号的成分也滤去了一些。然而滤波器的截止频率也不宜过大,这样会使它无法滤除混频信号中的2 高频分量。c对于其合
23、适的参数我进行了多次测试,力求在可以滤去2 高频分量的情况下使解调信c号损失最小。最终我发现将fl设为700Hz较为合理,解决了此问题。四、老师的问题1、SSB信号是如何得到?有两种方法得到SSB信号,分别是相移法和滤波法,本次设计用的是相移法。2、SSB信号是如何解调的?是用相干解调实现的,在解调的实现中,我先用下边带调制信号乘以本地载波,再通过低通滤波器滤除高频成分,如此便得到了解调后的信号。用数学表达式可以表示为 ttmtttmttlsby ccc 2sin)(412os)(41o)( 3、哪些语句是生成噪声的?我用函数“awgn(x,snr,measured)”来添加噪声,此函数功能为
24、向信号x中添加信噪比为snr的高斯白噪声。其中的一个参数measured的功能是在叠加噪声前先测量信号x的功率,再根据所测结果来产生所设信噪比的噪声。具体实现语句为:snr1=3;snr2=30;s1 = awgn(lssb,snr1,measured);s2 = awgn(lssb,snr2,measured);五、总结在这次课程设计中,我通过多方面地搜集资料,对SSB的解调原理进行深入理解分析,成功地用MATLAB 7.1编写出M程序完成了对SSB解调过程的仿真实现。在设计过程中,我面对着一系列的难点:将MATLAB与通信原理结合起来运用,根据书中介绍的解调原理自主设计所要运用的器件并调整
25、其参数,对解调信号结合理论进行分析并总结,掌握产生具有一定信噪比的高斯白噪声的方法,等等。这些具体的问题在书上只有少量的理论介绍,要在实际运用中结合这些理论是一件不太容易的事。接到课程设计任务书后,我积极投入,去图书馆借阅相关资料,上网浏览相关信息,获得了大量的信息,为完成本次课程设计奠定了基础。对于MATLAB我开始还有许多未解之处,为了了解各个函数的用法,我多次查阅了其中的help文件,大体了解了所调用函数的使用方法。然后通过不断的实验与探究总结,终于逐个克服了这些难点,完成了任务。通过这次的实践,我明白了要将理论与实际相结合的道理,尽管这个过程会有一些辛苦,但通过努力实现后,就能大大深化
26、我对知识的理解程度,增长实践经验。这表现在我对SSB的解调原理、MATLAB的功能特性都有了进一步的认识。总之,我在本次课程设计中辛苦不少,获益良多。参考文献1 东方渔民.无线电广播与收音机发展的历史回眸纪念费森登发明无线电广播100 周年.广播之家网站,http:/ 樊昌信,张甫翊,徐炳祥,吴成柯.国防工业出版社,2007. 3 孙学军,王秉均.通信原理.电子工业出版社,2005.4 孙祥,徐流美,吴清.MATLAB 7.0 基础教程.北京:清华大学出版社 2006.5 张辉,曹丽娜.现代通信原理与技术.西安:电子科技大学出版社,2007.6 唐向宏,岳恒立,邓雪峰. MATLAB 及在电子
27、信息类课程中的应用.电子工业出版社,2006.附录 1:SSB 解调程序方法 1 清单%程序名称:ssb.m%程序功能:自行设计解调器实现 SSB 解调%=t0=0.05; %信号保持时间ts=1/2500; %采样时间间隔fc=500; %此为载波频率fs=1/ts; %此为抽样频率fl=700; %滤波器的截止频率df=0.1; %频率分辨率snr1=3;snr2=30;t=0:ts:t0; %时间矢量m=cos(2*pi*50.*t); %原始信号c=cos(2*pi*fc.*t); %载波信号b=sin(2*pi*fc.*t); %载波信号对应的正弦信号lssb=m.*c+imag(h
28、ilbert(m).*b; %下边带信号s1 = awgn(lssb,snr1,measured);s2 = awgn(lssb,snr2,measured);y=lssb.*c; %下边带的混频y1=s1.*c; %加大噪声后混频y2=s2.*c; %加小噪声后混频M,m,dfl=fft_seq(m,ts,df); %傅里叶变换求原始信号频谱M=M/fs; %缩放LSSB,lssb,dfl=fft_seq(lssb,ts,df); %傅里叶变换求下边带信号频谱LSSB=LSSB/fs; %缩放S1,s1,dfl=fft_seq(s1,ts,df); %求下边带信号加大噪声的频谱S1=S1/f
29、s; %缩放S2,s2,dfl=fft_seq(s2,ts,df); %求下边带信号加小噪声的频谱S2=S2/fs; %缩放Y,y,dfl=fft_seq(y,ts,df); %傅里叶变换得出混频频谱Y=Y/fs; %缩放Y1,y1,dfl=fft_seq(y1,ts,df); %傅里叶变换得出混频频谱Y1=Y1/fs; %缩放Y2,y2,dfl=fft_seq(y2,ts,df); %傅里叶变换得出混频频谱Y2=Y2/fs; %缩放n_cutoff=floor(fl/dfl); %设计滤波器f=0:dfl:dfl*(length(m)-1)-fs/2; %频率矢量H=zeros(size(f
30、); H(1:n_cutoff)=2*ones(1,n_cutoff);H(length(f)-n_cutoff+1:length(f)=2*ones(1,n_cutoff);DEM=H.*Y; %滤波器输出(即解调后信号)频谱DEM1=H.*Y1; %滤波器输出(即加大噪声解调后信号)频谱DEM2=H.*Y2; %滤波器输出(即加小噪声解调后信号)频谱dem=real(ifft(DEM)*fs; %滤波器输出(即解调后)信号dem1=real(ifft(DEM1)*fs; %滤波器输出(即大噪声解调后)信号dem2=real(ifft(DEM2)*fs; %滤波器输出(即小噪声解调后)信号f
31、igure(1);subplot(3,1,1);plot(t,m(1:length(t); %显示调制信号title(调制信号);subplot(3,1,2);plot(t,lssb(1:length(t); %显示下边带信号title(下边带信号);subplot(3,1,3);plot(t,dem(1:length(t); %显示解调信号title(解调信号);figure(2);subplot(3,1,1);plot(f,abs(fftshift(M); %显示调制信号频谱title(调制信号频谱);subplot(3,1,2);plot(f,abs(fftshift(LSSB); %显
32、示下边带信号频谱title(下边带信号频谱);subplot(3,1,3);plot(f,abs(fftshift(DEM); %显示解调信号频谱title(解调信号频谱);figure(3);subplot(3,2,1);plot(t,lssb(1:length(t); %显示下边带信号title(下边带信号);subplot(3,2,2);plot(f,abs(fftshift(LSSB); %显示下边带信号频谱title(下边带信号频谱);subplot(3,2,3);plot(t,s1(1:length(t); %显示加大噪声后下边带信号title(加大噪声后下边带信号);subplo
33、t(3,2,4);plot(f,abs(fftshift(S1); %显示加大噪声后下边带信号频谱title(加大噪声后下边带信号频谱);subplot(3,2,5);plot(t,s2(1:length(t); %显示加小噪声后下边带信号title(加小噪声后下边带信号);subplot(3,2,6);plot(f,abs(fftshift(S2); %显示加小噪声后下边带信号频谱title(加小噪声后下边带信号频谱);figure(4);subplot(3,1,1);plot(t,dem(1:length(t); %显示解调信号title(解调信号);subplot(3,1,2);plot
34、(t,dem1(1:length(t); %显示加大噪声解调信号title(加大噪声解调信号);subplot(3,1,3);plot(t,dem2(1:length(t); %显示加小噪声解调信号title(加小噪声解调信号);figure(5);subplot(3,1,1);plot(f,abs(fftshift(DEM); %显示解调信号频谱title(解调信号频谱);subplot(3,1,2);plot(f,abs(fftshift(DEM1); %显示加大噪声解调信号频谱title(加大噪声解调信号频谱);subplot(3,1,3);plot(f,abs(fftshift(DEM
35、2); %显示加小噪声解调信号频谱title(加小噪声解调信号频谱);附录 2:傅立叶变换函数清单%程序名称:fft_seq.m%程序功能:傅立叶变换函数%=function M,m,df=fft_seq(m,ts,df) %定义函数 fs=1/ts; %采样频率if nargin=2, n1=0; %设计函数功能 else, n1=fs/df;endn2=length(m);n=2(max(nextpow2(n1),nextpow2(n2); M=fft(m,n);m=m,zeros(1,n-n2); %对 m 补零df=fs/n; %最终频率分辨率附录 3:SSB 解调程序方法 2 清单%
36、程序名称:ssb2.m%程序功能:调用函数 ssbdemod 实现 SSB 解调%=t0=0.05; %信号保持时间ts=1/2500; %采样时间间隔fc=500; %此为载波频率fs=1/ts; %此为抽样频率df=0.1; %频率分辨率t=0:ts:t0; %时间矢量m=cos(2*pi*50.*t); %原始信号u=ssbmod(m,fc,fs); %调制y=ssbdemod(u,fc,fs); %解调M,m,dfl=fft_seq(m,ts,df); %傅里叶变换求原始信号频谱M=M/fs; %缩放U,u,dfl=fft_seq(u,ts,df); %傅里叶变换求单边带信号频谱U=U
37、/fs; %缩放Y,y,dfl=fft_seq(y,ts,df); %傅里叶变换求解调信号频谱Y=Y/fs; %缩放f=0:df:df*(length(m)-1)-fs/2; %频率矢量figure(1);subplot(3,1,1);plot(t,m(1:length(t); %显示调制信号title(调制信号);subplot(3,1,2);plot(t,u(1:length(t); %显示单边带信号title(单边带调制信号);subplot(3,1,3);plot(t,y(1:length(t); %显示解调信号title(解调信号);figure(2);subplot(3,1,1);plot(f,abs(fftshift(M); %显示调制信号频谱title(调制信号频谱);subplot(3,1,2);plot(f,abs(fftshift(U); %显示单边带信号频谱title(单边带信号频谱);subplot(3,1,3);plot(f,abs(fftshift(Y); %显示解调信号频谱title(解调信号频谱);