实验三:IIR数字滤波器的设计和实现学院:专业:班级:姓名:学号:班内序号:时间:【实验背景】数字信号处理的另一个重要应用是数字滤波器。数字滤波器是一个运算过程,将输入数列按既定的要求转换成输出数列。在数字信号的处理时只需利用数字相加、乘以常数和延时等运算,就可以完全达到传输特性的要求。数字滤波器分为无限冲激响应(IIR)和有限冲激响应(FIR)两大类。本实验用IIR数字滤波器产生双音多频DTMF拨号信号的产生,演示IIR数字滤波器在通信系统中的应用。DTMF信号是将拨号盘上的0~F共16个数字,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如下图所示。频率1209Hz1336Hz1477Hz1633Hz697Hz123A770Hz456B852Hz789C941Hz*/E0#FD【实验要求】根据ITUQ.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或每个号码100ms。每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms的其余时间是静音。在每个频率点上允许有不超过±1.5%的频率误差。任何超过给定频率±3.5%的信号,均被认为是无效的,拒绝承认接收。另外,在最坏的检测条件下,信噪比不得低于15dB。DTMF信号的编码:把您的联系电话号码DTMF编码生成为一个.wav文件。其中关键是不同频率的正弦波的产生,要求采用滤波法生成所要求的DTMF信号。【实验内容】1.实验代码:phone=input('请输入电话号码:','s');sum=length(phone);fs=8000;total_x=[];fH=[1336,1209,1336,1477,1209,1336,1477,1209,1336,1477];fL=[941,697,697,697,770,770,770,852,852,852];fori=1:sumnum=phone(i)-48+1;n=1:400;x=sin(2*pi*n*fL(num)/fs)+sin(2*pi*n*fH(num)/fs);x=[x,zeros(1,400)];total_x=[total_x,x];endaudiowrite('num_sound.wav',total_x,8000)警告:数据在写入文件期间被裁剪。InaudiowriteclipInputData(line396)Inaudiowrite(line176)sound(total_x);plot(total_x);axis([0,10000,-2,2]);title('时域波形')k=[18,20,22,25,32,35,38];N=210;tm=[49,50,51;52,53,54;55,56,57;0,48,0];fori=1:sumj=800*(i-1);X=goertzel(total_x(j+1:j+N),k+1);value=abs(X);figure(2)subplot(2,6,i);stem(k,value,'.','r');title('FFTx(n)');xlabel('k');ylabel('|X(k)|');limit=20;fori1=5:7ifvalue(i1)limitbreak;endendforj1=1:4ifvalue(j1)limitbreak;endendbuffer(i)=tm(j1,i1-4);endj=0j=800j=1600j=2400j=3200j=4000j=4800j=5600j=6400j=7200j=8000disp(['接收端检测到的号码'])接收端检测到的号码disp(setstr(buffer))为:【参考资料】《数字信号处理》《数字信号处理及其matlab实现》《离散时间信号处理》