北邮双音多频MATLAB实验报告
双音多频拨号系统仿真设计报告

双音多频拨号系统仿真设计报告首先,我们需要了解双音多频拨号系统的原理。
在DTMF系统中,每个按键都被映射到一个由两个频率组成的音调。
这些频率包括低频组(697Hz,770Hz,852Hz,941Hz)和高频组(1209Hz,1336Hz,1477Hz,1633Hz)。
通过同时发送低频和高频信号,我们就可以识别出用户所按下的按键。
为了设计一个可靠的DTMF拨号系统,我们需要进行系统的仿真设计。
首先,我们需要使用MATLAB等工具来实现DTMF信号的产生。
这可以通过使用矩阵乘法来实现,其中每个按键对应一个DTMF信号,并且通过调整每个信号的振幅和长度来控制其音调。
在仿真时,我们可以模拟用户按下按键来产生相应的DTMF信号。
然后,我们需要设计一个数字滤波器来对DTMF信号进行分析和处理。
这个数字滤波器通常被称为带通滤波器,它可以对特定的频率范围内的信号进行增益。
为了实现这个滤波器,我们需要使用数字滤波器设计工具,例如巴特沃斯滤波器或IIR滤波器。
通过将DTMF信号传递给数字滤波器,我们可以将其分解成低频组和高频组,并且可以判断出用户所按下的按键。
通过以上的仿真设计,我们可以模拟出一个完整的双音多频拨号系统。
通过调整输入的按键和观察界面显示的结果,我们可以验证系统的正确性和可靠性。
此外,通过对系统进行性能测试,我们还可以评估系统的响应时间和稳定性等指标。
总结起来,双音多频拨号系统仿真设计报告主要介绍了DTMF系统的原理和设计过程。
通过使用MATLAB等工具,我们可以实现DTMF信号的产生和分析,并通过设计合适的数字滤波器进行信号处理。
通过设计一个交互式界面,我们可以模拟整个DTMF拨号系统的运行过程,并评估其性能和可靠性。
(最新版)MATLAB实验报告

(最新版)MATLAB实验报告实验一典型环节的MATLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、SIMULINK的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。
利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。
1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。
2.选择File菜单下New下的Model命令,新建一个simulink 仿真环境常规模板。
3.在simulink仿真环境下,创建所需要的系统。
以图1-2所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。
点击simulink下的“Continuous”,再将右边窗口中“Transfer Fen”的图标用左键拖至新建的“untitled”窗口。
2)改变模块参数。
在simulink仿真环境“untitled”窗口中双击该图标,即可改变传递函数。
其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK,即完成该模块的设置。
3)建立其它传递函数模块。
按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。
例:比例环节用“Math”右边窗口“Gain”的图标。
4)选取阶跃信号输入函数。
用鼠标点击simulink下的“Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。
5)选择输出方式。
用鼠标点击simulink下的“Sinks”,就进入输出方式模块库,通常选用“Scope”的示波器图标,将其用左键拖至新建的“untitled”窗口。
北京邮电大学_dsp_matlab实验报告

数字信号处理实验报告实验名称:数字信号处理实验学生姓名:班级:班内序号:1.实验要求假设信号x(n) 由下述信号组成:请选择合适的长度N 和窗函数,用DFT 分析其频谱,得到清楚的三根谱线。
2.实验代码和实验结果N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
北邮DSP Matlab仿真实验

《数字信号处理》Matlab 实验一. 离散信号的 FFT 分析 知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。
实验教学内容:1.用Matlab 编程上机练习。
已知: N=25。
这里Q=+。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:format long Q=+;WN=exp(-2*pi*1i/32); Xk=(1-Q^32)./(1-Q*WN.^[0:24]); xn=Q.^[0:24]; Xkfft=fft(xn,32); for (k0=1:1:25)difference=Xk(k0)-Xkfft(k0); end;subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]);0n N-1()0 n 0, n Nn Q x n ⎧≤≤=⎨<≥⎩11,011)()()(k k1nk1-=--===∑∑-=-=N k QW Q QW W n x k X N NnN N n NN n Λ,2.假设信号 x(n) 由下述信号组成:请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。
实验4 双音多频信号的合成与检测.

实验四双音多频信号的合成与检测一实验目的1.理解电话拨号音的合成与检测的基本原理;2.深入理解信号频谱分析理论中相关参数的作用和意义; 3.了解频谱分析在实际工程中的应用实例。
二实验基础双音多频(dual-tone multifrequency, DTMF信号的产生及检测在现代通信系统中有着广泛的应用,家用电话、移动电话以及公共程控交换机(PBX都采用DTMF 信号发送和接收电话拨号号码。
本实验要求利用信号的时域分析和频域分析的基本理论实现DTMF 的合成和检测。
1. DTMF信号合成DTMF 信号由低频组和高频组两组频率信号构成。
按键电话上每个按键都由对应的两个频率组成,如表4.1。
当按下某个键时,所得到的按键信号是由相应两个频率的正弦信号叠加而成。
设x(n为DTMF 信号,产生方式为:x (n =sin (ωH n +sin (ωH n式中:ωH =f s,ωL =f sf s =8KHz 。
DTMF 信号的标准是:在传送过程中每个按键字占用100ms ,其中信号必须持续至少40ms ,且不得多于55ms ,100ms 里的其余时间为静音(无信号)。
表4.1按键频率对应表2. DTMF信号检测DTMF 信号的检测是将信号的两个频率提取出来,从而确定接收到的DTMF 对应的按键。
利用DFT 对DTMF 信号进行N 点的频谱分析,N 的选取决定了频率分辨率以及捕捉N 个样值所需要的时间。
根据谱峰出现的频率点位置m 就可以确定DTMF 信号的频率f k:/k s f kf N =这样计算出的DTMF 信号频率可能与实际的DTMF 信号频率有一定的差别,但可以通过加大N 的选取来减小这种频率差异。
然而从另外一方面来考虑,虽然加大N 值会减小检测频率误差,但这势必会带来捕捉N 个样值所需要的时间增加,从而会对检测的效果造成一定影响。
由DTMF 信号频率所具有的特性不难发现要选取一定的N 值使得计算出的频率和真实的DTMF 信号的频率相一致几乎不可能,而实际中也并不需要计算出来的频率值与其真实频率相一致,只需偏差保持在±1.5%即可认为是DTMF 信号的真实频率。
北邮Matlab实验报告概论

《数字信号处理》Matlab 实验一.实现重叠相加和重叠保留算法,完成线性卷积的分段计算(可任意指定()x n 及()h n );1、 对算法的概括性说明;1)重叠相加法重叠相加法是将待过滤的信号分割成长为N 的若干段,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。
具体算法实现:建立缓存序列,每次输入N 点序列,通过计算x(n)和h(n) 的循环卷积实现线性卷积运算,将缓存的M-1点序列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M-1点,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果。
2)重叠保留法重叠保留法相当于将x l (n )和h(n )作循环卷积,然后找出循环卷积中相当于线性卷积的部分。
在这种情况下,将序列y(n)分为长为N 的若干段,每个输入段和前一段有M-1个重叠点 。
此时只需要将发生重叠的前M-1个点舍去,保留重叠的部分并输出,则可获得序列y(n)。
2、源代码及流程图;2.1 源代码:function[y] = overlap_add(x,h,N)M = length(h);if N<MN = M+1;endL = M+N-1;Lx = length(x);T = ceil(Lx/N);t = zeros(1,M-1);x = [x,zeros(1,(T+1)*N-Lx)];y = zeros(1,(T+1)*N);for i = 0:1:Txi = i*N+1;x_seg = x(xi:xi+N-1);y_seg = circular_conv(x_seg,h,L);y_seg(1:M-1) = y_seg(1:M-1)+t(1:M-1); t(1:M-1) = y_seg(N+1:L);y(xi:xi+N-1) = y_seg(1:N);endy = y(1:Lx+M-1);endfunction[y] = overlap_save(x,h,N)Lx = length(x);M = length(h);if N<MN = M+1;endL = N+M-1;t = zeros(1,M-1);T = ceil(Lx/N);x = [x,zeros(1,(T+1)*N-Lx)];y = zeros(1,(T+1)*N);for i = 0:1:Txi = i*N+1;x_seg= [t,x(xi:xi+N-1)];t = x_seg(N+1:N+M-1);y_seg = circular_conv(x_seg,h,L); y(xi:xi+N-1) = y_seg(M:N+M-1); endy = y(1:Lx+M-1);endfunction[y] = circular_conv(x1,x2,L) X1k = fft(x1,L);X2k = fft(x2,L);Yk = X1k.*X2k;y = ifft(Yk);endn = 0:9;xn = n+1;hn = [1,0,-1];N = 6;y1 = conv(hn,xn)y2 = overlap_add(xn,hn,N)y3 = overlap_save(xn,hn,N)2.2流程图1)重叠相加法2)重叠保留法3、实验结果;4、结合教材3.5.1节作运算量分析;重叠相加法和重叠保留法的算法的时间复杂度均为O(n),空间复杂度均为O(1),二者都具有较好的时间和空间复杂度。
双音多频(DTMF)通信设计的MATLAB仿真.
sm=[31 44;23 40;23 44;23 48;26 40;26 44;26 48;28 40;28 44;28 48]; %0-9对应的频率点表矩阵 for i3=1:8*n b=nnz(c(i3,:)); %b:c中≠0数据的个数; if b==2 %若b=2,则c为信号幅频谱,其 ≠ 0 的 下 标 q1 即 为 频 率 点 。 q1=find(c(i3,:)); for i4=1:10 %查表矩阵sm,将q1还原 成相应的数字键,存入AN if q1==sm(i4,:) AN(i3)=i4-1;break; end end else AN(i3)=NaN; %若b≠2,则c为间隔时间,则 AN=NaN(空信号标志) end end AN %显示解码结果AN
其余过程同第一种算法。
进一步思考:怎样用压缩空间的迭代法解差 分方程得到DTMF信号。(这种方法最接近 于实际硬件开发应用) 提示: 用hL(1),hL(2),hL(3)这三个存贮空间存放 hL(n-2),hL(n-1),hL(n); 用hH(1),hH(2),hH(3)这三个存贮空间存放 hH(n-2),hH(n-1),hH(n); 进行迭代。 每次迭代的结果马上放入out数组中。
2)产生相应的DTMF信号及间隔时间,每个信 号持续时间为100ms,间隔时间也是100ms。 (取样频率fs=8kHz),并将结果存入一个数组 中(out)。 *每个DTMF信号为多少点? ∵t=nTs=n/fs=100ms=0.1s, ∴n=tfs=0.1×8000=800点 ∴每个信号x为800点,间隔(用0表示)800点。
(可在媒体播放器中播放)程序如下:
Clear TAB=[941 1336;697 1209;697 1336;697 1477; ... 770 1209;770 1336;770 1477;852 1209; ... 852 1336;852 1477];%表矩阵TAB k=input(‘0~9’); %数字键数组k n=length(k); %k的长度=n for i=1:n %产生相应的DTMF信号 fL=TAB(k(i)+1,1);fH=TAB(k(i)+1,2); n1=800;fs=8000; j=0:1:n1-1; x=sin(2*pi*fL*j/fs)+sin(2*pi*fH*j/fs); out(1600*(i-1)+1:1600*i-800)=x; out(1600*i-799:1600*i)=0; end
MATLAB实验报告北京邮电大学
Matlab实验报告学院:信息与通信工程学院班级:201321113学号:2013210381班内序号:18姓名:石雪原实验题目1.实现重叠相加和重叠保留算法一.实验原理重叠相加法和重叠保留法的实质都是以逐段地方式通过循环卷积来完成线性卷积的计算。
将输入序列x (n)进行分段,每段长为N,且N>M(M为有限长因果序列h (n)的长度),x (n) 逐段与h (n)进行循环卷积,在重叠保留法中需在x (n)序列首部加入长度为M-1的0序列。
在算法中,在获得N个点的输入后,进行N+M-1点循环卷积计算,之后输出N个点。
通过for循环逐段进行循环卷积,使用FFT和IFFT 计算两个有限长序列的N点循环卷积结果。
二.源代码和流程图重叠相加法代码function [Y]=overpl(x,h,N)Lx=length(x); % 序列长度M=length(h); %h (n )长度x=[x,zeros(1,N-1)];t=zeros(1,M-1);Y=zeros(1,Lx+M-1);a=floor(Lx/N);for k=0:aA=x(k*N+1:k*N+N);y1=fft(A,Lx+M-1); % 利用fft 进行运算y2=fft(h,Lx+M-1);y3=y1.*y2;q=ifft(y3,Lx+M-1);Y(k*N+1:k*N+M-1)=q(1:M-1)+t(1:M-1);Y(k*N+M:k*N+N)=q(M:N);t(1:M-1)=q(N+1:N+M-1);endY(1:Lx+M-1);对应流程图图一:每段利用fft和ifft实现循环卷积图二:对X (n)逐段进行循环卷积然后相加得输出线性卷积结果y (n)重叠保留法代码fun cti on [Y]二overlpsav(x,h,N)Lx=le ngth(x);M=le ngth(h);M仁M -1;L=N-M1;h=[h,zeros(1,N-M)];图x=[zeros(1,M1),x,zeros(1,N-1)];a 二floor ((Lx+M1-1)/(L))+1; Y=zeros(1,N); for k=0:a-1 xk=x(k*L+1:k*L+N); b=fft(xk,N); C=fft(h,N); Z=b.*C;Y (k+1,:)=ifft(Z,N); end Y=Y (:,M:N): Y=( Y(:))'对应流程图装成单列向量再转置成行向量 输出输入数据 x I 各段搭接长 长度及脉冲 —\度M1,有效 响应长度k数据长度L将h 延长 至循环 长度N㈡把x 前面 加上(M- 1)个零各段进 行卷积把 K+1X N 阶输出矩 阵Y 初始 化Y 中各行均去 掉前M-1个样 Z 本,转置后构V成新的Y三.实验结果重叠相加法x=[1,2,3] h二[1,2,3] N=41 5]? 3X] 1 K 12 9 0緒=1 1 10 12 9 0重叠保留法x=[1,2,3,4,5,6,7,8,9,10] h=[1,0,-1] N=4四.结果分析(有关运算量的定量分析结果)有限长因果序列x (n)h (n)的长度分别为N和M直接计算线性卷积y (n),y(n)可视为N个序列的叠加结果,序列长度为M 所以每生成一个序列需完成M次乘法,共需完成MN次乘法运算。
基于MATLAB电话机中的双音多频DTMF信号的产生与检测PDF.
绍介理原的测检与生产号信频音双 1.2
容内和理原的测检与生产号信频音双 章二第
3
�为式格用调的数函 letzreoG leztreog 数函箱具工 BALTAM �2� 。值的点频的趣兴感个几的 TFD 点 N 算计�leztreoG 数函的法 算尔泽戈中箱具工理处号信 BALTAM 用调接直以可�绍介的法算 leztreoG 去略里这。法方波滤性线种一的 TFD 算计接直是质实的法算种这�法算 leztreoG 绍介面下。适合 TFD 用接直如不此因�存内多很用占要 还且而�显明不并果效的法算速快 TFF�时小较间区换变的 TFD 当但�法算速快的 TFD 是 TFF。适合更现 实组器波滤用�时少较目数频音的测检当。号符或字数的应相定确后最�率频个两的号信断判�谱度幅的 号信由�析分谱频行进号信频多音双对�TFF�TFD 用是种一另。号符或字数的应相断判器波滤个 2 的号信 出输有据根�率频的心关所取提器波滤组一用是种一�种两有法方的测检。测检行进号信字数成变�换变 D/A 过经号信 FMTD 续连间时的到收将要此因�测检行进法方字数用要然仍里这然显。号符者或字数制进 十的应对所断判以�少多是率频的波弦正个两测检�测检行进号信频多音双的到收对要�端收接在�1�
。用未时暂中话电在列一后最中表。示所 1 表如率频的应对号符及以码号体具。号
用号信�率频个两 zH9021 和 zH796 用 1 如例�成构率频个一各中带频低、高由均字数个一每。.zH3361 和 zH7741,zH6331,zH9021�率频个四有也带频高�zH149 和 zH258,zH077,zH976�率频个四有带频低�组 两带频低和带频高成分率频个 8 的用所�输传频音单的同不个两用都个一每中的 9~0 字数�中话电在 。验实拟模行进后最�法算 尔泽戈括包�法方测检和法方生产的号信频多音双绍介先首面下。现实件软用以可也�现实�片芯用专� 件硬用以可既法算种这�法算)leztreoG(尔泽戈为称�法算 TFD 的殊特种一发开还�本成低降并度速测检 的统系了为。别识与理处号信字数行进并�号信字数成换转其将器换变 D/A 用端收接在�器换变 A/D 了到 用还中其�输传行进并号信拟模生产法方字数用要它�统系理处号信型小的型典个一是统系号信 FMTD 。作操行进单菜音语择 选号信 FMTD 送发话电用以可户用中统系些这。中统系行银和件邮子电于用�中统系信通它其的据数制进 十输传于用以可还�中络网话电在用仅不式制号信频多音双种这。式制号拨的式方数计冲脉用的有原了替 代就快很�别识测监动自易容且�度速号拨的高很有具式制号信种这。中络网话电于用并�制研室验实司 公尔贝 T&TA 国美由�号信号拨的中话电频音是号信�FMTD ,ycneuqerF itluM enoT lauD�频多音双
基于MATLAB的双音多频拨号系统的仿真
基于MATLAB的双音多频拨号系统的仿真淮阴工学院数字信号处理课程设计报告题目:基于MATLAB的双音多频拨号系统的仿真系(院): 计算机工程学院专业:通信工程班级:学号:姓名:指导教师:顾相平学年学期: 2013 ~ 2014 学年第 1 学期2013年12月15 日摘要双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信号,由美国AT&T贝尔公司实验室研制,并用于电话网络中。
DTMF信号在电话中有两种作用,一个是用拨号信号去控制交换机接通被叫的用户电话机,另一个作用是控制电话机的各种动作,如播放留言、语音信箱等。
MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
特别是MATLAB 还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。
所以该课程设计利用MATLAB进行仿真,编写代码,运行程序,根据提示键入8位电话号码如12345678,回车后可以听见8位电话号码对应的DTMF信号的声音,并输出相应的8幅频谱图,最后显示检测到的电话号码12345678。
说明DTMF信号的参数:采样频率、DFT的变换点数以及观测时间的确定原则。
关键词多音双频频谱图采样频率目录1引言 ....................................................................................................................... - 4 - 2课程设计题目描述和要求 ................................................................................... - 6 - 3课程设计报告内容 ............................................................................................... - 7 -3.1信号的产生及算法实现....................................................................... - 7 -3.2详细设计 ............................................................................................. - 11 -3.3结果分析 ............................................................................................. - 13 - 总结 ........................................................................................................................ - 15 -1引言双音多频(Dual Tone Multi Frequency,DTMF)信号是音频电话中的拨号信号,由美国AT&T贝尔公司实验室研制,并用于电话网络中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n=0:204; for i=1:10 a1=[0,a10(i)];a2=[0,a20(i)];b1=[1,b11(i),1];b2=[1,b21(i),1]; y(i,:)=filter(a1,b1,h)+filter(a2,b2,h); %两个冲激响应相叠加 end tone=y(d+1,:); %tone 为相应的按键音(正弦函数) figure(1) for t=1:10 subplot(5,2,t) plot(n/205,y(t,:));title(strcat('数字键',num2str(t-1))); end
end disp('双音多频信号已生成并发出') disp('接收端检测到的号码: ') disp(setstr(d_out)) 程序调试截图
信号频谱图:
观察上面的频谱图,说明接收信号正好是‘78934620’ ,输入输出一致,程序运 行无误 实验总结 这次 matlab 实验明显比之前的有难度, 在掌握了第四章 IIR 数字滤波器设计相关 知识的基础上又有了新的拓展和延伸。过程中出现了一些问题,比如 GOERTZEL 函数实现, 矩阵长度不匹配导致程序不断报错,在自己的研究和同学的帮助下总 算完成了实验,对于 matlab 编程有了深入的了解
DTMF 信号检测(GOERTZEL 算法)
VK X(n) z-1 yK(n)
z-1 z-1
MATLAB 代码 f=[697 770 852 941 1209 1336 1477 1633]; fs=8000; fn=fs/N; k=f/fn; x=[ysin,zeros(1,N)]; tic;%timer start Vk(1)=0;Vk(2)=0; for i1=1:8 w=2*cos(2*pi*k(i1)/N); for j1=3:N Vk(j1)=w.*Vk(j1-1)-Vk(j1-2)+x(j1); end Xk(i1)=Vk(N).^2+Vk(N-1).^2-w*Vk(N)*Vk(N-1); end X=Xk/100; 主程序 N=205; tm=[49,50,51;52,53,54;55,56,57;0,48,0]; f=[697 770 852 941 1209 1336 1477 1633]; d_in=input('请输入电话号码: ','s'); %输入信号 d_in for l=1:8 d=d_in(l)-48; d_tone=dsin(d); %产生拨号音 sound(d_tone,8000); %播放拨号音 pause(0.2) X=GOERT(d_tone,N); % GOERT 算法求出接收端信号的频率分量 value=abs(X); figure(2) subplot(4,2,l) stem(f,value,'.');grid; set(gca,'XTick',f); title('FFT x(n)');xlabel('频率 k/Hz');ylabel('幅度|X(k)|'); limit=50; %设置门限值 for s=5:8 if value(s)>limit break; %高频门限检测 end end for r=1:4 if value(r)>limit break; %低频门限检测 end end d_out(l)=tm(r,s-4); %还原信号
实验 双音多频拨号系统 matlab 实现
xxxxxxxxxx 班 xx 号大学霸
实验内容: 把八位电话号码通过 DTMF 编码生成调制信号,并在接收端检测。 技术指标: 根据 ITU Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒 10 个号码,或每个号码 100ms。 每个号码传送过程中,信号存在时间至少 45ms,且不多于 55ms,100ms 的其余时间是静音。 在每个频率点上允许有不超过 1.5%的频率误差。任何超过给定频率 3.5% 的信号,均被认为是无效的,拒绝接收。 (其中关键是不同频率的正弦波的产生。 可以使用查表方式模拟产生两个不同频率的 正弦波。正弦表的制定要保证合成信号的频率误差在 1.5%以内,同时是取样点数尽 量少) dtmf 信号产生: 双音多频调制 DTMF 实质是将两个不同频率的正弦波予以混合相加即可得到, 所 以只要能够产生两个不同点的正弦波的函数值,再相加就可以了
δ(n) Z-1
a10 -b11 -b21
Z-1 Z-1
DAC
产生低频音 的 IIR DF
1 -b22
Z-1 Z-1
产生高频音 的 IIR DF
DTMF 生成器 其中 b21=b22=1 Matlab 代码 m=zeros(1,205);y=[m;m;m;m;m;m;m;m;m;m]; a10=[0.6736 0.5204 0.5204 0.5204 0.5686 0.5686 0.5686 0.6203 0.6203 0.6203]; a20=[0.8671 0.8131 0.8671 0.9168 0.8131 0.8671 0.9168 0.8131 0.8671 0.9168]; b11=[-1.4782 -1.7077 -1.7077 -1.7077 -1.6453 -1.6453 -1.6453 -1.5687 -1.5687 -1.5687]; b21=[-0.9964 -1.1641 -0.9964 -0.7986 -1.1641 -0.9964 -0.7986 -1.1641 -0.9964 -0.7986]; h=impseq(0,0,204); %长度为 205 的单位冲激函数