電子科大DSP第五次實(shí)驗(yàn)報(bào)告 - 副本_第1頁(yè)
電子科大DSP第五次實(shí)驗(yàn)報(bào)告 - 副本_第2頁(yè)
電子科大DSP第五次實(shí)驗(yàn)報(bào)告 - 副本_第3頁(yè)
電子科大DSP第五次實(shí)驗(yàn)報(bào)告 - 副本_第4頁(yè)
電子科大DSP第五次實(shí)驗(yàn)報(bào)告 - 副本_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

12、SP試驗(yàn)箱七、實(shí)驗(yàn)步驟:1) 產(chǎn)生DTMF信號(hào)2) 檢測(cè)DTMF信號(hào)3) 分析結(jié)果八、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:程序:(1)基于三種方法產(chǎn)生DTMF信號(hào)的程序;#1 直接計(jì)算法產(chǎn)生DTMF信號(hào),此處產(chǎn)生0信號(hào), 其余信號(hào)只需改變FL和FH為他們獨(dú)有的的頻率即可% step 1 直接計(jì)算法生成DTMF0Ft = 8000;Tt = 1/Ft;%采樣時(shí)間t = 0:Tt:1;FL = 941;FH = 1336;%數(shù)字0對(duì)應(yīng)的兩個(gè)頻率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('低頻信號(hào)時(shí)域圖');axis(0 0.01 -1 1);subplot(4,1,2);plot(t,Y2);title('高頻信號(hào)時(shí)域圖');axis(0 0.01 -1 1);subplot(4,1,3);plot(t,Y_DTFM0);title('疊加后數(shù)字0的時(shí)域圖');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)生各個(gè)按鍵對(duì)應(yīng)的DTMF信號(hào)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信號(hào)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('低頻信號(hào)時(shí)域圖');subplot(4,1,2);plot(t/Fs,Y2);axis(0 0.01 -1 1);title('高頻信號(hào)時(shí)域圖');subplot(4,1,3);plot(t/Fs,Y_DTFM0);axis(0 0.01 -2 2);title('疊加后數(shù)字0的時(shí)域圖');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; %采樣時(shí)間t = 0:Ts:800*Ts; %時(shí)間序列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)分母多項(xiàng)式系數(shù)?b1=0 C1 0; %系統(tǒng)函數(shù)H(z)分子多項(xiàng)式系數(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)分母多項(xiàng)式系數(shù)?b2=0 C2 0; %系統(tǒng)函數(shù)H(z)分子多項(xiàng)式系數(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('低頻信號(hào)時(shí)域圖');subplot(4,1,2);plot(t,Y2);axis(0 0.01 -1 1);title('高頻信號(hào)時(shí)域圖');subplot(4,1,3);plot(t,Y_DTF

19、M0);axis(0 0.01 -2 2);title('疊加后數(shù)字0的時(shí)域圖');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為例,畫(huà)圖如下(2)基于兩種方法檢測(cè)DTMF信號(hào)的程序。%用fft對(duì)DTFM信號(hào)檢測(cè)hold onfigure,suptitle('FFT檢測(cè)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算法對(duì)DTFM信號(hào)檢測(cè)k = 18,20,22,24,31,34,38,42; %8各頻率對(duì)應(yīng)的K值hold on figure,suptitle('Geortzel檢測(cè)DTFM')for i = 1:16 X = goertzel(x(i,:),k+1); subplot(4,4,i),stem(k,abs(X)end配合直接計(jì)算的DTFM信號(hào)%用直接計(jì)算法產(chǎn)生各個(gè)按鍵對(duì)應(yīng)的DTFMfl = 697 770 852 941;fh = 1209 1336 1477 1633;Fs = 8000; %采樣率8000HzTt = 1/Fs;N = 205; %采樣點(diǎn)數(shù)205t = 0:N;figure,suptitle('DTMF with Direct Computation Method'

溫馨提示

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

評(píng)論

0/150

提交評(píng)論