数字信号综合实验DTMF 信号的编码[骄阳教育]_第1页
数字信号综合实验DTMF 信号的编码[骄阳教育]_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、实验二: DTMF 信号的编码1、实验内容及要求1)把您的联系电话号码 通过DTMF 编码生成为一个 .wav 文件。 技术指标: 根据 ITU Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒 10 个号码,或每个号码 100ms。 每个号码传送过程中,信号存在时间至少 45ms,且不多于 55ms,100ms 的其余时间是静音。 在每个频率点上允许有不超过 1.5% 的频率误差。任何超过给定频率 3.5% 的信号,均被认为是无效的,拒绝接收。(其中关键是不同频率的正弦波的产生。可以使用查表方式模拟产生两个不同频率的正弦波。正弦表的制定要保证合成信号的频率误差在1.5%以内,同

2、时使取样点数尽量少) 2)对所生成的DTMF文件进行解码。 DTMF 信号解码可以采用 FFT 计算 N 点频率处的频谱值,然后估计出所拨号码。但 FFT计算了许多不需要的值,计算量太大,而且为保证频率分辨率,FFT的点数较大,不利于实时实现。因此,FFT 不适合于 DTMF 信号解码的应用。 由于只需要知道 8 个特定点的频谱值,因此采用一种称为 Goertzel 算法的 IIR 滤波器可以有效地提高计算效率。其传递函数为:2、实验目的(a)复习和巩固 IIR 数字滤波器的基本概念;(b)掌握 IIR 数字滤波器的设计方法;(c)掌握 IIR 数字滤波器的实现结构;(d)能够由滤波器的实现结

3、构分析滤波器的性能(字长效应);(e)了解通信系统电话 DTMF 拨号的基本原理和 IIR 滤波器实现方法。3.设计思路及实验步骤1)编码:DTMF信号是将拨号盘上的0F共16个数字,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成,组合方式如表格所示1209hz1336hz1477hz16333hz697hz123A770hz456B852hz789C941hz*0#D根据表格即可得到各个数字对应的DTFM信号。通过zeros全零矩阵来设置占空比,以达到题目要求。得到信号后,使用sound

4、函数来播放拨号音,writewave将信号写入声音文件。2)解码:在解码时,使用Goertzel算法。滤波器调谐到这8个频率之上后,在相应的频率上的频谱值最大,通过与标准值的对比找出在DTMF图中的行和列,再对应出相应的拨号数字。由Mock确定的Goertzel算法参数,假设一次谐波的DFT长度为205,此时对应的离散频率点k的值为18、20、22、24、31、34、38、42。依次对应频率697hz,770hz,852hz,941hz,1209hz,1336hz,1447hz,1633hz。4.实验代码及实验结果1)实验代码:(我的电话号码N=400;fs=8000

5、; %每个号码100mstm=49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68; %DTMF表中键的16个ASCII码n=1:N;%取样点fl=697 770 852 941;%低频fh=1209 1336 1477 1633;%高频x01=sin(2*pi*fl(1)*n/fs)+sin(2*pi*fh(1)*n/fs); %1编码过程x02=sin(2*pi*fl(1)*n/fs)+sin(2*pi*fh(3)*n/fs); %3x03=sin(2*pi*fl(2)*n/fs)+sin(2*pi*fh(2)*n/fs); %5x04=sin(2

6、*pi*fl(1)*n/fs)+sin(2*pi*fh(2)*n/fs); %2x05=sin(2*pi*fl(1)*n/fs)+sin(2*pi*fh(1)*n/fs); %1x06=sin(2*pi*fl(3)*n/fs)+sin(2*pi*fh(3)*n/fs); %9x07=sin(2*pi*fl(1)*n/fs)+sin(2*pi*fh(1)*n/fs);%1x08=sin(2*pi*fl(2)*n/fs)+sin(2*pi*fh(3)*n/fs); %6x09=sin(2*pi*fl(1)*n/fs)+sin(2*pi*fh(3)*n/fs); %3x10=sin(2*pi*fl(

7、4)*n/fs)+sin(2*pi*fh(2)*n/fs); %0x11=sin(2*pi*fl(3)*n/fs)+sin(2*pi*fh(1)*n/fs); %7x=x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11;%组成矩阵x01_z=x01,zeros(1,400);%补零满足占空比要求x02_z=x02,zeros(1,400);x03_z=x03,zeros(1,400);x04_z=x04,zeros(1,400);x05_z=x05,zeros(1,400); %补零满足占空比要求x06_z=x06,zeros(1,400);x07_z=x0

8、7,zeros(1,400); %补零满足占空比要求x08_z=x08,zeros(1,400);x09_z=x09,zeros(1,400);x10_z=x10,zeros(1,400);x11_z=x11,zeros(1,400);x_z=x01_z,x02_z,x03_z,x04_z,x05_z,x06_z,x07_z,x08_z,x09_z,x10_z,x11_z;%组成矩阵x_z=x_z/max(abs(x_z);subplot(2,1,1);%将图示屏幕分为两行一列plot(x_z);%画图函数sound(x_z);%发出声音filename=phone.wav;%设置文件名aud

9、iowrite(filename,x_z,fs);%写入声音文件k=18 20 22 24 31 34 38 42;%解码N=205;%取依次谐波的DFT点数subplot(2,1,2);disp(解码得到的号码是:)%在命令行窗口显示for i=1:11 %对11位的已经编好码的电话号码进行解码 m=400*(i-1); X=goertzel(x(m+1:m+N),k+1); %goertzel算法做变换 v=abs(X); %求模 stem(k,v,.); %画脉冲图 grid; xlabel(k); ylabel(x(k);%作出8个点处X(K)的模值,比较最大的两个组合得到的数字即解码结果。 set(gcf,color,w);%设置图片显示背景为白色 shg;%

温馨提示

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

评论

0/150

提交评论