




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DSP课程设计实 验 报 告信号的调制与解调院(系):设计人员: 学号: 设计人员: 学号:成绩:工程设计50报告20答辩30总分评语:指导教师签字: 日期:目 录一、设计任务书3二、设计内容.3三、设计方案、算法原理说明.3四、程序设计、调试与结果分析.4 五、设计(安装)与调试的体会17 六、参考文献181 设计任务书使用DSP产生调幅波和调频波。调制信号从MIC音频输入接口输入,频率小于1000HZ;载频由DSP程序内部产生,频率在40008000HZ之间,调幅信号的调制度为50%。发挥部分:使用DSP对所产生的调幅及调频信号进行解调,并通过SPEAKER音频输出接口输出解调后的信号。2 设计内容(1)编写C语言程序,并在CCS集成开发环境下调试通过。(2)实现设计所要求的各项功能。(3)按要求撰写设计报告。3 设计方案、算法原理说明模拟模拟幅度调制(AM)的实质是频谱搬移。输出已调调幅信号的时域一般表示式为AM载波产生方法:正弦函数可以展开成泰勒级数。取泰勒级数的前n项,得近似计算式:AM调制部分如图3-1。图3-1AM解调部分如图3-2。图3-2图3-3为AM的MATLAB仿真。图3-3如果载波的瞬时频率偏移随调制信号f(t)成线性变化,则为频率调制。调频信号表示式: 其瞬时频率为:,其中c是未调载波的标称角频率,f (t)是调制信号,系数KFM称为频偏常数。上图为FM解调流程图。图3-5为FM的MATLAB仿真。设,由三角公式可得:所以,可以看成是的同相分量,可以看成是的正交分量。则FM解调为:在利用相位差分计算瞬时频率,由于计算要进行除法和反正切运算,这对于非专用数字处理器来说是复杂的,当比较小时,也可以用下面的方法来计算瞬时频率:图3-44 程序设计、调试与结果分析本次课程设计主要完成了对AM与FM两种调制解调的实现,其中AM解调尝试了相干解调和正交解调进行对比。载波的实现分别进行了查表法和积算法比较,查表法载波数据和滤波器的设计参数都由Matlab进行计算得出。4.1.1AM的调制根据已知AM输出已调调幅信号的时域一般表示式为首先使用Matlab计算产生了256点正弦和余弦表,导入CCS仿真程序中,然后使用查表法产生合适频率的载波,并通过观测虚拟示波器,发现当查表取点间隔为32时,输出频率4005HZ的载波波形最佳。Matlab余弦载波数据的计算方法如下:x=0:1:255;y=cos(2*pi/256*(x+1)*215;y(find(y0)=y(find(y0)+65536;y=int32(y);dec2hex(y)仿真程序中AM调制的核心程序如下:void copyData(Int16 *inbuf, Int16 *outbuf, Int16 length) Int16 i = 0,k=0;float tempt=0,tempt1=0; for (i = 0; i length/2; i+) buffer1i = inbuf2*i/5; buffer2i= inbuf2*i+1/2; /*调制*/ for (i = 0; i =256) k=k%256; 在DMA接收数据完毕,触发中断,进入copyData子函数,通过调节载波幅值与输入信号的音量大小使得输出良好的调制信号。使用虚拟示波器信号源输入一个低频正弦(或三角、方波)信号,观测得到调制信号如图4-1,图4-2。图4-1虚拟示波器(时域)载波4005HZ,调制信号: 100HZ正弦图4-2虚拟示波器(时域)载波4005HZ,调制信号: 100HZ三角在仿真调试中,查看调制信号输出,进入View-graph,配置信息如图4-3:图4-3点击OK即可查看仿真调制信号输出,如图4-4:图4-44.1.2 利用DMA实时解调AM信号首先我们考虑的是让调制信号直接乘上同频率载波信号,然后通过低通滤波器实现解调,如图4-5,解调效果较为理想,不过需要处理好载波信号与调制信号的相位差问题,若调制信号的相位差出现周期性变化时,会导致解调的输出幅值发生变化。所以我们通过发送调制波的同时在另一个声道发送载波,使得载波和调制波有相同的相位变化。使用计算机自带播放软件播放录制的调制信号,如图4-6.相干解调的程序如下:void copyData(Int16 *inbuf, Int16 *outbuf, Int16 length) Int16 i = 0,k=0;float tempt=0,tempt1=0; for (i = 0; i =256) k=k%256; fir(buffer3, hu, buffer5, dbptr, BUFFSIZE/2, NH); for (i = 0; i length/2; i+) outbuf2*i=buffer5i*30;outbuf2*i+1=buffer5i*30;图4-5虚拟示波器(解调),时域,载波4005HZ,调制信号:100HZ正弦图4-6 录制调制信号的输出然后我们考虑采用正交解调的方法,由于这种方法对载波的频率和相位要求不是很高。所以应该最终产生的波形会比较好。但事实是,利用上面的方法进行解调时,输出波形反而变得非常乱,而将其中的滤波部分注释后,输出波形又恢复正常。所以我们考虑可能是中间的sqrt()函数导致cpu处理过程时间太长,从而不能够实现实时滤波。此外在data.h中存放了余弦和正弦的表,以及低通滤波器的系数。在主程序中我们设置了buffer1到buffer7共七个缓冲区,在相干解调的过程中我们用到了buffer1、buffer2分别来放置采入的左右声道的数据(此处buffer2改成放入本地载波),buffer3存放AM与载波相乘后的波形,之后利用fir函数将buffer3通过滤波器后放入buffer5中。同时利用graph同时观察各个缓冲区的波形,时域波形如图4-7,频域波形如图4-8。正交解调核心程序如下:void copyData(Int16 *inbuf, Int16 *outbuf, Int16 length) Int16 i = 0,k=0;float tempt=0,tempt1=0,tempt2=0; for (i = 0; i =256) k=k%256; fir(buffer2, hu, buffer4, dbptr, BUFFSIZE/2, NH); fir(buffer3, hu, buffer5, dbptr, BUFFSIZE/2, NH); for (i = 0; i length/2; i+) tempt=buffer4i; tempt1=buffer5i;tempt2=sqrtf(tempt*tempt+tempt1*tempt1); buffer6i=tempt2; outbuf2*i=buffer6i*10;outbuf2*i+1=buffer1i;图4-7图4-8在实际调试过程中遇到了非常多的问题,每一个缓冲区的波形都出现过问题,buffer1和buffer2中的波形好坏就直接决定了最终解调结果的好坏。buffer1中的波形刚开始时好时坏,我们通过改变数据大小等方法,最终发现提高耳机的音量能够十分有限得改善buffer1中的波形(可能因为改变了信噪比吧),通过经验我们发现在中间运算时加入一个float形的中间变量能够十分有效地提高运算结果的精度,不过最后输出的时候依旧要还原成int型,否则输出波形会出现问题。解调一个调制信号为800HZ载波4005HZ的调制波输出频谱如图4-9.可观测到解调出的频谱峰值在780HZ左右,解调成功。图4-9在使用本地载波的时候刚开始也发生了一些问题,就是通过滤波后低频分量附近会有一些很难去除的杂波分量,当时以为可能是由于本地载波与AM载波有频率差以及不同步引起的。在解调出的波形比较良好的情况下,也会出现波形忽大忽小的情况,从理论上将,如果本地载波与AM载波的相位差不恒定,最后解调出的波形幅值大小就会有所改变,所以我们想到了在发送的AM波形中一个声道放置AM波,另一个声道放置载波,这样就可以直接从音频信号中提取载波了。经过调试,效果很好,波形稳定。4.2.1 FM的调制FM调制实质是载波的瞬时频率偏移随调制信号f(t)成线性变化。在参考题目的文档中给出了FM调制的递归差分方程yn=A*yn-1-yn-2,其中:A=2cos(x),x=FM/FS, FS为采样频率。最初我们就是按照这种计算方法来实行FM调制。但后来发现,计算法得到的波形频率都较低,大概在400Hz的时候就波形开始失真,无法达到40008000Hz的要求。我们推测是计算法耗时很大,400Hz就是它的运算极限了。所以我们改用查表法。如果直接利用瞬时频率,比较困难。而由公式可知,正弦信号每个周期的样点数N由正弦信号的频率及D/A转换速率决定。所在已知的情况下,改变N的大小可以控制正弦信号的频率。查表法主要程序如下:void copyData(Int16 *inbuf, Int16 *outbuf, Int16 length) Int16 i = 0,k=0;float tempt=0; for (i = 0; i length/2; i+) buffer1i = inbuf2*i; buffer2i= inbuf2*i+1/16; for (i = 0; i =256) k=k%256;程序的k即对应N,改变k的取值间隔就可以控制输出余弦信号的频率。如本题中k=k+32.即,每隔32个点取一个点,则每个周期(256个点)中取8个点,所以余弦信号的频率为32000/8=4000Hz。如果加入tempt就可以改变频率大小,达到调频的目的。与对比发现实质相同。如下图4-10是虚拟示波器输出调制结果:载波为4005Hz,调制信号为200Hz正弦。如图4-11是仿真输出调制结果。图4-10图4-114.2.2 FM的解调根据前面介绍过的FM解调原理,用下面的方法来计算瞬时频率:但是在实际解调中没有得到理想的波形,失真比较严重。用于Fm解调程序如下:void copyData(Int16 *inbuf, Int16 *outbuf, Int16 length) Int16 i = 0,k=0;float tempt=0,tempt1=0,tempt2=0; for (i = 0; i =256) k=k%256; fir(buffer2, daitong, buffer4, dbptr, BUFFSIZE/2, NH); fir(buffer3, daitong, buffer5, dbptr, BUFFSIZE/2, NH); for (i = 1; i length/2; i+) tempt=buffer4i-1*buffer5i; tempt1=buffer4i*buffer5i-1;tempt2=tempt-tempt1; buffer6i=tempt2;outbuf2*i=buffer6i;outbuf2*i+1=buffer6i; fir(buffer6, ditong, buffer7, dbptr, BUFFSIZE/2, NH);for (i = 1; i length/2; i+) outbuf2*i=buffer7i; outbuf2*i+1=buffer7i;解调后虚拟示波器显示时域不规则波形如图4-12,但是频率稳定在193HZ,低频分量较多如图4-13:图4-12图4-134.3滤波器的设计与产生Matlab中自带滤波器设计工具想fdatool,可以为我们想要得到的滤波器提供参数支持。具体操作是在matlab命令窗口键入fdatool,然后弹出设计滤波器的工具菜单,供我们选择滤波器的类型,阶数,截频等等。如下图4-14所示图4-14是利用kaiser窗函数法设计的FIR滤波器,截频为1000Hz、抽样率为48000Hz,阶数为30。提取数据类型为“Signed 16-bit integer”,是为了与CCS中的数据类型想匹配,如图4-15。同理可设计其他类型的滤波器。图4-155设计(安装)与调试的体会在最初课程设计题目选择的时候,通过对AM,FM的学习,感觉信号的调试和解调仿佛并不会太难。但是在实践的过程中却没有那么一帆风顺。我主要负责AM的调制与解调部分。首先需要解决的是信号传输的问题,在这部分我们先尝试使用了Codec Mcbsp,但是后来因为传输速度及需要实时滤波的关系,改换成DMA的数据传输方式。在能够进行正常的信号输入及输出后,我们开始调试载波的输出,为了产生一个4000-8000Hz的稳定正弦和余弦信号,先后分别使用了计算法和查表法,通过对比发现:对于高频信号的产生,当丰富查表点数后,查表法输出波形更加稳定出色,所以我学习使用matlab制作了256点的余弦表和正弦表。对于AM的调制进行的较为顺利,但是进行到解调部分遇到了困难,首先是对于AM 解调方法的选择,我们首先实验了正交解调法,通过对该方法的学习,编写了相关程序,却无法输出波形,在仿真的图像观察窗中也没有输出,通过数据观察窗对解调中的每一个数组逐一检查,发现是因为数组数据类型的问题,导致在运算过程中发生了数据溢出和计算精度降低。通过添加中间变量并改写数据类型,最终解决了这个问题。但是因为正交解调法中部分运算子函数占用CPU指令周期过长,虽然仿真可以输出正确的解调波形,却无法让虚拟示波器得到输出。于是改用了第二种相干解调法,有了之前的经验,在接下来的程序编写中较为顺利,可是解调波形却差强人意,在多天的调试下,发现计算机输出音量控制非常重要,通过反复调节波形音量和麦克风音量,然后结合程序中参数的改写,最终顺利解调出AM波形。我在此次课程设计中收获很大,在十来天的课题研究中学习到了许多:第一:细节决定成败,往往一个设计中,或许只是一个数据类型的错误就导致了整个输出的异常。也可能是音量或者输出信号幅值的调节不够精确,导致输出波形不够理想。第二:耐心是成功的关键,这十几天的实验室课程学习中,碰到过各种问题,会感到无从下手,心烦气躁。但是只有静下心来,耐心的分析程序,仔细的逐一调试各个参数,不断的排除错误,才能够成功。第三:他山之石可以攻玉,同在一个实验室学习的其他同学,都会有各自的想法值得我们学习,在互相交流的过程中我们会发现自己的不足,并且少走很多弯路。:AM与FM的调制与解调在理论上都比较简单,但实践起来却困难重重。我主要负责FM的调制与解调部分。开始时用到泰勒级数来计算并输出载波。在得到完整的波形之前一直认为泰勒级数的精确度不够,多次尝试之后的巧合的输出了一个完整的波形,但是最高频率在40
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医美咨询激励方案
- 咨询具体方案
- 区安全咨询日方案
- 水泥建筑改建方案设计流程
- 岳阳铝单板施工方案安装
- 企业旅游推介会营销方案
- 建筑地基沉降加固方案设计
- 石材建筑装饰清洗方案设计
- 企业开展采茶活动策划方案
- 压铸行业咨询方案模板
- 物业经理聘用合同
- 理想二语自我对交际意愿的影响:二语坚毅和自信的链式中介作用
- MPOWER及烟草控制框架公约及国际国内控烟进展
- 2023年建筑三类人员(B类)考试题库(浓缩500题)
- 2024年社会工作者之初级社会综合能力考试题库含答案
- 学校品牌塑造校园文化的关键因素报告
- 企业会计学学习资料
- 学校宿舍的卫生与定期清洁策略
- 危险化学品码头安全管理制度(3篇)
- 《电力机车构造(第2版)》课件 任务三 HXD3型电力机车空气管路系统分析
- 2019版 苏教版 高中通-用技术 必修 技术与设计1《第五章 设计图样的绘制》大单元整体教学设计2020课标
评论
0/150
提交评论