matlab判斷電話播鍵音,MATLAB電話撥號音的合成與識別

1.實驗目的1.本實驗內容基于對電話通信系統中撥號音合成與識別的仿真實現。主要涉及到電話撥號音合成的基本原理及識別的主要方法,利用 MATLAB 軟件以及 FFT 算法實現對電話通信系統中撥號音的合成與識別。并進一步利用 MATLAB 中的圖形用戶界面 GUI 制作簡單直觀的模擬界面。使其對電話通信系統撥號音的合成與識別有個基本的了解。

2.能夠利用矩陣不同的基頻合成 0 - 9 不同按鍵的撥號音,并能夠對不同的撥號音加以正確的識別,實現由撥號音解析出電話號碼的過程。進一步利用 GUI 做出簡單的圖形操作界面。要求界面清楚,畫面簡潔,易于理解,操作簡單。從而實現對電話撥號音系統的簡單的實驗仿真。

2.實驗原理

1. DTMF 信號的組成

雙音多頻 DTMF ( Dual Tone Multi-Frequency )信號,是用兩個特定的單音頻率信號的組合來代表數字或功能。在 DTMF 電話機中有 16 個按鍵,其中 10 個數字鍵 0 — 9 , 6 個功能鍵 * 、 # 、 A 、 B 、 C 、 D 。其中 12 個按鍵是我們比較熟悉的按鍵,另外由第 4 列確定的按鍵作為保留,作為功能鍵留為今后他用。 根據 CCITT 建議,國際上采用 697Hz 、 770Hz 、 852Hz 、 94lHz 低頻群及 1209Hz 、 1336Hz 、 1477H: 、 1633Hz 高頻群。從低頻群和高頻群任意各抽出一種頻率進行組合,共有 16 種組合,代表 16 種不同的數字鍵或功能,每個按鍵唯一地由一組行頻和列頻組成,如表 1 所示。

7610594_1.jpg

轉載請注明出處。)

DTMF 的組合功能

3.實驗步驟

1. DTMF 信號的產生合成

現在將對上節制作的圖形電話撥號面板上的各控件單位的動作和變化進行設置,即對 tu1.m 文件進行編輯。其主要的功能是使對應的按鍵,按照表 1 的對應關系產生相應的撥號音,完成對應行頻及列頻的疊加輸出。此外,對于圖形界面的需要,還要使按鍵的號碼數字顯示在撥號顯示窗口中。

鑒于 CCITT 對 DTMF 信號規定的指標,這里每個數字信號取 1000 個采樣點模擬按鍵信號,并且每兩個數字之間用 100 個 0 來表示間隔來模擬靜音。以便區別連續的兩個按鍵信號。間隔的靜音信號也是在按鍵時產生的。

以按鍵 0 為例,簡單介紹撥號音產生的過程:

% 按鍵 0 的響應函數

function varargout = pushbutton0_Callback(h, eventdata, handles, varargin)

n=[1:1000]; % 每個數字 1000 個采樣點表示

d0=sin(0.7217*n)+sin(1.0247*n); % 對應行頻列頻疊加

n0=strcat(get(handles.edit1,'string'),'0'); % 獲取數字號碼

set(handles.edit1,'string',n0); % 顯示號碼

space=zeros(1,100); %100 個 0 模擬靜音信號

global NUM

phone=[NUM,d0];

NUM=[phone,space]; % 存儲連續的撥號音信號

wavplay(d0,8192); % 產生撥號音

程序解釋:

NUM 為定義的全局變量,用于存儲連續的撥號音( DTMF )信號,包括數字信號音以及靜音信號。

d0=sin(0.7217*n)+sin(1.0247*n) 中的行頻與列頻是由表 1 中 0 鍵對應的計算得出,已知聲音取樣頻率,則取樣后。

對于保留的兩個功能鍵“ * ”“#”,按照現行鍵盤式撥號電話的習慣,將“ * ”作為刪除鍵,“#”作為確認鍵。“ * ”刪除鍵的作用是將前面撥錯的號碼刪除退回,表現為將顯示窗口已經顯示的錯誤號碼退回一位數字,并且將連續撥號音信號的存儲單元 NUM 中退回一位撥號音信號和靜音信號。刪除可以進行連續的操作。“#”確認鍵的作用是將前面撥過的號碼進行確認保留,意味著此時連續撥號音信號的存儲單元 NUM 中的信號即為最后用于識別的連續撥號音 DTMF 信號,并在顯示窗口中顯示“#”號作為標記。

% 刪除鍵的響應函數

function varargout = pushbuttonback_Callback(h, eventdata, handles, varargin)

n=[1:1000];

num=get(handles.edit1,'string');

l=length(num);

n11=strrep(num,num,num(1:l-1));

d11=sin(0.7217*n)+sin(0.9273*n);

set(handles.edit1,'string',n11);

global NUM

L=length(NUM);

NUM=NUM(1:L-1100);

wavplay(d11,8192);

2.圖形電話撥號面板的制作

利用 GUI 圖形用戶界面設計工具制作電話撥號面板,把 DTMF 信號和電話機的鍵盤矩陣對應起來。其中選用我們熟悉的 10 個數字鍵 0 — 9 , 2 個功能鍵“ * ”、“#”,另四個鍵省略。按照圖 1 電話機鍵盤矩陣的排列方式制作四行三列的按鍵控件。每個按鍵可用( Push Button )添加。

然后,為了更直觀的反應對應的按鍵號碼,可以設置一個編輯框,用于動態的顯示撥號號碼,模擬實際電話的撥號顯示窗口。編輯框可用( Edit Text )添加。

另外,為了圖形電話撥號面板的簡潔美觀,可以添加空白區域作為背景,并用靜態文本框制作文字信息。背景可用( Frame )添加,靜態文本框可用( Static Text )添加。

最終利用 GUI 圖形用戶界面設計工具生成的圖形電話撥號面板用于撥號音的合成產生部分,如下圖所示:

7610594_2.jpg

3.DTMF 信號的檢測識別

對電話撥號音( DTMF )信號的檢測識別的仿真實現,可以直接計算付里葉變換得到輸入的信號頻率。這里采用 FFT 算法對信號進行解碼分析。首先對接收到的數字信號作 FFT 分析,計算出其幅頻譜,進而得到功率譜。對于連續的雙音多頻( DTMF )信號,需要把有效的數字撥號信號從靜音間隔信號中分割提取出來,然后再用 FFT 算法對信號進行解碼分析。

MATLAB 實現信號音的識別如下:

% 信號音識別 ----------------------------------------------------------------

function varargout = pushbuttonNUM_Callback(h, eventdata, handles, varargin)

global NUM

wavplay(NUM,8192);

L=length(NUM);

n=L/1100;

number='';

for i=1:n

j=(i-1)*1100+1;

d=NUM(j:j+999); % 截取出每個數字

f=fft(d,2048); % 以 N=2048 作 FFT 變換

a=abs(f);

p=a.*a/10000; % 計算功率譜

num(1)=find(p(1:250)==max(p(1:250))); % 找行頻

num(2)=300+find(p(300:380)==max(p(300:380))); % 找列頻

if (num(1) < 180) row=1; % 確定行數

elseif (num(1) < 200) row=2;

elseif (num(1) < 220) row=3;

else row=4;

end

if (num(2) < 320) column=1; % 確定列數

elseif (num(2) < 340) column=2;

else column=3;

end

z=[row,column]; % 確定數字

if z==[4,2] tel=0;

elseif z==[1,1] tel=1;

elseif z==[1,2] tel=2;

elseif z==[1,3] tel=3;

elseif z==[2,1] tel=4;

elseif z==[2,2] tel=5;

elseif z==[2,3] tel=6;

elseif z==[3,1] tel=7;

elseif z==[3,2] tel=8;

elseif z==[3,3] tel=9;

end

t(i)=tel;

c=strcat(number,int2str(tel));

number=c;

i=i+1;

end

set(handles.edit3,'string',number);

程序解釋:

確定行頻和列頻的數值范圍是通過計算得出的:已知輸入信號的取樣頻率,而做FFT的N=2048,則頻譜分辨率為,由此可算出頻譜圖上任意點對應的頻率。例如,數字8的高、低端頻率為,則在譜圖上對應的點。

4.實驗內容實驗報告要求:(1) 簡述實驗目的及原理。(2) 打印出一個數字撥號音的頻譜圖,加以分析說明,并解釋DTMF 信號的檢測識別的原理。(3) 總結實驗得出主要結論。

轉載請注明出處。)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275638.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275638.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275638.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jquery插件之無縫循環新聞列表

一、效果圖&#xff1a; tips源碼下載&#xff1a;http://files.cnblogs.com/waitingbar/newslist.rar 二、jquery源碼: (function($){$.fn.extend({newsList:function(options){var defaults {actName:li, //顯示條數名&#xff1b;maxShowNum:6, //最多的顯示…

素描的幾大基礎知識點_2020年讓您感到驚奇的5大素描資源

素描的幾大基礎知識點Sketch is my favorite stand-alone software that I use every day. It is simple, stable, and fast. During my working process, I use other resources that allow me to create UX/UI design faster. These tools have a different direction, but s…

ESMap+Html5+SpringBoot+FastDFS實現導航導購App

github鏈接 項目實現的簡要概述 服務器部分 測試階段使用的是雙系統的開發模式&#xff0c;在Linux服務器上部署了輕量級分布式文件系統fastdfs&#xff0c;且整合了高性能的HTTP和反向代理服務器nginx&#xff1b;在本地的服務器上使用Spring Boot框架&#xff0c;使用其內置的…

你不知道的 Chrome DevTools 玩法

大家好&#xff0c;我是若川。今天再分享一篇 chrome devtools 的文章。之前分享過多篇。Chrome DevTools 全攻略&#xff01;助力高效開發 前端容易忽略的 debugger 調試技巧?筆者在前段時間的開發時&#xff0c;需要通過 Chrome DevTools來分析一個接口&#xff0c;調試中發…

matlab擬合四次函數表達式,用matlab編寫程序求以冪函數作基函數的3次、4次多項式的最小二乘曲線擬合,畫出數據散點圖及擬合曲線圖...

共回答了18個問題采納率&#xff1a;83.3%x[0.0 0.1 0.2 0.3 0.5 0.8 1.0]; %輸入數組>> y[1.0 0.41 0.50 0.61 0.91 2.02 2.46];>> f1inline(poly2sym(polyfit(x,y,3))); %polyfit擬合得到系數,poly2sym由系數得到多項式,inline轉換內聯函數>> f2inline(pol…

排版人員 快速排版_選擇排版前應了解的事項

排版人員 快速排版Design is everywhere, and with design comes text and the content that you’re trying to reach the user with. But before creating your design and choosing what font you want to use, there are some things you should know that will help you a…

matlab光順拐點,基于MATLAB的最大誤差雙圓弧逼近曲線的算法及實現.pdf

基于MATLAB的最大誤差雙圓弧逼近曲線的算法及實現.pdf第31卷第6期 基于MⅢB的最大誤差雙圓弧逼近曲線的算法及實現文章編號&#xff1a;1004—2539120町】06一唧一∞基于MAⅡ&#xff0e;AB的最大誤差雙圓弧逼近曲線的算法及實現淮海工學院機械工程系&#xff0c;扛蘇連云港笠a…

若川誠邀你加源碼共讀群,幫助更多人學會看源碼~

小提醒&#xff1a;若川視野公眾號面試、源碼等文章合集在菜單欄中間【源碼精選】按鈕&#xff0c;歡迎點擊閱讀&#xff0c;也可以星標我的公眾號&#xff0c;便于查找。回復pdf&#xff0c;可以獲取前端優質書籍。最近我創建了一個源碼共讀的前端交流群&#xff0c;希望嘗試幫…

體育木地板的施工

文章來源&#xff1a;http://www.bjfhrd.com 體育木地板上有許多暗門&#xff0c;以制造特殊效果&#xff0c;如火焰、煙霧&#xff0c;使房屋、樹木、山或人物在一瞬間出現或銷售。這種特殊的要求&#xff0c;對于專業體育木地板德施工就有了一定的要求。 專業體育木地板施工&…

imessage_重新設計iMessage以獲得更好的用戶體驗— UX案例研究

imessage體驗設計 (EXPERIENCE DESIGN) Communication is a vital part of our everyday lives. We almost don’t even have to think about it. With social media and our devices as prime tools, we’re constantly finding new ways to stay connected. Instant messagin…

mysql 生成時間軸,MYSQL 時間軸數據 獲取同一天數據的前3條

創建表數據CREATE TABLE praise_info (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ID,pic_id varchar(64) DEFAULT NULL COMMENT 圖片ID,created_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 創建時間,PRIMARY KEY (id),KEY pic_id (pic_id) USING BTREE) ENGINEInn…

【招聘】永輝招前端

大家好&#xff0c;我是若川。這應該招聘第六期。友情幫好友宣傳招聘。之前在跟各位讀者朋友分享下公眾號運營策略 文中提到 公眾號主旨是幫助5年內前端小伙伴提升&#xff0c;找到好工作&#xff0c;所以有招聘文。上海 高級前端 本科 25k-50k 16薪崗位職責&#xff1a;1、…

C語身教程第三章: C說話挨次籌算匹面(1)

&#xff23;說話挨次籌算本課先容&#xff23;說話挨次籌算的根基要領和根基的挨次語句。從挨次流程的角度來看&#xff0c;挨次可以分為三種根基構造&#xff0c; 即挨次構造、分支構造、循環構造。 這三種根基構造可以組玉成部的種種重年夜挨次。&#xff23;說話供給了多種…

插圖 引用 同一行兩個插圖_插圖的目的

插圖 引用 同一行兩個插圖If you’re a designer in tech you’ve likely come across them. Any search for UI or product design on Dribbble will yield at least a few. Amid the sea of pastel blues and pinks, accented neon purples and gamboge yellows, these facel…

php 轉碼iconv,PHP iconv()函數轉字符編碼的問題(轉)

在php函數庫有一個函數&#xff1a;iconv()&#xff0c;iconv函數庫能夠完成各種字符集間的轉換&#xff0c;是php編程中不可缺少的基礎函數庫。最近在做一個小偷程序&#xff0c;需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312&#xff0c;發現只有用iconv函數把抓取…

VSCode 竟然可以無縫調試瀏覽器了!

大家好&#xff0c;我是若川。今天周末&#xff0c;分享一篇相對比較簡單的文章。學習源碼系列、面試、年度總結、JS基礎系列。2021-07-16 微軟發布了一篇博客專門介紹了這個功能&#xff0c;VSCode 牛逼&#xff01;在此之前&#xff0c;你想要在 vscode 內調試 chrome 或者 e…

最少的編碼

Knowing how to code HTML email can bring you many opportunities, such as working as a digital designer, collaborating with front end developers, finding freelancing projects.知道如何對HTML電子郵件進行編碼可以為您帶來許多機會&#xff0c;例如擔任數字設計師&a…

Hulu CEO預計網站本年營收將達5億美元

網易科技訊 3月2日動靜&#xff0c;據國外媒體報道&#xff0c;美國在線視頻網站Hulu CEO杰森吉拉爾&#xff08;Jason Kilar&#xff09;明天不日發揮分析&#xff0c;Hulu本年告白及訂閱營收將達5億美元&#xff0c;是去年的兩倍。吉拉爾周一在由互聯網告白局舉辦的“2011年年…

webRTC——瀏覽器里的音視頻通話

背景 webRTC是Google在2010年收購GIP公司之后獲得的一項技術。如下圖所示&#xff0c;它提供了音視頻的采集、處理(降噪&#xff0c;回聲消除等)、編解碼、傳輸等技術。webRTC的目標是實現無需安裝任何插件就可以通過瀏覽器進行P2P的實時音視頻通話及文件傳輸&#xff0c;來看看…

面對 this 指向丟失,尤雨溪在 Vuex 源碼中是怎么處理的

1. 前言大家好&#xff0c;我是若川。好久以前我有寫過《面試官問系列》&#xff0c;旨在幫助讀者提升JS基礎知識&#xff0c;包含new、call、apply、this、繼承相關知識。其中寫了 面試官問&#xff1a;this 指向 文章。在掘金等平臺收獲了還算不錯的反饋。最近有小伙伴看我的…