dtmfdial.asv

来自「很多matlab的源代码」· ASV 代码 · 共 36 行

ASV
36
字号
function dtmfsig = dtmfdial(nums,fs)
%DTMFDIAL  Create a vector of tones which will dial 
%           a DTMF (Touch Tone) telephone system.
%
% usage:  dtmfsig = dtmfdial(nums) 
%      nums = vector of numbers ranging from 1 to 12
%        fs = sampling frequency
%   dtmfsig = vector containing the corresponding tones.
%
dtmf.keys=...
    ['1','2','3','A';
     '4','5','6','B';
     '7','8','9','C';
     '*','0','#','D'];  
ff_cols=[1209,1336,1477,1633];
ff_rows=[697;770;852;941];
tone_cols = ones(4,1)*[1209,1336,1477,1633];
tone_rows = [697;770;852;941]*ones(1,4);
N=length(nums);
xx=[];
N_zero=fs*0.05;
N_data=fs*0.2;
for kk=1:N
    xx=[xx,zeros(1,N_zero)];
    [ii,jj]=find(nums(kk)==dtmf.keys);
    freq_col=tone_cols(ii,jj);
    freq_row=tone_rows(ii,jj);
    xx=[xx,...
            cos(2*pi*freq_col*(0:N_data-1)/fs)+...
            cos(2*pi*freq_row*(0:N_data-1)/fs)];
end
dtmfsig=xx;
%soundsc(xx,fs);
subplot(3,3,4);
%specgram(xx,400,fs);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?