您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 应用IIR滤波器对双音多频信号进行解码
1应用IIR滤波器对双音多频信号进行解码实验名称应用IIR滤波器对双音多频信号进行解码实验目的综合应用信号频谱分析和IIR数字滤波器设计的知识,实现双音多频信号的解码,加深理解信号时域和频域分析的物理概念。实验环境1.微型电子计算机(PC);2.安装Windows10操作系统,MATLAB7.0等开发工具。实验原理双音多频(DTMF)信号的产生及检测在现代通信系统中有着广泛的应用,家用电话、移动电话以及公共程控交换机(PBX)都采用DTMF信号发送和接收电话拨号号码。DTMF信号由低频组和高频两组频率信号构成,其中高频为列,低频为行。按键电话上的每个按键都由对应的两个频率组成。当按下某个键时,所得到的按键信号是由相应两个频率的正弦信号相加而成:()sin()sin()HLxnnn其中2/HHsff,LLsam2π/ff,s8fkHz。可以用IIR数字滤波器对DTMF信号进行解码。如图1所示,接收到的音频信号分别通过低通和高通滤波器,由于DTMF信号的行频低于列频,所以低通和高通可以分离出行和列信息。再通过带通滤波器,对其输出的振幅大小进行判断,可以确定具体的行频和列频。如图1中所示的滤波器响应,将得到按键“4”。2低通IIR滤波器高通IIR滤波器BP697HzBP1477HzBP1336HzBP1209HzBP941HzBP852HzBP770Hz0100100图1图2实验内容和任务要求用Matlab编程完成以下问题,实验结束后提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确。(1)利用DTMF的产生原理合成数字“4”,合成公式为:4277021209()sin()sin()80008000nnxn其中0:204n,画出其时域波形和幅度谱曲线。(2)根据图中的低通和高通滤波器,画出两个滤波器的幅频响应;并利用(,,)yfilterbax函数对信号4()xn进行滤波,并输出信号的幅度谱曲线。(3)设计图1中第一组的四个带通滤波器,画出滤波器的幅频响应;并利用(,,)yfilterbax函数对图中相应的输入信号进行滤波,在一张图上用不同颜色画出这四条输出曲线。比较其幅值可知,BP770Hz滤波器的输出最大,因此确定该DTMF的行频为770Hz。3(4)设计图1中第二组的三个带通滤波器,画出滤波器的幅频响应;并利用(,,)yfilterbax函数对图中相应的输入信号进行滤波,在一张图上用不同颜色画出这三条输出曲线。比较其幅值,BP1209Hz滤波器的输出最大,因此确定该DTMF的列频为1209Hz。从(3)和(4)可以解出该DTMF信号为按键“4”。(5)生成0~9其它数字的DTMF信号,按照上述方法进行解码,验证该方法的正确性。(6)对于图1中的第一组带通滤波器的4个输出,分别用fft函数求其频响,画出幅频响应曲线。同理在一张图上用不同颜色画出第二组带通滤波器的3个输出的幅频响应曲线。实验分析本实验要求利用IIR滤波器对双音多频信号进行解码。对于问题一,我们可以利用高频和低频合成相应的时域信号以此来模拟DTMF中信号的产生;对于问题二,我们根据题目要求分别设计一个IIR低通滤波器和高通滤波器,并对问题一中产生的信号进行滤波,以此将信号中的高频和低频区分开来;对于问题三,我们分别设计四个低频带通滤波器,以此来对问题二中产生的低频信号进行第二次滤波,将滤波后的信号绘制在同一张图上,比较其幅值从而确定其行频;对于问题四,同问题三类似,设计三个高频带通滤波器对问题二中产生的高频信号进行第二次滤波,从而确定其列频;对于问题五,我们用同样的方式模拟其他数字的合成以及解码,并检验相应解码结果是否正确;对于问题六,利用FFT对滤波后的两组信号分别进行频谱分析。Matlab代码数字合成函数:function[x]=Signal(fl,fh)%生成字符信号序列函数fs=8000;N=205;n=0:N-1;t=n/fs;x=sin(2*pi*fl*t)+sin(2*pi*fh*t);滤波器函数:function[b,a,H,varagout]=Butter_My(wp,ws,Rp,Rs,w,sign)%高/低/带通滤波器的设计函数[Nm,wc]=buttord(wp,ws,Rp,Rs);%计算满足给定指标所需的最小阶数以及相应的3dB截止频率if(length(wp)1)||(wpws)%低通和带通[b,a]=butter(Nm,wc);else[b,a]=butter(Nm,wc,'high');%高通end;4ifsign==0%根据标志信号判断是否需要计算滤波器的频率响应H=freqz(b,a,w);elseH=0;End译码函数:function[result,varargout]=Translate(x)%译码函数%%初始参数设置fs=8000;N=205;n=0:N-1;t=n/fs;f=(n/N-1/2)*fs;w=f*2*pi/fs;%%IIR低通wpl=1000*2/fs;wsl=1100*2/fs;Rp=1;Rs=15;[bl,al,Hl]=Butter_My(wpl,wsl,Rp,Rs,w,nargout);%%低带通1wpl_1=[650*2/fs,750*2/fs];wsl_1=[600*2/fs,800*2/fs];[bl_1,al_1,Hl_1]=Butter_My(wpl_1,wsl_1,Rp,Rs,w,nargout);%%低带通2wpl_2=[720*2/fs,820*2/fs];wsl_2=[670*2/fs,870*2/fs];[bl_2,al_2,Hl_2]=Butter_My(wpl_2,wsl_2,Rp,Rs,w,nargout);%%低带通3wpl_3=[800*2/fs,900*2/fs];wsl_3=[750*2/fs,950*2/fs];[bl_3,al_3,Hl_3]=Butter_My(wpl_3,wsl_3,Rp,Rs,w,nargout);%%低带通4wpl_4=[890*2/fs,990*2/fs];wsl_4=[840*2/fs,1040*2/fs];[bl_4,al_4,Hl_4]=Butter_My(wpl_4,wsl_4,Rp,Rs,w,nargout);%%低频组滤波xl=filter(bl,al,x);xl_1=filter(bl_1,al_1,xl);xl_2=filter(bl_2,al_2,xl);xl_3=filter(bl_3,al_3,xl);xl_4=filter(bl_4,al_4,xl);%%IIR高通wph=1100*2/fs;wsh=1000*2/fs;[bh,ah,Hh]=Butter_My(wph,wsh,Rp,Rs,w,nargout);%%高带通1wph_1=[1110*2/fs,1310*2/fs];wsh_1=[1060*2/fs,1360*2/fs];[bh_1,ah_1,Hh_1]=Butter_My(wph_1,wsh_1,Rp,Rs,w,nargout);%%高带通2wph_2=[1240*2/fs,1440*2/fs];wsh_2=[1190*2/fs,1490*2/fs];[bh_2,ah_2,Hh_2]=Butter_My(wph_2,wsh_2,Rp,Rs,w,nargout);%%高带通3wph_3=[1380*2/fs,1580*2/fs];wsh_3=[1330*2/fs,1630*2/fs];[bh_3,ah_3,Hh_3]=Butter_My(wph_3,wsh_3,Rp,Rs,w,nargout);%%高频组滤波xh=filter(bh,ah,x);xh_1=filter(bh_1,ah_1,xh);xh_2=filter(bh_2,ah_2,xh);xh_3=filter(bh_3,ah_3,xh);ifnargout==05%%原始信号频响X=fftshift(fft(x));%%低频组滤波后频响Xl=fftshift(fft(xl));Xl_1=fftshift(fft(xl_1));Xl_2=fftshift(fft(xl_2));Xl_3=fftshift(fft(xl_3));Xl_4=fftshift(fft(xl_4));%%高频组滤波后频响Xh=fftshift(fft(xh));Xh_1=fftshift(fft(xh_1));Xh_2=fftshift(fft(xh_2));Xh_3=fftshift(fft(xh_3));%%绘制图像figure(1)subplot(2,1,1),plot(t,x);title('原始信号时域波形');xlabel('t/s');ylabel('xt');gridon;subplot(2,1,2),plot(f,abs(X));title('原始信号幅度谱');xlabel('f/Hz');ylabel('幅度');gridon;xlim([0,4000]);figure(2)subplot(3,2,1);plot(f,abs(Hl));title('低通滤波器幅频响应');xlabel('f/Hz');ylabel('幅度');gridon;xlim([0,4000]);subplot(3,2,2);plot(f,abs(Hh));title('高通滤波器幅频响应');xlabel('f/Hz');ylabel('幅度');gridon;xlim([0,4000]);subplot(3,2,3),plot(t,xl);title('低通滤波后信号时域波形');xlabel('t/s');ylabel('xt');gridon;subplot(3,2,4),plot(t,xh);title('高通滤波后信号时域波形');xlabel('t');ylabel('xt');gridon;subplot(3,2,5),plot(f,abs(Xl));title('低通滤波器滤波后信号幅度谱');xlabel('f/Hz');ylabel('幅度');gridon;xlim([0,4000]);subplot(3,2,6),plot(f,abs(Xh));title('高通滤波器滤波后信号幅度谱');xlabel('f/Hz');ylabel('幅度');gridon;xlim([0,4000]);figure(3)subplot(2,2,1);plot(f,abs(Hl_1));title('697Hz低带通滤波器幅频响应');xlabel('f/Hz');ylabel('幅度');axis([400,1000,0,1.2]);gridon;subplot(2,2,2);plot(f,abs(Hl_2));title('770Hz低带通滤波器幅频响应');xlabel('f/Hz');ylabel('幅度');axis([470,1070,0,1.2]);gridon;subplot(2,2,3);plot(f,abs(Hl_3));title('852Hz低带通滤波器幅频响应');xlabel('f/Hz');ylabel('幅度');axis([550,1150,0,1.2]);gridon;subplot(2,2,4);plot(f,abs(Hl_4));title('941Hz低带通滤波器幅频响应');xlabel('f/Hz');ylabel('幅度');axis([640,1240,0,1.2]);gridon;figure(4)subplot(2,2,1);plot(f,abs(Hh_1));title('1209Hz高带通滤波器幅频响应');xlabel('f/Hz');ylabel('幅度');axis([910,1510,0,1.2]);gridon;subplot(2,2,2);plot(f,abs(Hh_2));title('1336Hz高带通滤波器幅频响应')
本文标题:应用IIR滤波器对双音多频信号进行解码
链接地址:https://www.777doc.com/doc-2420072 .html