- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SP系统设计与实现实验四报告.doc
实验四滤波、频谱分析综合编程实验
实验目的:
通过在ADSP-21161评估板(ADSP-21161N EZ-KIT)上设计实现一个(4完成信号滤
波和频谱分析的小系统,掌握DSP系统设计与开发方法。
实验内容:
实验环境的准备
实验的硬件资源
a) PC机一台(安装有VisualDSP+4?集成开发与调试环境、音频播放器、音乐文 件);
b) ADSP-21161N-EZ-KIT—套;
c) 音频连接电缆?一根;
d) 耳麦一副。
实验设备连接方式
a) 将ADSP-21161N-EZ-KIT通过USB接口连接到PC机上;
b) 用咅频连接电缆将PC的咅频输出插座和ADSP-21161N-EZ-KIT的咅频输出插
座连接在一起;
c) 将耳麦的耳机插头连接到ADSP-21161N-EZ-KIT的音频输山插座上。
实验内容
本实验以工程实例ck\ADSP-21161 EZ-KIT Lite\Talkthru\〃为基础,在工程文件屮添 加滤波器功能和频谱分析功能。其中,数字滤波器的设计可参考工程实例 z/d:\ADSP-21161 EZ-KIT Lite\SIMD_FIRs\〃中的例子程序;频谱分析采用DFT方法, 有关设计可参考工程实例d:\ADSP-21161 EZ-KIT Lite\DFT\〃屮的例子程序。滤波器
子程序和频谱分析子程序既可添加到中断服务子程序中,也可放在主程序中。 滤波器冇三种类型:低通、高通和带通,每种类型滤波器的截止频率有两档,因 此,总的滤波器类型的选择共有6种。滤波器类型的选择通过IRQ2按钮幵关來 实现,通过6个指示灯(LED2?LED7)来指示,每按?一次IRQ2按钮,滤波器类 型切换到下一种类型,并点亮对应的指示灯。另外,通过IRQ1〃按钮开关来切换 选择是直通方式,还是滤波方式。
通过播放咅乐信号和语咅信号来体会各种类型滤波器的滤波效采。
播放标准音(包括各种正弦波信号和线性调频信号),绘出直通和滤波后的信号 的频谱图。
实验步骤:
滤波器切换功能的调试
原有程序屮,已经有Y四种滤波器的的相互切换的程序段。在实验前,先用 MATLAB生成相应的叫个带通滤波器的系数,在原程序中,滤波器的阶数设置为 130,但是在本实验屮,如果加入两个130阶的带通滤波器,则在程序编译屮会 出现错误,会宥错误提示out memory,我分析为可能是超出了存储范围,由于 在源程序中已冇65阶的滤波器系数,凶此我统-将滤波器的阶数改为65阶,然 后再编译则正常,又冈为人耳的听力范鬧为20-20kHz,人所能发出的语音信号的 范围为30-4kHz,因此在本实验中,我将两个带通滤波器的中心频率分别设置在 500Hz和1.2kHz。以便能取得好的滤波效果。在修改完滤波器的切换以后,我先 进行了程序的测试,发现运行正常,滤波效果也很好,然后我继续加入一个中断 來控制滤波和全通的选择。其中在滤波器切换的程序调试中,我只需要在 change jilter_coeffs段屮加入以下一段程序并且将R11的值由4改力6就可以:
? ?gB 麵■ ■ ?耱? |
filter_select_5:
b9 = coef.BP.500kHz; 19 = @coef_BP.500Hz;
ustatl=dm7IOFLAG):
|||I bit clr ust at 1 0x2F; /
bit set ust at 1 0x10 ;
醸 dm(IOFLAG)=ust at 1:
jump exit—IRQ—routine:
■Ft 1 + p*r pp+ ?
b9—= c。efZBP_1. 2kHz; 19 = @coef_BP_1. 2kHz;
ustatl=dm7IOFLAG):
|||I bit clr ust at 1 Ox IF: /
bit set ust at 1 0x20:
醸 dm(IOFLAG)=ust at 1:
全通与滤波功能的选择
在原始程序屮,控制滤波选择的程序段如下所示:
do_audio_processing:
if flag3_in jump skip_to_no_processing;
call (pc, fir);
jump playback_AD1836_left_DACs;
通过对这段程序的分析,我不难看出,它是通过检测FLAG3按钮是否按卜來选择 是否进行滤波,但是我在这里要通过一个中断来控制是否选择滤波,因此我需要 定义一个变量filter_or_not=0;在程序运行过程屮该变量有两个值可以选择,分 别以0和1来控制是否滤波,当变量的值为0时,则不滤波,当变量的值为1 时,则进行滤波。相应的程序段如下所示:
do_audio__processing:
rO=dm(filter_or_not);
r
原创力文档


文档评论(0)