📄 dtmfproduce.m
字号:
function [dtmf,pointnum]=DTMFproduce(freq,fs,sigtime,wholetime)
%本程序的作用是利用数字正弦波滤波器的原理产生频率可以控制的音频波
%800点
%dtmf 生成的数据序列
%pointnum 生成数据序列的长度
%freq 音频频率
%fs 抽样频率
%sigtime 信号持续时间(单位:ms)
%wholetime 发送一个数字持续时间
%作者:胡正平 时间:2002.12.14
%========================调试代码=================
%freq=97;
%fs=8*10^3;
% sigtime=45;
% wholetime=100;
%===================================================
if(nargin<4)||(nargin>4)
error('输入参数个数不对');end
if(freq<0)||(fs<0)||(sigtime<0)||(wholetime<0)
error('输入参数必须大于0');end
if(fs<2*freq)
error('采样频率必须大于2倍信号频率'); end
if(wholetime<sigtime)
error('wholetime必须大于sigtime');end
pointnum=round(wholetime*10^(-3)*fs);
dtmf=zeros(1,pointnum);
dw=2*pi*freq/fs;
dtmf(1,1)=sin(dw);
dtmf(1,2)=sin(2*dw);
for i=3:1:round(sigtime*10^(-3)*fs);
dtmf(1,i)=2*cos(dw)*dtmf(1,i-1)-dtmf(1,i-2);
end
% plot(dtmf);
%=============================结束===============================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -