实验三(下)、双音多频信号的产生和测试_9.0_DE2_第1页
实验三(下)、双音多频信号的产生和测试_9.0_DE2_第2页
实验三(下)、双音多频信号的产生和测试_9.0_DE2_第3页
实验三(下)、双音多频信号的产生和测试_9.0_DE2_第4页
实验三(下)、双音多频信号的产生和测试_9.0_DE2_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

基于软核技术的嵌入式系统设计与实践基于软核技术的嵌入式系统设计与实践 实验三 实验三 DTMFDTMF 信号的产生和测试信号的产生和测试 DE2 DE2 平台平台 北京交通大学北京交通大学 计算机学院计算机学院 教师 丁晓明教师 丁晓明 2 DTMF 的原理的原理 DTMF Double Tone MulitiFrequency 双音多频 作为实现电话号码快速可靠传输的一种技术 它具有很强 的抗干扰能力和较高的传输速度 因此 可广泛用于电话通信系统中 但绝大部分是用作电话的音频拨号 另外 它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输 DTMF 是用两个特定的单音频组合信号来代表数字信号以实现其功能的一种编码技术 两个单音频的频率不同 代表的数字或实现的功能也不同 这种电话机中通常有 16 个按键 其中有 10 个数字键 0 9 和 6 个功能键 A B C D 由于按照组合原理 一般应有 8 种不同的单音频信号 因此可采用的频率也有 8 种 故称之 为多频 又因它采用从 8 种频率中任意抽出 2 种进行组合来进行编码 所以又称之为 8 中取 2 的编码技术 DTMF 编码器基于两个二阶数字正弦波振荡器 一个用于产生行频 一个用于产生列频 如下图所示 根据 CCITT 的建议 国际上采用的多种频率为 687Hz 770Hz 852Hz 941Hz 1209Hz 1336Hz 1477Hz 和 1633Hz 等 8 种 用这 8 种频率可形成 16 种不同的组合 从而代表 16 种不同的数字或功能键 具体组合见表 1 3 高频群高频群 Hz 低频群低频群 Hz 1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 0 D 双音多频的拨号键盘是 4 4 的矩阵 每一行代表一个低频 每一列代表一个高频 每按一个键就 发送一个高频和低频的正弦信号组合 交换机可以解码这些频率组合并确定所对应的按键 比如 当按下 2 键时 发送的数据是 697Hz 和 1336Hz 两个正弦波叠加信号 如下图 4 设计思路 根据 DTMF 信号发生的原理 我们在实验中将通过调用 8 个 ROM 来分别保存行频组的 4 个频率和列频组的 4 个频率数据 然后设计一个控制模块 根据输入时钟频率产生对 ROM 的寻址信号 以便对其中的数据进行采集 这样就完成了正弦信号的发生 再通过一个 DTMF 发生模块 来实现双音 多频信号的合成 这里需要完成两个工作 一是音频信号任务 产生双音样本 DTMF 信号规定的指标 是 传送 接收率为每秒 10 个数字 即每个数字 100ms 音频信号必须持续至少 45ms 但不超过 55ms 二是静音任务 产生静音样本 在 100ms 内其他时间均为静音时间 任务一通过将任意一组行频和列频 组合来实现 所产生的信号就是前面我们提到的 4 个按键对应的 DTMF 信号 最后通过相应的按键来输 出对应的 DTMF 信号 并有对应的 LED 灯提示 硬件注意事项 1 任何插拔操作 必须在实验板断电的情况下进行 2 使用 USB Blaster 下载器 一端连接实验板 J24 口 一端连接电脑 USB 口 试验说明 试验说明 由于开发板硬件资源限制 只能做四个键的输入 于是我们规定 开发板四个键分别对应 4 4 键盘的 1 2 4 5 四个键 如下图所示 5 上图是以前开发板的按钮分布 原理类似 只要将现在使用的 Cyclone II 开发板上的四个按键对应 4 4 键盘的 1 2 4 5 四个键即可 实验步骤实验步骤 双音多频信号的产生方法请参考实验三 上 的相关文档 下面介绍滤波器设计方法 6 滤波器设计滤波器设计 由 DTMF 信号产生原理可以得出 如果经过低通或高通滤波器 叠加的双音频信号将被滤除一个 下面我们就设计一 组高通和低通滤波器来观察实验四中 DTMF 发生器的输出经过两种滤波之后的波形 1 滤波器系数产生 滤波器系数产生 以下过程可能需要花费很长的时间 这里我们直接使用已经产生好的一组低通和高通滤波器的系数 见本工程中的 lpparam txt 文件和 hpparam txt 文件 名字可自己定义 在 Matlab 的 Command Window 中输入 fdatool 进入滤波器设计界面 7 其中 Response Type 项目设置滤波器的响应类型 Design Method 项目设置滤波器设计方法 Filter Order 设置滤波器的阶 数 Options 设置密度因素 Frequency Specifications 设置滤波器的频率参数 Magnitude Specifications 设置损耗参数 以上只列举了 Response Type 和 Design Method 分别为 Lowpass 和 FIR Equiripple 时的界面项目 如果这两项有变化 其 他项目也会作出对应的变化 具体用处可根据说明来理解 参数设置完毕后 可以在 Filter Specifications 中看到滤波器的幅频特性来观察自己设计的大致结果 完成后 点击 Design Filter 进行滤波器设计 完毕后 可以选择 export 把滤波器系数导出到 Matlab 的工作空间中 保存 的变量名可以自己定义 默认的为 Num 8 这时产生的滤波器系数为浮点型 下面还需要将它转变为定点型 round Num 1024 可以将浮点转化为定点 红色的数字可以自己设定 我们用 freqz round Num 1024 1 0 0 1 pi 产生滤波器系数对应的滤波器的频响 通过不断改变 Num 来观察产生的频响图 中我们所感兴趣的数字频率对应的部分 在这里 697 770 852 941 1209 1336 1477 1633 对应的数字频率为 0 1742 0 1925 0 2130 0 2352 0 3023 0 3340 0 3693 0 4083 pi 因此我们只要观察频谱图上 0 2352 pi 和 0 3023 pi 位置上的信号 幅度到满足所要设计的滤波器的频谱特性即可 比如设计低通滤波器 则 0 2352 pi 处幅度大约为 1 而 0 3023 pi 处幅 度大约为 0 这时滤波器的系数才是最佳的 决定了滤波器系数后 我们在通过滤波后的结果来确定采用的量化比特宽度 由于 DTMF 信号由 2 组各 4 个低频和高频信号组成 所以我们考虑最高低频和最低高频来进行滤波器的设计 即取 941Hz 和 1209Hz 来设计滤波器的通带截频和阻带截频 采样频率为 8kHz 正好是 50MHz 除以 6250 然后通过下面的程序 在 Matlab 中观察滤波后输出的波形和频谱来确定需要采用的量化比特宽度 fs 8000 定义采样频率 t 0 1 fs 50e 3 设置观察范围 x round cos 2 pi 941 t cos 2 pi 1209 t 2 256 4 产生 941Hz 和 1209Hz 的 DTMF 信号 bitswidth 定义 bitswidth 的值 空白处可输入 3 11 任意值 y filter round Num 2 bitswidth 1 x 产生滤波结果 figure 1 plot y grid on 滤波结果波形图 title Bits Width is num2str bitswidth bits fontsize 12 pxx f periodogram y 1024 fs 计算滤波后结果的频谱 figure 2 9 plot f 20 log10 abs pxx grid on 滤波后结果的频谱图 title Bits Width is num2str bitswidth bits fontsize 12 以下是一个示例图 表示 bitswidth 3 时的滤波结果 通过不断修改 Num 的乘积因子来观察产生的频谱图 因为 DTMF 信号是两个频率的合成 其频谱图是两个脉冲 而滤 波后只有一个频率 频谱图只有一个脉冲 当观察到滤波后的频谱图中单一脉冲比较明显 两个信号的幅度差大概在 40dB 以上 时 则此时的量化位宽为最佳 2 滤波器模块设置 滤波器模块设置 点击 Tool 菜单下的 MegaWizard Plug In Manager 10 按照下图选择 在 what name do you want for the output file 栏 输入 lp fir which device family will you be using 栏 选 cyclone II 完成后点击 next 11 此时自动运行 Fir compiler megacore function 软件 出现如下界面 12 点击 step1 Parameterize 在弹出的界面 点击上部按钮 Edit Coefficient Set 13 选中 Imported Coefficient Set 并点击浏览 选择刚刚保存的滤波器系数文件 不一定如下图 只要找到你自己定义的 相应系数文件即可 14 点击 Apply Ok 按钮 按如下进行设置 15 以上窗口中的选项一般只需要设置 Coefficients Scaling Bit Width Input Number System Based on Method 并注意 Full Resolution Bit Width is 22 提示 原则是保证所使用的 Logic Cells 尽可能少 而且 Frequency Response 图 中两种颜色的线条尽量重合 点击 Finish 点击 Step2 Set up simulation 16 点击 Generate Exit 17 生成完成之后 点击 Exit 18 这时会出现如下的确认对话框 选择 Yes 表示将该 IP 生成的文件添加到该工程中去 注意 这里不要选择 No 19 3 添加模块 添加模块 添加低通滤波器模块 高通滤波器步骤类同 如图所示连接模块 20 提示 添加电源 vcc 和地 gnd 的方法如下 4 频率检测频率检测 我们就可以将滤波器输出的波形送入频率检测模块 检测出相应的频率值 将 l check v 和 h check v 两个文件拷贝到工程目录下 并添加到工程当中 生成 symbol 然后在 dtmf bdf 中添加生 成的模块 连接如下 21 图片太大 可放大后查看 最后我们进行一次综合编译 5 5 SignalTap 观察观察 下面进行 SignalTap 设置 设置如下 添加我们需要观察的 lp freq hp freq lpout hpout 其 他选项同前 22 设置完成后 点击进行编译 然后下载到芯片上 分别按下四个按键 从左到右 我们可以观察到以下结果 注意各输出显示格式如下 dout Unsigned Line Chart lpcout Unsigned Line Chart hpcout Signed Line Chart 按键 1 按键 2 23

温馨提示

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

最新文档

评论

0/150

提交评论