DSP实验报告信号的调制与解调课程设计Word下载.docx
- 文档编号:19334691
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:18
- 大小:661.59KB
DSP实验报告信号的调制与解调课程设计Word下载.docx
《DSP实验报告信号的调制与解调课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《DSP实验报告信号的调制与解调课程设计Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
载频由DSP程序内部产生,频率在4000—8000HZ之间,调幅信号的调制度为50%。
发挥部份:
利用DSP对所产生的调幅及调频信号进行解调,并通过SPEAKER音频输出接口输出解调后的信号。
2设计内容
(1)编写C语言程序,并在CCS集成开发环境下调试通过。
(2)实现设计所要求的各项功能。
(3)按要求撰写设计报告。
3设计方案、算法原理说明
模拟模拟幅度调制(AM)的实质是频谱搬移。
输出已调调幅信号的时域一样表示式为
AM载波产生方式:
正弦函数能够展开成泰勒级数。
取泰勒级数的前n项,得近似计算式:
AM调制部份如图3-1。
图3-1
AM解调部份如图3-2。
图3-2
图3-3为AM的MATLAB仿真。
图3-3
若是载波的瞬时频率偏移随调制信号f(t)成线性转变,那么为频率调制。
调频信号表示式:
其瞬时频率为:
,其中ωc
是未调载波的标称角频率,f(t)是调制信号,系数KFM称为频偏常数。
上图为FM解调流程图。
图3-5为FM的MATLAB仿真。
设
,由三角公式可得:
因此
,能够看成是
的同相分量,
的正交分量。
那么FM解调为:
在利用相位差分计算瞬时频率,由于计算
要进行除法和终归切运算,这关于非专用数字处置器来讲是复杂的,当
比较小时,也能够用下面的方式来计算瞬时频率:
图3-4
4程序设计、调试与结果分析
本次课程设计要紧完成了对AM与FM两种调制解调的实现,其中AM解调尝试了相干解调和正交解调进行对照。
载波的实现别离进行了查表法和积算法比较,查表法载波数据和滤波器的设计参数都由Matlab进行计算得出。
的调制
依照已知AM输出已调调幅信号的时域一样表示式为
第一利用Matlab计算产生了256点正弦和余弦表,导入CCS仿真程序中,然后利用查表法产生适合频率的载波,并通过观测虚拟示波器,发觉当查表取点距离为32时,输出频率4005HZ的载波波形最正确。
Matlab余弦载波数据的计算方式如下:
x=0:
1:
255;
y=cos(2*pi/256*(x+1))*2^15;
y(find(y<
0))=y(find(y<
0))+65536;
y=int32(y);
dec2hex(y)
仿真程序中AM调制的核心程序如下:
voidcopyData(Int16*inbuf,Int16*outbuf,Int16length)
{
Int16i=0,k=0;
floattempt=0,tempt1=0;
for(i=0;
i<
length/2;
i++)
{
buffer1[i]=inbuf[2*i]/5;
buffer2[i]=inbuf[2*i+1]/2;
}
/***************调制**************************/
{
tempt=(buffer2[i]+350)/;
outbuf[2*i]=tempt*COS_TABLE[k]/10;
outbuf[2*i+1]=COS_TABLE[k]/10;
k=k+32;
if(k>
=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-4
利用DMA实时解调AM信号
第一咱们考虑的是让调制信号直接乘上同频率载波信号,然后通太低通滤波器实现解调,如图4-5,解调成效较为理想,只是需要处置好载波信号与调制信号的相位差问题,假设调制信号的相位差显现周期性转变时,会致使解调的输出幅值发生转变。
因此咱们通过发送调制波的同时在另一个声道发送载波,使得载波和调制波有相同的相位转变。
利用运算机自带播放软件播放录制的调制信号,如图4-6.相干解调的程序如下:
voidcopyData(Int16*inbuf,Int16*outbuf,Int16length){
buffer1[i]=inbuf[2*i];
buffer2[i]=COS_TABLE[k];
tempt=COS_TABLE[k]/;
buffer3[i]=buffer1[i]*tempt/50;
fir(buffer3,hu,buffer5,dbptr,BUFFSIZE/2,NH);
i++){
outbuf[2*i]=buffer5[i]*30;
outbuf[2*i+1]=buffer5[i]*30;
}}
图4-5虚拟示波器(解调),时域,载波4005HZ,调制信号:
100HZ正弦
图4-6录制调制信号的输出
然后咱们考虑采纳正交解调的方式,由于这种方式对载波的频率和相位要求不是很高。
因此应该最终产生的波形会比较好。
但事实是,利用上面的方式进行解调时,输出波形反而变得超级乱,而将其中的滤波部份注释后,输出波形又恢复正常。
因此咱们考虑可能是中间的sqrt()函数致使cpu处置进程时刻太长,从而不能够实现实时滤波。
另外在中寄存了余弦和正弦的表,和低通滤波器的系数。
在主程序中咱们设置了buffer1到buffer7共七个缓冲区,在相干解调的进程中咱们用到了buffer1、buffer2别离来放置采入的左右声道的数据(此处buffer2改成放入本地载波),buffer3寄存AM与载波相乘后的波形,以后利用fir函数将buffer3通过滤波器后放入buffer5中。
同时利用graph同时观看各个缓冲区的波形,时域波形如图4-7,频域波形如图4-8。
正交解调核心程序如下:
floattempt=0,tempt1=0,tempt2=0;
i++){
buffer2[i]=buffer1[i]*tempt/50;
tempt1=SINE_TABLE[k]/;
buffer3[i]=buffer1[i]*tempt1/50;
fir(buffer2,hu,buffer4,dbptr,BUFFSIZE/2,NH);
tempt=buffer4[i];
tempt1=buffer5[i];
tempt2=sqrtf(tempt*tempt+tempt1*tempt1);
buffer6[i]=tempt2;
outbuf[2*i]=buffer6[i]*10;
outbuf[2*i+1]=buffer1[i];
}}
图4-7
图4-8
在实际调试进程中碰到了超级多的问题,每一个缓冲区的波形都显现过问题,buffer1和buffer2中的波形好坏就直接决定了最终解调结果的好坏。
buffer1中的波形刚开始时好时坏,咱们通过改变数据大小等方式,最终发觉提高耳机的音量能够十分有限得改善buffer1中的波形(可能因为改变了信噪比吧),通过体会咱们发此刻中间运算时加入一个float形的中间变量能够十分有效地提高运算结果的精度,只是最后输出的时候依旧要还原成int型,不然输出波形会显现问题。
解调一个调制信号为800HZ载波4005HZ的调制波输出频谱如图4-9.可观测到解调出的频谱峰值在780HZ左右,解调成功。
图4-9
在利用本地载波的时候刚开始也发生了一些问题,确实是通过滤波后低频分量周围会有一些很难去除的杂波分量,那时以为可能是由于本地载波与AM载波有频率差和不同步引发的。
在解调出的波形比较良好的情形下,也会显现波形忽大忽小的情形,从理论上将,若是本地载波与AM载波的相位差不恒定,最后解调出的波形幅值大小就会有所改变,因此咱们想到了在发送的AM波形中一个声道放置AM波,另一个声道放置载波,如此就能够够直接从音频信号中提取载波了。
通过调试,成效专门好,波形稳固。
FM的调制
FM调制实质是载波的瞬时频率偏移随调制信号f(t)成线性转变。
在参考题目的文档中给出了FM调制的递归差分方程y[n]=A*y[n-1]-y[n-2],其中:
A=2cos(x),x=ωFM/FS,FS为采样频率。
最初咱们确实是依照这种计算方式来实行FM调制。
但后来发觉,计算法取得的波形频率都较低,可能在400Hz的时候就波形开始失真,无法达到4000—8000Hz的要求。
咱们推测是计算法耗时专门大,400Hz确实是它的运算极限了。
因此咱们改用查表法。
若是直接利用瞬时频率
,比较困难。
而由公式
可知,正弦信号每一个周期的样点数N由正弦信号的频率
及D/A转换速度
决定。
所在
已知的情形下,改变N的大小能够操纵正弦信号的频率
。
查表法要紧程序如下:
floattempt=0;
buffer2[i]=inbuf[2*i+1]/16;
}
tempt=buffer2[i]/;
buffer3[i]=buffer2[i]/;
outbuf[2*i]=COS_TABLE[k];
outbuf[2*i+1]=COS_TABLE[k];
k=k+32+tempt;
程序的k即对应N,改变k的取值距离就能够够操纵输出余弦信号的频率。
如此题中k=k+32.即,每隔32个点取一个点,那么每一个周期(256个点)中取8个点,因此余弦信号的频率为32000/8=4000Hz。
若是加入tempt就能够够改变频率大小,达到调频的目的。
与
对照发觉实质相同。
如以下图4-10是虚拟示波器输出调制结果:
载波为4005Hz,调制信号为200Hz正弦。
如图4-11是仿真输出调制结果。
图4-10
图4-11
FM的解调
依照前面介绍过的FM解调原理,用下面的方式来计算瞬时频率:
可是在实际解调中没有取得理想的波形,失真比较严峻。
用于Fm解调程序如下:
k=k+32;
fir(buffer2,daitong,buffer4,dbptr,BUFFSIZE/2,NH);
fir(buffer3,daitong,buffer5,dbptr,BUFFSIZE/2,NH);
for(i=1;
tempt=buffer4[i-1]*buffer5[i];
tempt1=buffer4[i]*buffer5[i-1];
tempt2=tempt-tempt1;
outbuf[2*i]=buffer6[i];
outbuf[2*i+1]=buffer6[i];
fir(buffer6,ditong,buffer7,dbptr,BUFFSIZE/2,NH);
i++){
outbuf[2*i]=buffer7[i];
outbuf[2*i+1]=buffer7[i];
解调后虚拟示波器显示时域不规那么波形如图4-12,可是频率稳固在193HZ,低频分量较多如图4-13:
图4-12
图4-13
滤波器的设计与产生
Matlab中自带滤波器设计工具想fdatool,能够为咱们想要取得的滤波器提供参数支持。
具体操作是在matlab命令窗口键入fdatool,然后弹出设计滤波器的工具菜单,供咱们选择滤波器的类型,阶数,截频等等。
如以下图4-14所示
图4-14
是利用kaiser窗函数法设计的FIR滤波器,截频为1000Hz、抽样率为48000Hz,阶数为30。
提取数据类型为“Signed16-bitinteger”,是为了与CCS中的数据类型想匹配,如图4-15。
同理可设计其他类型的滤波器。
图4-15
5设计(安装)与调试的体会
在最初课程设计题目选择的时候,通过对AM,FM的学习,感觉信号的调试和解调恍如并非会太难。
可是在实践的进程中却没有那么一帆风顺。
我要紧负责AM的调制与解调部份。
第一需要解决的是信号传输的问题,在这部份咱们先尝试利用了CodecMcbsp,可是后来因为传输速度及需要实时滤波的关系,改换成DMA的数据传输方式。
在能够进行正常的信号输入及输出后,咱们开始调试载波的输出,为了产生一个4000-8000Hz的稳固正弦和余弦信号,前后别离利用了计算法和查表法,通过对照发觉:
关于高频信号的产生,当丰硕查表点数后,查表法输出波形加倍稳固超卓,因此我学习利用matlab制作了256点的余弦表和正弦表。
关于AM的调制进行的较为顺利,可是进行到解调部份碰到了困难,第一是关于AM解调方式的选择,咱们第一实验了正交解调法,通过对该方式的学习,编写了相关程序,却无法输出波形,在仿真的图像观看窗中也没有输出,通过数据观看窗对解调中的每一个数组一一检查,发觉是因为数组数据类型的问题,致使在运算进程中发生了数据溢出和计算精度降低。
通过添加中间变量并改写数据类型,最终解决了那个问题。
可是因为正交解调法中部份运算子函数占用CPU指令周期太长,尽管仿真能够输出正确的解调波形,却无法让虚拟示波器取得输出。
于是改用了第二种相干解调法,有了之前的体会,在接下来的程序编写中较为顺利,可是解调波形却差强人意,在多天的调试下,发觉运算机输出音量操纵超级重要,通过反复调剂波形音量和麦克风音量,然后结合程序中参数的改写,最终顺利解调出AM波形。
我在这次课程设计中收成专门大,在十来天的课题研究中学习到了许多:
第一:
细节决定成败,往往一个设计中,或许只是一个数据类型的错误就致使了整个输出的异样。
也可能是音量或输出信号幅值的调剂不够精准,致使输出波形不够理想。
第二:
耐心是成功的关键,这十几天的实验室课程学习中,碰着过各类问题,会感到无从下手,心烦气躁。
可是只有静下心来,耐心的分析程序,认真的一一调试各个参数,不断的排除错误,才能够成功。
第三:
他山之石能够攻玉,同在一个实验室学习的其他同窗,都会有各自的方式值得咱们学习,在相互交流的进程中咱们会发觉自己的不足,而且少走很多弯路。
:
AM与FM的调制与解调在理论上都比较简单,但实践起来却困难重重。
我要紧负责FM的调制与解调部份。
开始时用到泰勒级数来计算并输出载波。
在取得完整的波形之前一直以为泰勒级数的精准度不够,多次尝试以后的巧合的输出了一个完整的波形,可是最高频率在400Hz左右就不行了,现在增加或减少泰勒级数都没方法取得改善。
因此推测由于计算法耗时长,限制载频无法达到4000-8000Hz。
以后才改做查表法。
查表法做得比较顺利,可是FM的解调一直没有做出来。
通过本次的实验有几点很深的感触:
第一,做研究要耐得住性子。
在实验室10天左右的时间,大部分都是在调试软件,很有可能一整天都没有什么进展,只是更加熟悉软件的一些操作而已。
由于对软件和硬件都没有足够的认识,每天的任务基本上也是单调的,不断地“Reload”和调整音量大小应该是频率最高的动作了。
可是咱们必然要欣然同意,因为如此咱们至少明白如何做是错的。
第二,要勤于思考和实践。
在实验中最可怕的是没事可做,因为这样就真的是干耗时间了。
所以我们得多思考,哪怕要改动的地方很不起眼或者没有足够的理论支持,我们都要尝试,这样就总有一种希望。
第三,同窗之间要彼此合作。
要紧负责AM,而我要紧负责FM。
在各自解调的部份,咱们调试的都很艰巨。
AM的解调是在出来后,给我莫大的鼓舞,尽管最后FM没有解调成功。
可是如此对团队是有利的,通过彼此学习能够让对方少走很多弯路。
六、参考文献
[1]高海林、钱满义.DSP技术及其应用讲义.2005年10月
[2]汪春梅、孙洪波.TMS320C55xDSP.北京:
电子工业出版社,2005年10月
[3]TMS320C54xDSPCPUandPeripherals.TexasInstrumentInc,2001.
[4]TMS320C54xDSPApplicationsandGuide.TexasInstrumentInc,2001.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 实验 报告 信号 调制 解调 课程设计