?? hc941a.m
字號(hào):
%《數(shù)字信號(hào)處理教程——MATLAB釋義與實(shí)現(xiàn)》第九章例9.4.1程序hc941
% DTMF雙頻撥號(hào)信號(hào)的生成和檢測(cè)程序
% 電子工業(yè)出版社出版 陳懷琛編著 2004年9月
%
%
d=input('鍵入一位電話號(hào)碼= ','s'); % 輸入一個(gè)字符
symbol=abs(d); % 求它的ASCII碼
tm=[49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68]; % 16個(gè)ASCII碼
for p=1:4;
for q=1:4;
if tm(p,q)==abs(d); break,end % 檢測(cè)碼相符的列號(hào)q
end
if tm(p,q)==abs(d); break,end % 檢測(cè)碼相符的行號(hào)p
end
f1=[697,770,852,941]; % 行頻率向量
f2=[1209,1336,1477,1633]; % 列頻率向量
n=0:2040; % 為了發(fā)聲,加長序列
x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 構(gòu)成雙頻信號(hào)
sound(x); % 發(fā)出聲音
disp('雙頻信號(hào)已經(jīng)生成并發(fā)出'),pause
% 接收檢測(cè)端的程序
k = [18 20 22 24 31 34 38 42]; % 要求的DFT樣本序號(hào)
N=205;
X=goertzel(x(1:N),k+1); % 用Goertzel算法計(jì)算八點(diǎn)DFT樣本
val = abs(X); % 列出八點(diǎn)DFT向量
stem(k,val,'.');grid;xlabel('k');ylabel('|X(k)|') % 畫出DFT(k)幅度
set(gcf,'color','w') % 置圖形背景色為白
shg,disp('圖上顯示的是檢測(cè)到的八個(gè)近似基頻的DFT幅度');pause %
limit = 80; %
for s=5:8;
if val(s) > limit, break, end % 查找列號(hào)
end
for r=1:4;
if val(r) > limit, break, end % 查找行號(hào)
end
disp(['接收端檢測(cè)到的號(hào)碼為',setstr(tm(r,s-4))]) % 顯示接收到的字符
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -