電子科大DSP第五次實驗報告-副本_第1頁
電子科大DSP第五次實驗報告-副本_第2頁
電子科大DSP第五次實驗報告-副本_第3頁
電子科大DSP第五次實驗報告-副本_第4頁
電子科大DSP第五次實驗報告-副本_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、電 子 科 技 大 學(xué)實 驗 報 告學(xué)生姓名: 學(xué)號: 指導(dǎo)教師: 一、實驗室名稱:數(shù)字信號處理實驗室二、實驗項目名稱:雙音多頻信號的產(chǎn)生與檢測三、實驗原理:A. 雙音多頻信號產(chǎn)生與檢測:1. 雙音多頻信號的工作原理及產(chǎn)生方法雙音多頻(DTMF, Dual-Tone Multi-Frequency)信號及其產(chǎn)生與檢測技術(shù)廣泛應(yīng)用于電話信號處理,用來完成撥號、自動重播、自助電話查詢等任務(wù)?,F(xiàn)在所用的電話,每一個數(shù)字按鍵都是由兩種頻率的單音信號組成的,這兩種單音信號被分為高頻帶和低頻帶。高低頻帶各由四個頻率組成。每一位號碼均由一個低頻帶頻率和一個高頻帶頻率疊加形成。如圖1所示是國際標(biāo)準(zhǔn)認可的數(shù)字和

2、符號鍵的頻率分配情況。圖1 鍵盤的雙音多頻方案每個按鍵對應(yīng)的DTMF信號為: (1)其中和分別是低頻單音和高頻單音。一般而言,電話中的雙音多頻信號有兩個作用:(1) 用撥號信號去控制交換機接通被叫的用戶電話機;(2) 控制電話機的各種動作,如播放留言等。2. 雙音多頻信號的常用產(chǎn)生方法如下:1) 直接計算法利用定義式(1),在MATLAB中用指令直接計算,但是運算量和實現(xiàn)成本較高。2) 查表法該方法的思想是構(gòu)造一個正/余弦函數(shù)查找表,表中所列為正/余弦函數(shù)的值,通過將表中的值以不同幅度和不同采樣間隔輸出,就可以得到任意幅度、任意頻率的正弦或余弦波。但此方法運算量雖低,但是對存儲量的要求很高。3

3、) 數(shù)字振蕩器法數(shù)字振蕩器的本質(zhì)是,使用一個IIR濾波器,通過把它的極點放在單位圓上來產(chǎn)生振蕩。利用正弦波的指數(shù)形式,可以得到正弦序列的z變換為 (2)上式在時成立,且 根據(jù)Z變換的原理和性質(zhì),可知對于給定的,可以通過反Z變換,唯一確定。因此,產(chǎn)生正弦波就等價于用上式設(shè)計一個IIR濾波器,該IIR濾波器的傳遞函數(shù)為 (3)即如圖所示系統(tǒng)。圖2 二階數(shù)字振蕩器由傳遞函數(shù)可得輸入/輸出關(guān)系為: (4)假設(shè)系統(tǒng)的輸入為單位沖激函數(shù)xn-1=n-1,即僅當(dāng)n=1時,xn-1=1,帶入上式得 (5)在n2以后,yn可以用yn-1和yn-2算出,這是一個遞歸方程。B. 雙音多頻信號的檢測原理及方法DTMF

4、信號檢測的目的,是判斷被檢測信號中是否含有相應(yīng)的DTMF頻率對。因此完成DTMF檢測的基本方法就是對信號進行頻譜分析,看對應(yīng)的頻率分量上是否出現(xiàn)能量峰值。雙音多頻信號的檢測方法主要有以下幾種:1) FFT或DFT用FFT(DFT)是對雙音多頻信號進行頻譜分析,由信號的幅度譜,判斷信號的兩個頻率,最后確定相應(yīng)的數(shù)字或符號。FFT是DFT的快速算法,但當(dāng)DFT的變換區(qū)間較小時,F(xiàn)FT快速算法的效果并不明顯,而且還要占用很多內(nèi)存,因此不如直接用DFT合適。DFT的計算式如下所示, (6)2)基于Goertzel算法的DTMF信號檢測Goertzel算法的基本思想是將每一個頻點的DFT運算轉(zhuǎn)換成一個匹

5、配濾波器,通過濾波來實現(xiàn)DFT,對(6)式進行簡單的變換可得, (7)式(7)的右邊可以看作是兩個序列和的卷積。如果定義,那么 (8)即可以看作是將和進行卷積,在第N個節(jié)拍輸出的結(jié)果。如果將看作是一個系統(tǒng)(或濾波器)的單位沖激響應(yīng),那么,Xk就是經(jīng)過該系統(tǒng)后的第 N 個輸出點。改變 k 值,可以計算不同的頻域采樣點, k = 0, 1, , N-1。所以,點DFT可以通過如圖3所示的方式實現(xiàn):將時域序列xn輸入到個系統(tǒng)中,這些系統(tǒng)的沖激響應(yīng)分別為,, 將所有輸出序列的第個輸出點收集起來,就得到xn的點 DFT。圖中的個濾波器構(gòu)成了一組并行濾波器組,因此,Goertzel算法特 別適合DFT的并

6、行實現(xiàn)和模塊化實現(xiàn)。圖3 Goertzel算法原理如果只需要計算某一個單點DFT,如,那么將輸入第個濾波器并輸出第個時刻的響應(yīng)即可。 對第個濾波器的沖激響應(yīng)進行變換, 可以得到該濾波器的系統(tǒng)傳輸函數(shù)為, (9)由上式可知,該濾波器有一個極點在處,對應(yīng)頻率為,因此濾波器 在頻率附近的響應(yīng)較大。圖4 Goertzel算法原理畫出該濾波器的幅頻響應(yīng)和相頻響應(yīng),如圖4所示。由圖可知 實際上可以看作是一個帶通濾波器,通帶中心為。因此,只有當(dāng)輸入信號的頻率在附近時,系統(tǒng)才有較大的輸出,從而檢測到該頻率成分。 同理,圖3中的每一個濾波器都是一個帶通濾波器,通帶中心分別為0,。 基于式(9)畫出濾波器的系統(tǒng)框

7、圖,如圖5(a)所示由式(9)可得系統(tǒng)輸入輸出差分方程為 (10)容易發(fā)現(xiàn),式(10)的運算量與標(biāo)準(zhǔn)DFT運算量相同,計算單點DFT仍需要次復(fù)數(shù)乘法。但是,Goertzel算法不再需要存儲旋轉(zhuǎn)因子,節(jié)省了大量的存儲空間。圖5 Goertzel算法系統(tǒng)框架圖另外,由于式(10)中仍然存在復(fù)數(shù)乘法和加法運算,而復(fù)數(shù)運算對運算量消耗 較大,因此,在實際應(yīng)用中,常對式(10)做如下變形: (11) 其對應(yīng)的系統(tǒng)框圖如圖5(b)所示。由此可得系統(tǒng)輸入輸出差分方程為 (12) 上式仍然涉及復(fù)數(shù)運算。但是,由于,因此計算DFT 只需要計算出即可,而并不需要其它的?;谶@一思想,可以先只計算圖 5(b)中的左

8、邊部分,即計算出中間節(jié)點的值,然后在第步才計算右邊部分,得到。計算過程如式(13)所示。這樣一來,如果輸入為實數(shù)序列,計算出只需要次實數(shù)乘法和1次復(fù)數(shù)乘法,其效率高于標(biāo)準(zhǔn)DFT和 5(a)所對應(yīng)的Goertzel算法實現(xiàn)方式。When , (13)Then ,由于實際應(yīng)用中,只需要檢測對應(yīng)頻率成分的有無,因此只需要得到幅度即可,而不關(guān)心相位。因此,式(13)的最后一步可以簡化為 (14)即完全消除了復(fù)數(shù)運算,并且整個系統(tǒng)只需要一個實系數(shù)。 除了以上優(yōu)點外,和FFT算法相比,Goertzel算法還可以實時在線執(zhí)行。 FFT算法需要等個輸入信號都就緒后才能開始運算,而 Goertzel 算法并不要

9、求這一點,第0個節(jié)拍只需要,第1個節(jié)拍只需要和,以此類推。從理論上講Goertzel算法只需要個節(jié)拍就能完成一個點的DFT。 另外,F(xiàn)FT算法對序列長度有要求,如基2-FFT要求必須為2的冪。而Goertzel算法可以根據(jù)實際檢測要求自行決定的取值,甚至可以使用不同的來檢測不同的DTMF 頻率。 當(dāng)然,需要指出的是,Goertzel算法各個濾波器的極點在單位圓上,因此并不是一個穩(wěn)定的IIR系統(tǒng),同時它對有限字長效應(yīng)也更加敏感。這些在實際應(yīng)用中都應(yīng)該特別加以注意。圖6 基于Goertzel算法的DTMF信號檢測框圖基于Goertzel算法的DTMF信號檢測方案如圖6所示,它由8個并行的檢測器構(gòu)成

10、,每個對應(yīng)一個DTMF頻率。每一個檢測器檢測兩個頻率,分別為DTMF頻率和它的二次諧波。檢測二次諧波的目的是為了區(qū)分一般語音信號和DTMF頻率。C. 基于DTMF檢測的應(yīng)用:圖7 基于DTMF檢測的銀行自助語音服務(wù)系統(tǒng)圖7所示為DTMF在電話銀行自動服務(wù)系統(tǒng)中的應(yīng)用。在該系統(tǒng)中,客戶根據(jù)事先設(shè)定好的語音提示通過鍵盤輸入選項和指令,如銀行賬戶號碼等??蛻糨斎氲臄?shù)字信息被轉(zhuǎn)換成DTMF信號,接收端通過檢測這些信號,還原客戶輸入的信息,并轉(zhuǎn)換成用戶指令,完成相應(yīng)的數(shù)據(jù)訪問和控制,并通過語音通道將客戶需要的信息反饋給客戶。D. 在計算中使用到的MATLAB命令:Goerztel函數(shù)的調(diào)用格式為是被變換

11、的時域序列,用于DTMF信號檢測,就是信號的采樣值序列。K是要求計算的DFT的頻點序號向量,用N表示的長度,則要求1 k N。四、實驗?zāi)康模篴) 實驗?zāi)康?. 理解DTMF信號的產(chǎn)生原理及其檢測方法;2. 提高分析和解決問題的能力;3. 提高運用數(shù)字信號處理實際問題的能力。b) 實驗任務(wù)在Matlab平臺完成雙音多頻信號的產(chǎn)生與檢測。五、實驗內(nèi)容:(1)分別基于直接計算法、查表法和數(shù)字振蕩器法,產(chǎn)生各個按鍵對應(yīng)的DTMF信號,完成相應(yīng)的MATLAB仿真;(2)分別基于FFT算法和Goertzel算法設(shè)計DTMF信號的檢測方案,完成相應(yīng)的MATLAB仿真。六、實驗器材(設(shè)備、元器件):Pc機,D

12、SP試驗箱七、實驗步驟:1) 產(chǎn)生DTMF信號2) 檢測DTMF信號3) 分析結(jié)果八、實驗數(shù)據(jù)及結(jié)果分析:程序:(1)基于三種方法產(chǎn)生DTMF信號的程序;#1 直接計算法產(chǎn)生DTMF信號,此處產(chǎn)生0信號, 其余信號只需改變FL和FH為他們獨有的的頻率即可% step 1 直接計算法生成DTMF0Ft = 8000;Tt = 1/Ft;%采樣時間t = 0:Tt:1;FL = 941;FH = 1336;%數(shù)字0對應(yīng)的兩個頻率Y1 = cos(2*pi*FL.*t);Y2 = cos(2*pi*FH.*t);Y_DTFM0 = Y1 + Y2;figure,subplot(4,1,1);plot

13、(t,Y1);title('低頻信號時域圖');axis(0 0.01 -1 1);subplot(4,1,2);plot(t,Y2);title('高頻信號時域圖');axis(0 0.01 -1 1);subplot(4,1,3);plot(t,Y_DTFM0);title('疊加后數(shù)字0的時域圖');axis(0 0.01 -2 2);subplot(4,1,4);plot(Ft/length(Y_DTFM0)*(1:length(Y_DTFM0),abs(fft(Y_DTFM0,length(Y_DTFM0);axis(900 1500

14、0 6000);title('疊加后數(shù)字0的頻域圖');結(jié)果#2 基于查表法產(chǎn)生DTMF%查表法產(chǎn)生各個按鍵對應(yīng)的DTMF信號fl = 697 770 852 941;fh = 1209 1336 1477 1633;Fs = 8000; %采樣頻率為8000Hzt = 0:1:500;cosdata = cos(2*pi*(0:511)/512); %建立查找表i =4;j=2;%此為0坐標(biāo)Y1 = cosdata(floor(mod(fl(i).*t/Fs)/(1/512),512)+1); %DTMF信號Y2 = cosdata(floor(mod(fh(j).*t/Fs

15、)/(1/512),512)+1);Y_DTFM0 = Y1 + Y2;figure,subplot(4,1,1);plot(t/Fs,Y1);axis(0 0.01 -1 1);title('低頻信號時域圖');subplot(4,1,2);plot(t/Fs,Y2);axis(0 0.01 -1 1);title('高頻信號時域圖');subplot(4,1,3);plot(t/Fs,Y_DTFM0);axis(0 0.01 -2 2);title('疊加后數(shù)字0的時域圖');subplot(4,1,4);plot(8000/length(Y

16、_DTFM0)*(1:length(Y_DTFM0),abs(fft(Y_DTFM0,length(Y_DTFM0);title('疊加后數(shù)字0的頻域圖');axis(660 1660 0 400);仍然以數(shù)字零為例,圖形為#3 數(shù)字振蕩器法產(chǎn)生DTFM%數(shù)字式自激振蕩器產(chǎn)生DTFM之0 clc,clear,close all,f1 = 941; %數(shù)字0的頻率分量f2 = 1336;ft = 8000; %采樣頻率Ts = 1/ft; %采樣時間t = 0:Ts:800*Ts; %時間序列Omega1 = 2*pi*f1;A1 = 2*cos(Omega1*Ts);B1=-1

17、;C1=sin(Omega1*Ts);%-差分方程y(n)=A*y(n-1)+B*y(n-2)+C*x(n-1)a1=1 -A1 -B1; %系統(tǒng)函數(shù)H(z)分母多項式系數(shù)?b1=0 C1 0; %系統(tǒng)函數(shù)H(z)分子多項式系數(shù)?uN1=1,zeros(1,length(t)-1);%單位沖擊序列x1=uN1; %輸入序列Y1=filter(b1,a1,x1);%濾波器輸出序列即是f1正弦波Omega2 = 2*pi*f2;A2 = 2*cos(Omega2*Ts);B2=-1;C2=sin(Omega2*Ts);%-差分方程y(n)=A*y(n-1)+B*y(n-2)+C*x(n-1)a2=

18、1 -A2 -B2; %系統(tǒng)函數(shù)H(z)分母多項式系數(shù)?b2=0 C2 0; %系統(tǒng)函數(shù)H(z)分子多項式系數(shù)?uN1=1,zeros(1,length(t)-1);x2=uN1;Y2=filter(b2,a2,x2);Y_DTFM0 = Y1 + Y2;figure,subplot(4,1,1);plot(t,Y1);axis(0 0.01 -1 1);title('低頻信號時域圖');subplot(4,1,2);plot(t,Y2);axis(0 0.01 -1 1);title('高頻信號時域圖');subplot(4,1,3);plot(t,Y_DTF

19、M0);axis(0 0.01 -2 2);title('疊加后數(shù)字0的時域圖');subplot(4,1,4);plot(8000/length(Y_DTFM0)*(1:length(Y_DTFM0),abs(fft(Y_DTFM0,length(Y_DTFM0);title('疊加后數(shù)字0的頻域圖');axis(660 1660 0 400);依舊是以數(shù)字0為例,畫圖如下(2)基于兩種方法檢測DTMF信號的程序。%用fft對DTFM信號檢測hold onfigure,suptitle('FFT檢測DTFM')for i = 1:16 H =

20、abs(fft(x(i,:),length(x(i,:); h = 8000/length(x(i,:)*(1:length(x(i,:); subplot(4,4,i),plot(h,H);end %用Geortzel算法對DTFM信號檢測k = 18,20,22,24,31,34,38,42; %8各頻率對應(yīng)的K值hold on figure,suptitle('Geortzel檢測DTFM')for i = 1:16 X = goertzel(x(i,:),k+1); subplot(4,4,i),stem(k,abs(X)end配合直接計算的DTFM信號%用直接計算法產(chǎn)生各個按鍵對應(yīng)的DTFMfl = 697 770 852 941;fh = 1209 1336 1477 1633;Fs = 8000; %采樣率8000HzTt = 1/Fs;N = 205; %采樣點數(shù)205t = 0:N;figure,suptitle('DTMF with Direct Computation Method'

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論