數字訊號處理實驗六報告

2021-03-04 00:17:20 字數 4332 閱讀 9944

實驗六數字訊號處理在雙音多頻撥號系統中的應用

1、引言

雙音多頻(dual tone multi frequency, dtmf)訊號是音訊**中的撥號訊號,由美國at&t貝爾公司實驗室研製,並用於**網路中。這種訊號制式具有很高的撥號速度,且容易自動監測識別,很快就代替了原有的用脈衝計數方式的撥號制式。這種雙音多頻訊號制式不僅用在**網路中,還可以用於傳輸十進位制資料的其它通訊系統中,用於電子郵件和銀行系統中。

這些系統中使用者可以用**傳送dtmf訊號選擇語音選單進行操作。

dtmf訊號系統是乙個典型的小型訊號處理系統,它要用數字方法產生模擬訊號並進行傳輸,其中還用到了d/a變換器;在接收端用a/d變換器將其轉換成數碼訊號,並進行數字訊號處理與識別。為了系統的檢測速度並降低成本,還開發一種特殊的dft演算法,稱為戈澤爾(goertzel)演算法,這種演算法既可以用硬體(專用晶元)實現,也可以用軟體實現。下面首先介紹雙音多頻訊號的產生方法和檢測方法,包括戈澤爾演算法,最後進行模擬實驗。

下面先介紹**中的dtmf訊號的組成。

在**中,數字0~9的中每乙個都用兩個不同的單音訊傳輸,所用的8個頻率分成高頻帶和低頻帶兩組,低頻帶有四個頻率:679hz,770hz,852hz和941hz;高頻帶也有四個頻率:1209hz,1336hz,1477hz和1633hz.。

每乙個數字均由高、低頻帶中各乙個頻率構成,例如1用697hz和1209hz兩個頻率,訊號用表示,其中 ,。這樣8個頻率形成16種不同的雙頻訊號。具體號碼以及符號對應的頻率如表10.

6.1所示。表中最後一列在**中暫時未用。

表10.6.1 雙頻撥號的頻率分配

dtmf訊號在**中有兩種作用,乙個是用撥號訊號去控制交換機接通被叫的使用者**機,另乙個作用是控制**機的各種動作,如**留言、語音信箱等。

2 **中的雙音多頻(dtmf)訊號的產生與檢測

(1)雙音多頻訊號的產生

假設時間連續的 dtmf訊號用表示,式中是按照表10.10.1選擇的兩個頻率, 代表低頻帶中的乙個頻率,代表高頻帶中的乙個頻率。

顯然採用數字方法產生dtmf訊號,方便而且體積小。下面介紹採用數字方法產生dtmf訊號。規定用8khz對dtmf訊號進行取樣,取樣後得到時域離散訊號為

形成上面序列的方法有兩種,即計算法和查表法。用計算法求正弦波的序列值容易,但實際中要占用一些計算時間,影響執行速度。查表法是預先將正弦波的各序列值計算出來,寄存在儲存器中,執行時只要按順序和一定的速度取出便可。

這種方法要占用一定的儲存空間,但是速度快。

因為取樣頻率是8000hz,因此要求每125ms輸出乙個樣本,得到的序列再送到d/a變換器和平滑濾波器,輸出便是連續時間的dtmf訊號。dtmf訊號通過**線路送到交換機。

(2)雙音多頻訊號的檢測

在接收端,要對收到的雙音多頻訊號進行檢測,檢測兩個正弦波的頻率是多少,以判斷所對應的十進位制數字或者符號。顯然這裡仍然要用數字方法進行檢測,因此要將收到的時間連續 dtmf訊號經過a/d變換,變成數碼訊號進行檢測。檢測的方法有兩種,一種是用一組濾波器提取所關心的頻率,根據有輸出訊號的2個濾波器判斷相應的數字或符號。

另一種是用dft(fft)對雙音多頻訊號進行頻譜分析,由訊號的幅度譜,判斷訊號的兩個頻率,最後確定相應的數字或符號。當檢測的音訊數目較少時,用濾波器組實現更合適。fft是dft的快速演算法,但當dft的變換區間較小時,fft快速演算法的效果並不明顯,而且還要占用很多記憶體,因此不如直接用dft合適。

下面介紹goertzel演算法,這種演算法的實質是直接計算dft的一種線性濾波方法。這裡略去goertzel演算法的介紹(請參考文獻[19]),可以直接呼叫matlab訊號處理工具箱中戈澤爾演算法的函式goertzel,計算n點dft的幾個感興趣的頻點的值。

3 檢測dtmf訊號的dft引數選擇

用dft檢測模擬dtmf訊號所含有的兩個音訊頻率,是乙個用dft對模擬訊號進行頻譜分析的問題。根據第三章用dft對模擬訊號進行譜分析的理論,確定三個引數:(1)取樣頻率,(2)dft的變換點數n,(3)需要對訊號的觀察時間的長度。

這三個引數不能隨意選取,要根據對訊號頻譜分析的要求進行確定。這裡對訊號頻譜分析也有三個要求: (1)頻率解析度,(2)譜分析的頻譜範圍,(3)檢測頻率的準確性。

1.頻譜分析的解析度。

觀察要檢測的8個頻率,相鄰間隔最小的是第一和第二個頻率,間隔是73hz,要求dft最少能夠分辨相隔73hz的兩個頻率,即要求。dft的解析度和對訊號的觀察時間有關, 。考慮到可靠性,留有富裕量,要求按鍵的時間大於40ms。

2 頻譜分析的頻率範圍

要檢測的訊號頻率範圍是697~1633hz,但考慮到存在語音干擾,除了檢測這8個頻率外,還要檢測它們的二次倍頻的幅度大小,波形正常且干擾小的正弦波的二次倍頻是很小的,如果發現二次諧波很大,則不能確定這是dtmf訊號。這樣頻譜分析的頻率範圍為697~3266hz。按照取樣定理,最高頻率不能超過摺疊頻率,即,由此要求最小的取樣頻率應為7.

24khz。因為數字**總系統已經規定 =8khz,因此對頻譜分析範圍的要求是一定滿足的。按照 ,=8khz,算出對訊號最少的取樣點數為 。

3 檢測頻率的準確性

這是乙個用dft檢測正弦波頻率是否準確的問題。序列的n點dft是對序列頻譜函式在0~區間的n點等間隔取樣,如果是乙個週期序列,擷取週期序列的整數倍週期,進行dft,其取樣點剛好在週期訊號的頻率上,dft的幅度最大處就是訊號的準確頻率。分析這些dtmf訊號,不可能經過取樣得到週期序列,因此存在檢測頻率的準確性問題。

dft的頻率取樣點頻率為(k=0,1,2,---,n-1),相應的模擬域取樣點頻率為(k=0,1,2,---,n-1),希望選擇乙個合適的n,使用該公式算出的能接近要檢測的頻率,或者用8個頻率中的任乙個頻率代入公式中時,得到的k值最接近整數值,這樣雖然用幅度最大點檢測的頻率有誤差,但可以準確判斷所對應的dtmf頻率,即可以準確判斷所對應的數字或符號。經過分析研究認為n=205是最好的。按照=8khz,n=205,算出8個頻率及其二次諧波對應k值,和k取整數時的頻率誤差見表10.

6.2。

表10.6.2

通過以上分析,確定 =8khz,n=205, 。

4 dtmf訊號的產生與識別**實驗

下面先介紹matlab工具箱函式goertzel,然後介紹dtmf訊號的產生與識別**實驗程式。goerztel函式的呼叫格式額為

xgk=goertzel(xn,k)

xn是被變換的時域序列,用於dtmf訊號檢測時,xn就是dtmf訊號的205個取樣值。

k是要求計算的dft[xn]的頻點序號向量,用n表示xn的長度,則要求1≤k≤n。由表10.2.2可知,如果只計算dtmf訊號8個基頻時,

k=[18,20,22,24,31,34,38,42],

如果同時計算8個基頻及其二次諧波時,

k=[18,20,22,24,31,34,35,38,39,42,43,47,61,67,74,82]。

xgk是變換結果向量,其中存放的是由k指定的頻率點的dft[x(n)]的值。設x(k)= dft[x(n)],則 。

dtmf訊號的產生與識別**實驗在matlab環境下進行,編寫**程式,執行程式,送入6位**號碼,程式自動產生每一位號碼數字相應的dtmf訊號,並送出雙頻聲音,再用dft進行譜分析,顯示每一位號碼數字的dtmf訊號的dft幅度譜,安照幅度譜的最大值確定對應的頻率,再安照頻率確定每一位對應的號碼數字,最後輸出6位**號碼。

本實驗程式較複雜,所以將**程式提供給讀者,只要求讀者讀懂程式,直接執行程式**。程式名為exp6。程式分四段:

第一段(2—7行)設定引數,並讀入6位**號碼;第二段(9—20行)根據鍵入的6位**號碼產生時域離散dtmf訊號,並連續發出6位號碼對應的雙音訊聲音;第三段(22—25行)對時域離散dtmf訊號進行頻率檢測,畫出幅度譜;第四段(26—33行)根據幅度譜的兩個峰值,分別查詢並確定輸入6位**號碼。根據程式中的注釋很容易分析程式設計思想和處理演算法。程式清單如下:

%《數字訊號處理(第三版)》第十章實驗6程式:exp6.m

% dtmf雙頻撥號訊號的生成和檢測程式

%clear all;clc;

tm=[1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68]; % dtmf訊號代表的16個數

n=205;k=[18,20,22,24,31,34,38,42];

f1=[697,770,852,941]; % 行頻率向量

f2=[1209,1336,1477,1633]; % 列頻率向量

tn=input('鍵入6位**號碼= '); % 輸入6位數字

tnr=0; %接收端**號碼初值為零

for l=1:6;

d=fix(tn/10^(6-l));

tn=tn-d*10^(6-l);

for p=1:4;

for q=1:4;

if tm(p,q)==abs(d); break,end % 檢測碼相符的列號q

endif tm(p,q)==abs(d); break,end % 檢測碼相符的行號pend

數字訊號處理實驗六內容

實驗四離散時間系統的特性和離散傅利葉變換 任務一 iir系統的特性 某線性系統用差分方程表示為 1 求出系統函式,程式設計呼叫函式zplane畫出系統函式的零極圖 2 呼叫函式freqz,畫出此系統的頻率響應的幅度和相位。3 能否用編寫的dtft子函式無誤差地計算此系統的頻率響應特性?任務二 fir...

數字訊號處理實驗

一 實驗目的 研究不同型別的窗函式,研究一些不同的方法來測試窗函式的效能 專注於有關窄帶訊號的幾個不同的情形。二 實驗原理 訊號是無限長的,而在進行訊號處理時只能採用有限長訊號,所以需要將訊號 截斷 在訊號處理中,截斷 被看成是用乙個有限長的 視窗 看無限長的訊號,或者從分析的角度是無限長的訊號x ...

數字訊號處理實驗

班級 08050742 姓名 劉曉華 學號 41 實驗一頻譜分析與取樣定理 一 實驗目的 1 觀察模擬訊號經理想取樣後的頻譜變化關係。2 驗證取樣定理,觀察欠取樣時產生的頻譜混疊現象 3 加深對dft演算法原理和基本性質的理解 4 熟悉fft演算法原理和fft的應用 二 實驗原理 根據取樣定理,對給...