当前位置:文档之家› 单边带信号调制与解调-MATLAB

单边带信号调制与解调-MATLAB

MATLAB中用M文件实现SSB解调一、课程设计目的本次课程设计是对通信原理课程理论教学和实验教学的综合和总结。

通过这次课程设计,使同学认识和理解通信系统,掌握信号是怎样经过发端处理、被送入信道、然后在接收端还原。

要求学生掌握通信原理的基本知识,运用所学的通信仿真的方法实现某种传输系统。

能够根据设计任务的具体要求,掌握软件设计、调试的具体方法、步骤和技巧。

对一个实际课题的软件设计有基本了解,拓展知识面,激发在此领域中继续学习和研究的兴趣,为学习后续课程做准备。

二、课程设计内容(1)熟悉MATLAB中M文件的使用方法,掌握SSB信号的解调原理,以此为基础用M文件编程实现SSB信号的解调。

(2)绘制出SSB信号解调前后在时域和频域中的波形,观察两者在解调前后的变化,通过对分析结果来加强对SSB信号解调原理的理解。

(3)对信号分别叠加大小不同的噪声后再进行解调,绘制出解调前后信号的时域和频域波形,比较未叠加噪声时和分别叠加大小噪声时解调信号的波形有何区别,借由所得结果来分析噪声对信号解调造成的影响。

(4)在老师的指导下,独立完成课程设计的全部内容,并按要求编写课程设计论文,文中能正确阐述和分析设计和实验结果。

三、设计原理1、 SSB解调原理在单边带信号的解调中,只需要对上、下边带的其中一个边带信号进行解调,就能够恢复原始信号。

这是因为双边带调制中上、下两个边带是完全对称的,它们所携带的信息相同,完全可以用一个边带来传输全部消息。

单边带解调通常采用相干解调的方式,它使用一个同步解调器,即由相乘器和低通滤波器组成。

在解调过程中,输入信号和噪声可以分别单独解调。

相干解调的原理框图如图a 所示:)(t S SSB )(1t S )(2t Sc(t)图a 相干解调原理框图此图表示单边带信号首先乘以一个同频同相的载波,再经过低通滤波器即可还原信号。

单边带信号的时域表达式为t t m t t m t S c c SSB ωωsin )(ˆ21cos )(21)( = )(t m 表示基带信号其中取“-”时为上边带,取“+”时为下边带。

乘上同频同相载波后得t t m t t m t m t t S t S c c c SSB ωωω2sin )(ˆ412cos )(41)(41cos )()(1 +== )(ˆt m表示)(t m 的希尔伯特变换 经低通滤波器可滤除2c ω的分量,所得解调输出为)(41)(2t m t S = 由此便可得到无失真的调制信号。

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;”产生下边带信号。

接下来的解调过程主要就针对该下边带信号进行。

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=real(ifft(DEM))*fs;在此段程序中,y 是下边带信号与本地载波相乘的结果,用数学表达式可以表示为t t m t t m t m t t lssb y c c c ωωω2sin )(ˆ412cos )(41)(41cos )( +== 根据此式可知,此低通滤波器的作用在于去除y 中包含的具有频率为c ω2的分量,滤波后就得到了基带信号。

Y 是对y 进行傅立叶变换求得的频谱函数。

通过“Y=Y/fs ”对结果进行缩放,用于满足显示要求和计算需要。

低通滤波器的设计是由“n_cutoff=floor(fl/dfl);”到“DEM=H.*Y;”之间的语句实现的,其中“fl ”表示低通滤波器的截止频率,混频信号y 中高于此频率的分量将被滤除,得到解调信号;而“DEM=H.*Y;”表示Y 与截止系数H 相乘后,其高频部分被滤去,所得结果DEM 即为过滤后的频谱函数,就是解调后信号的频谱。

最后再由“dem=real(ifft(DEM))*fs;”对DEM 进行傅立叶逆变换,取其实部,乘以采样频率后可得出滤波后的时域信号函数dem ,它就是解调后的信号。

另外要注意对采样频率fs 的选取。

由于MATLAB 仿真模拟信号是通过抽样来确定此信号的,所以能否通过抽样完全确定信号直接关系到仿真的成败。

我所设的载波频率为fc=500Hz ,根具抽样定理,要使得载波信号c 被所得到的抽样值完全确定,必须以T fc21≤秒的间隔对它进行等间隔抽样,即是fs ≥2fc 。

故fs 最小值应为2fc=1000Hz ,为了确保结果合理,我取fs=2500Hz。

其他一些参数设置为:信号保持时间t0=0.5s,滤波器截止频率fl=700Hz,频率分辨率df=0.1Hz。

在求频谱函数时,我调用了一个自己设定的函数“fft_seq”,它是对快速傅立叶变换函数fft的改进。

它通过提高频率分辨率,能更好地区分两个谱峰。

若设信号m的长度为T秒,则其频率分辨率为f∆=1/T(Hz)。

因为输入计算机中的连续信号被转换成了离散的序列,而设其序列共有N个点,则两根谱线间的距离f∆=fs/N,它也是频率分辨率的一种度量。

如果该式的f∆不够小,我们可以增加N来减小f∆。

而一种有效的方法是在离散序列后面补零,这不会破坏原来的信号。

函数“fft_seq”就是基于以上思想编成。

我在MATLAB中实现SSB解调的仿真就是基于以上的程序和参数设定,运行调用了plot函数的M文件,可以分别得出解调前后的频域与时域对比图,为了便于参照,将LSSB信号的时域与频域图也一同进行比较。

三者时域图比较结果如图b所示:图b 调制信号、LSSB信号、解调信号的时域对比图由图b可以看出,解调信号能够基本还原原始基带信号,只有少许失真,可见解调过程较为成功。

对于失真接问题接下来将会进行具体分析。

为了更好分析解调的结果,还必须将时域图与频域图进行比较,通过观察频域图能够更为直观的了解信号的频率分布,借此来讨论滤波器的作用特性。

三者的频域图比较如图c所示:图c调制信号、LSSB信号、解调信号的频域对比图由频域图可以明显地看出,下边带信号将基带信号的频谱向两侧进行了搬移,然后去除了其中上边带的那一半。

而解调后的频谱与基带信号在频率小于700Hz的范围内几乎没有区别,用肉眼很难观察出不同之处;解调信号在频率大于700Hz范围外的频谱已经被低通滤波器完全滤除,故没有波形,这就是解调信号与基带信号频谱差异最明显之处。

由于在理论上,解调过程可以完全恢复基带信号,但实际中仍然会产生少许失真,故失真的原因可以从参数的设置上入手找寻。

在解调过程中,相乘器是严格按照数学关系运算的,不会产生误差,失真的产生因该在低通滤波器环节。

为了探究低通滤波器的设置对解调的影响,我将滤波器的截止频率fl分别改为1000Hz和50Hz进行比较,根据结果来判断原因。

分量。

实际首先我选fl=1000Hz,它等于2fc,它应该无法滤除混频信号中的2c得出的时域和频域图结果如图d和图e:图d fl=1000Hz时的解调信号时域对比图图e fl=1000Hz时的解调信号频域对比图从时域比较图中可以明显看出解调信号严重失真,还保留着载波信号的频率变化;而频谱图中,解调信号频谱的两侧将近1000Hz处有两个高峰,可见解调信号频谱与基带信号频谱存在巨大差异。

原因很简单,低通滤波器的截止频率高于2fc,故无法滤除相乘器输出的混频信号 分量,完全没有起到低通滤波的作用,所以解调信号保留有高频分量,无y的高频2c法正确还原调制信号。

接下来将截止频率fl设为50Hz,观察在fl较低的情况下的解调输出结果。

此时,fl远远小于2fc,不存在无法滤除高频分量的问题,不会产生上一种情况的错误。

通过分析这种情况下的结果可以得出低截止频率对解调的影响。

在fl=50Hz时得出的时域和频域解调结果对比如图f和图g所示:图f fl=50Hz时解调信号时域对比图图g fl=50Hz时解调信号频域对比图由时域比较图中可以清晰地看出解调信号能够保持平滑的余弦波形,但幅度小了将近一倍,且两端的幅度明显小于中间。

由此可以估计出一种可能性:基带信号的一部分丢失了,解调信号只是原基带信号的一部分。

因此才会造成幅度下降的结果。

频谱对比图很好地验证了这种可能性。

观察发现解调信号的频谱被滤去频率大于50Hz的部分之后,虽然保持了原基带信号的主体部分,但两边的分量已经全部滤除。

这就是问题所在。

两边的分量也占据了一定的比重,滤除的越多,原基带信号损失的部分也越多,就如时域图中所示。

幅度减小的原因就在于此。

通过在fl=50Hz时对解调信号频域和时域的观察,可以得出结论:fl较低时,在滤ω分量的同时,也会连带去除基带信号中的一部分。

因此为了保全基带信号的去高频2c完整性,fl不宜过低。

ω分量无法滤除;而fl较低,又会使综上所述,截止频率fl过高时会导致高频2cω分量的情况得基带信号有部分被滤去。

经过调整分析,我认为fl应该在能够滤去2c下,尽可能高一点。

这样就能保证基带信号被滤去的部分减到最少。

所以开始所设的fl=700Hz是一个较为合适的值,解调结果也很接近基带信号。

实现解调还有一种方法,就是调用专用于SSB信号解调的函数ssbdemod(u,fc,fs),此函数内部集成了解调过程,不需要自行再设置相乘器与滤波器。

为了与前一种方法对比,现简要用此函数来实现SSB的解调。

为了增强对比性,除了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)。

相关主题