01.课程设计内容
02.代码效果图
%参考程序:DTMF信号的产生 kcsj131s.m 差分方程法产生DTMF信号
clear
clc
fs=8000;
w=2*pi/8000*[941 1336;697 1209;697 1336;697 1477; ...770 1209;770 1336;770 1477;852 1209;852 1336;852 1477];%各信号对应的数字频率
tab=[2*cos(w) sin(w)]; %各信号满足的差分方程hL(n)和hH(n)中系数a,b的矩阵。
k=[0 5]; %数字键数组k
n=length(k); %k的长度=n
out=zeros(1,1600*n);
x=zeros(1,800);
x(2)=1;
for i=1:nhL=zeros(1,3); %hL(n)初始化hH=zeros(1,3); %hH(n)初始化for j=1:800 %迭代法求解hL(n)和hH(n),产生相应的DTMF信号存入outhL(3)=tab(k(i)+1,1)*hL(2)-hL(1)+tab(k(i)+1,3)*x(j);hL(1)=hL(2);hL(2)=hL(3);hH(3)=tab(k(i)+1,2)*hH(2)-hH(1)+tab(k(i)+1,4)*x(j);hH(1)=hH(2);hH(2)=hH(3);out(1600*(i-1)+j)=hL(3)+hH(3);out(1600*(i-1)+j+800)=0;end
end
out=out./2; %将DTMF信号存入out
subplot(211);plot(out); %画out
title('差分方程法产生的DTMF信号');
sound(out,fs) %监听DTMF信号
audiowrite('Ds.wav',out,fs); %将out存入声音文件"Ds.wav"
识别效果
获取代码请关注MATLAB科研小白的个人公众号(即文章下方二维码),并回复:MATLAB课程设计本公众号致力于解决找代码难,写代码怵。各位有什么急需的代码,欢迎后台留言~不定时更新科研技巧类推文,可以一起探讨科研,写作,文献,代码等诸多学术问题,我们一起进步。