DSP系统设计与实现实验四报告_第1页
DSP系统设计与实现实验四报告_第2页
DSP系统设计与实现实验四报告_第3页
DSP系统设计与实现实验四报告_第4页
DSP系统设计与实现实验四报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验四 滤波、频谱分析综合编程实验实验目的:通过在ADSP-21161评估板(ADSP-21161N EZ-KIT)上设计实现一个可完成信号滤波和频谱分析的小系统,掌握DSP系统设计与开发方法。实验内容:A. 实验环境的准备1 实验的硬件资源a) PC机一台(安装有VisualDSP+集成开发与调试环境、音频播放器、音乐文件);b) ADSP-21161N-EZ-KIT一套;c) 音频连接电缆一根;d) 耳麦一副。2 实验设备连接方式a) 将ADSP-21161N-EZ-KIT通过USB接口连接到PC机上;b) 用音频连接电缆将PC的音频输出插座和ADSP-21161N-EZ-KIT的音频输出

2、插座连接在一起;c) 将耳麦的耳机插头连接到ADSP-21161N-EZ-KIT的音频输出插座上。B. 实验内容本实验以工程实例“d:ADSP-21161 EZ-KIT LiteTalkthru”为基础,在工程文件中添加滤波器功能和频谱分析功能。其中,数字滤波器的设计可参考工程实例“d:ADSP-21161 EZ-KIT LiteSIMD_FIRs”中的例子程序;频谱分析采用DFT方法,有关设计可参考工程实例“d:ADSP-21161 EZ-KIT LiteDFT”中的例子程序。滤波器子程序和频谱分析子程序既可添加到中断服务子程序中,也可放在主程序中。滤波器有三种类型:低通、高通和带通,每种类

3、型滤波器的截止频率有两档,因此,总的滤波器类型的选择共有6种。滤波器类型的选择通过“IRQ2”按钮开关来实现,通过6个指示灯(LED2LED7)来指示,每按一次“IRQ2”按钮,滤波器类型切换到下一种类型,并点亮对应的指示灯。另外,通过“IRQ1”按钮开关来切换选择是直通方式,还是滤波方式。通过播放音乐信号和语音信号来体会各种类型滤波器的滤波效果。播放标准音(包括各种正弦波信号和线性调频信号),绘出直通和滤波后的信号的频谱图。实验步骤:1. 滤波器切换功能的调试原有程序中,已经有了四种滤波器的的相互切换的程序段。在实验前,先用MATLAB生成相应的两个带通滤波器的系数,在原程序中,滤波器的阶数

4、设置为130,但是在本实验中,如果加入两个130阶的带通滤波器,则在程序编译中会出现错误,会有错误提示”out memory”,我分析为可能是超出了存储范围,由于在源程序中已有65阶的滤波器系数,因此我统一将滤波器的阶数改为65阶,然后再编译则正常,又因为人耳的听力范围为20-20kHz,人所能发出的语音信号的范围为30-4kHz,因此在本实验中,我将两个带通滤波器的中心频率分别设置在500Hz和1.2kHz。以便能取得好的滤波效果。在修改完滤波器的切换以后,我先进行了程序的测试,发现运行正常,滤波效果也很好,然后我继续加入一个中断来控制滤波和全通的选择。其中在滤波器切换的程序调试中,我只需要

5、在change_filter_coeffs段中加入以下一段程序并且将R11的值由4改为6就可以:2. 全通与滤波功能的选择在原始程序中,控制滤波选择的程序段如下所示:do_audio_processing:if flag3_in jump skip_to_no_processing;call (pc, fir);jump playback_AD1836_left_DACs;通过对这段程序的分析,我不难看出,它是通过检测FLAG3按钮是否按下来选择是否进行滤波,但是我在这里要通过一个中断来控制是否选择滤波,因此我需要定义一个变量filter_or_not=0; 在程序运行过程中该变量有两个值可以

6、选择,分别以0和1来控制是否滤波,当变量的值为0时,则不滤波,当变量的值为1时,则进行滤波。相应的程序段如下所示:do_audio_processing: r0=dm(filter_or_not); r1=0; comp(r0,r1); if eq jump skip_to_no_processing; call (pc, fir);jump playback_AD1836_left_DACs;通过我对上述程序的分析,我可以看出,先将filter_or_not的值赋予r0,然后和0比较,若相等则不滤波,若不相等,则进入滤波。接下来我还需要在写一段中断调用子程序来修改filter_or_not的

7、值,以便通过该中断来控制滤波与否的选择。其程序段如下所示:在这里我需要将change_filter_model设置为全局中断子程序,然后还有在中断向量表中进行声明。通过以上中断子程序,我就可以通过中断来改变filter_or_not的值从而选择滤波还是全通。在原程序中,中断向量表中的IRQ02都是控制滤波器的切换,根据实验的要求,IRQ2还是控制滤波器的切换,但是此时我需要将IRQ1设置为控制滤波还是直通,其相应的修改以下程序段所示:此时我可以通过中断来控制滤波和全通的选择,并且在滤波的阶段,我还可以通过中断来控制滤波方式的选择。完成以上两个功能后,我再进行程序的测试,通过程序的测试,我很好地

8、实现了滤波和直通之间的切换,以及滤波器类型的选择。完成以上两个功能后,我继续完成最后一个任务,也就是对信号进行DFT分析。3. DFT功能的实现根据实验的要求,我要通过中断IRQ0来控制DFT的进行。由于已经给出了DFT实现的一个工程,我就将DFT的程序加入到SIMD_FIR_demo.asm子程序中,然后要对程序进行一些修改,由于在本试验中,DFT是作为一个中断服务子程序出现的,因此一开始我要加入如下程序段:来进行中断子程序的设置,并且将原先DFT工程中的main改成main_dft。由于信号的输入数据时存储在dline中,因此我还要做如下修改也就是将输入设置为dline,此时还要将main

9、_dft设置成全局的,并且在中断向量表中声明,然后加入到中断IRQ0中:由于在实验二已经仿真过DFT,将该DFT工程中的求模的运算实现的程序加入到该工程中,如下所示,再对程序做进一步的调试,然后我对程序进行测试。通过对程序的测试,我先通过中断IRO1将系统切换到滤波模式,然后通过IRQ0进行DFT分析,通过对程序的测试,我发现通过中断可以很好地控制滤波和DFT的分析,有较好的效果。然后我还有进一步声明变量output来存储滤波后的数据,然后再声明变量存储滤波后数据的DFT,其具体如下;然后我可以重复上面输入数据的DFT过程,在此过程中,DFT的程序基本不需要做太大修改,我只需要将相应的变量地址

10、换成输出数据的即可。然后我再进行程序的调试,可以得到较好的结果。在本实验中,我对一个测试语音信号,也就是一个单频的正弦信号进行分析,观察它的输入数据的时域波形和DFT以后的频谱。如下图所示:图1 输入数据及其DFT变换的模值 由于实验过程中采用的是单频信号,因此若该信号频率在滤波器的阻带以内,则该信号基本全部被滤去,波形幅度大幅度衰减,频谱的模也大幅度衰减,剩下的只有噪声部分。若在通带内,则不会有明显的变化。实验结果:在本次实验中,实现了语音信号的采集,然后通过中断来控制是否对该信号进行滤波以及进行怎样的滤波,并且通过LED灯可以观察到显示进行什么类型的滤波。然后再通过中断进行DFT分析。实验体会:通过本次实验,对DSP板的操作有了更深入的了解,学会了在程序中添加中断子程序,以及对中断子程序的调用,掌握了通过中断来改变变量,从而来进行不同的中断子程序的调用。对于FIR滤波器的设计有了更深入的了解,学会了通过变量来存储采样数据,然后对这些采样数据进行处理分析。同时更加清楚怎样进行寄存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论