




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、版權(quán)聲明 本文內(nèi)的全部內(nèi)容均由本人編寫,可以用來參考學(xué)習(xí),但不可用來進行商業(yè)活動。一切代碼解釋權(quán)均歸作者扎楠所有。所有題目以實驗指導(dǎo)書為準(zhǔn)。 之所以制作這個word只是為了給將來和即將面對席大林老師以及他的課程的同學(xué)一些程序上的參考,避免走彎路,花更多的時間在繽紛多彩的大學(xué)生活中,不要糾結(jié)于這些瑣事。雙音多頻(DTMF)信號的檢測 姓名:學(xué)號:指導(dǎo)教師:完成時間:一、實驗?zāi)康?1) 理解DTMF信號的產(chǎn)生原理及其檢測方法(2) 提高分析和解決問題的能力(3) 提高數(shù)字信號處理的實際能力二、實驗內(nèi)容(1) 設(shè)置參數(shù),讀入電話號碼(2) 根據(jù)輸入的電話號碼產(chǎn)生包含兩個頻率分量的205點時域離散DT
2、MF信號,(3) 對時域離散DTMF信號利用Goertzel算法(參見附錄)進行頻率檢測,畫出幅度譜(4) 根據(jù)幅度譜的兩個峰值,分別查找并確定所輸入的電話號碼三、各部分工作原理1.雙音多頻信號的工作原理及產(chǎn)生 現(xiàn)在我們所用的電話中,每一個數(shù)字按鍵(包括#和*鍵) 都是由兩種頻率的單音信號組成的,這兩種單音信號被分為高頻帶和低頻帶。低頻帶有四個頻率,即697Hz,770Hz,852Hz 和941Hz;高頻帶也有四個頻率,即1209Hz,1336Hz,1447Hz 和1633Hz。每一位號碼均由一個低頻帶頻率和一個高頻帶頻率疊加形成。圖1所示是國際標(biāo)準(zhǔn)(ITU84)認(rèn)可的數(shù)字和符號鍵的頻率分配情
3、況。最右一排目前尚未應(yīng)用于開發(fā)。圖1 按鍵電話頻率配置每個按鍵對應(yīng)的DTMF信號為,其中f1為低頻單音,f2為高頻單音。電話中的雙音多頻信號有兩個作用:用撥號信號去控制交換機接通被叫的用戶電話機;控制電話機的各種動作,如播放留言、語音信箱等。用8kHz對DTMF信號進行采樣,采樣后得到時域離散信號為:由于采樣率是8kHz,因此要求每125ms輸出一個樣本,得到的序列再送到D/A變換器,它的輸出經(jīng)過平滑濾波便是連續(xù)時間的DTMF信號。DTMF信號通過電話線路再送到交換機。2.雙音多頻信號檢測原理及方法 在接收端,要對收到的雙音多頻信號進行檢測,即檢測兩個正弦波的頻率,以判斷其對應(yīng)的十進制數(shù)字或符
4、號??梢岳肈FT或者FFT對雙音多頻信號進行頻譜分析,由信號的幅度譜大致判斷出信號的兩個頻率,最后通過查表確定出對應(yīng)的數(shù)字或符號。FFT是DFT的快速算法,但當(dāng)計算的頻率點數(shù)遠小于DFT的變換區(qū)間長度時,用FFT快速算法的效果不明顯,而且還要占用很多內(nèi)存,因此不如直接用DFT合適。為了提高系統(tǒng)的檢測速度并降低成本,已開發(fā)出一種特殊的DFT算法,稱為戈澤爾算法(Goertzel)。置于參數(shù)的選擇,由于要檢測信號的頻率范圍為6971633Hz,但考慮到存在語言干擾,除了檢測這8個頻率外,還要檢測他們的二次倍頻的幅度大小。波形正常且干擾小的正弦波的二次倍頻是很小的。如果發(fā)現(xiàn)二次諧波很大,則認(rèn)為不是
5、DTMF信號。這樣頻譜分析的頻率范圍為6973266Hz(倍頻,1633x2)。按照采樣定理,信號的最高頻率不能超過折疊頻率,即0.5Fs3266Hz,由此要求最小采樣頻率為6.53kHz。這里已經(jīng)規(guī)定Fs=8kHz,因此一定滿足對頻譜分析范圍的要求。按照Tpmin=13.7ms,F(xiàn)s=8kHz,算出對信號最少的采樣點數(shù)為。為了使結(jié)果更加準(zhǔn)確,我們將N設(shè)為512.DFT的頻率采樣點頻率為,相應(yīng)地在模擬域的采樣點頻率為,希望選擇一個合適的N,用該式算出的能接近要檢測的頻率,或者用8個頻率中的任一個頻率代人中時,得到的k值最接近整數(shù)值。這樣根據(jù)最大幅度檢測的頻率雖然有誤差,但由此可以正確判斷DTM
6、F信號所表示的數(shù)值。3. 戈澤爾(Goertzel) 算法原理 Goertzel算法利用相位因子的周期性,并使我們能將DFT運算表示為線性濾波運算,由于,我們可以利用該因子去乘DFT,則有 現(xiàn)在能夠用Goertzel算法實現(xiàn)DTMF解碼器了,由于有8種可能的音頻要檢測,所以需要8個(7)式所給出的濾波器,每個濾波器調(diào)諧到這8個頻率之一上。在DTMF解碼器中,不需要計算復(fù)數(shù)值X(k),只要求出幅度值,或幅度平方值就可以了。所以,計算涉及分子項(濾波器計算的前向部分)的DFT值的最后一步可以簡化,我們有 于是,DTMF解碼器中就完全避免了復(fù)數(shù)運算。四、總系統(tǒng)圖五、程序主體部分 本程序的主體部分是戈
7、澤爾算法的實現(xiàn)和圖像的生成,這是前半個學(xué)期席大林老師信號工程處理課的核心部分與毋立芳老師數(shù)字圖像處理的精華部分的整合。 首先根據(jù)DFT的變換公式: 經(jīng)歐拉公式變換,得 就有實部和虛部分別為: Rek=Xn*cos();Imk=Xn*cos(); 求實部和虛部的平方和,再開根號就得到幅度最大值。 畫數(shù)字的頻譜圖時,具體方法如下:將橫軸上256個像素點作為0255個頻率,求一個頻率值時候,利用該頻率對應(yīng)的點數(shù),求出歸一化后的數(shù),從橫軸向上畫相應(yīng)個點數(shù),循環(huán)下去,將所有256個頻率都畫好,就得到圖。六、程序框圖七、程序結(jié)果顯示 試以10作為輸入的數(shù)字個數(shù),分別輸入1、29、0十個數(shù),在屏幕上顯示了輸
8、入數(shù)字的高頻與低頻,以及輸出的結(jié)果。在程序運行結(jié)束之后,在d:DTMFpp.bmp上畫出頻譜圖,在此文件夾中生成pp.bmp覆蓋原圖像,并把變換后的幅值存在output.txt中。得到上述10個數(shù)的頻譜圖:由于空間有限,截兩個圖。1234567890也可以利用Matlab對output文件進行繪圖:其主體程序為:subplot(2,2,1); /在2x2的空間上第一個位置畫output內(nèi)容的圖fid=fopen('d:DTMFoutput1.txt','r');myData=fread(fid,512,'double');plot(myData)
9、;grid;xlabel('1');得到1、2、9、0的圖像:和原圖比較可以知道,通過程序繪制的圖像正確。八、參考文獻1.譚浩強 C程序設(shè)計 清華大學(xué)出版社20052.胡廣書 數(shù)字信號處理導(dǎo)論 清華大學(xué)出版社20053.程佩青 數(shù)字信號處理 清華大學(xué)出版社 20124.唐向宏等 MATLAB及在電子信息類課程中的應(yīng)用 電子工業(yè)出版社 20095.魯沐浴 C語言最新編程技巧200例 電子工業(yè)出版社 19976.劉維 精通matlab與CC+混合程序設(shè)計 北航出版社 20127.岡薩雷斯 數(shù)字圖像處理 國外教材附錄、程序源代碼#include "stdio.h"
10、#include "math.h"#include "conio.h"#include "string.h"#include "windows.h"#define PI 3.1415926#define N 512 /采樣點數(shù)/將0-9,*#的高頻和低頻分量存成數(shù)組,以便畫圖和顯示時調(diào)用int gaopin12=1336,1209,1336,1477,1209,1336,1477,1209,1336,1477,1209,1477; int dipin12=941,697,697,697,770,770,770,85
11、2,852,852,941,941;int Q=0; /循環(huán)因子,目的是在一張圖上畫多個頻譜int Qm=0; /輸入多少個數(shù)就畫幾個頻譜double inputN;char jianru(void);/鍵入鍵值char Goertzel(void);/利用戈澤爾算法確定輸入數(shù)字,并畫頻譜void DTMF(char number);/構(gòu)造DTMF信號int main()char jian=0; int i; int en=0; int time=0; /輸入號碼位數(shù) int number=0; /輸入的號碼 char key50=0,ok50=0;printf("Please in
12、put how much numbers:"); for(i=0;en=0;i+)/要輸入數(shù)字的位數(shù)jian=getch(); printf("%c",jian); if(jian>47&&jian<58)time=time*10+jian-48; /ASCII轉(zhuǎn)十進制 else if(jian=13)en=1;printf("n"); printf("You have %d numbersn",time); Qm=time;/確定畫圖循環(huán)次數(shù)for(i=0;i<time;i+) keyi=
13、jianru();/讀取鍵值的ASCII碼,并轉(zhuǎn)換成對應(yīng)的數(shù)字和符號 DTMF(keyi);/根據(jù)相應(yīng)高低頻生成相應(yīng)DTMF波 oki=Goertzel(); /戈澤爾運算,求高低頻率,確定對應(yīng)的輸入,并畫圖 Q+; printf("nThe numbers are:ntt "); for(i=0;i<time;i+)printf("%d",keyi); printf("n"); return 0;/Goertzel算法char Goertzel(void) int n,k,k1=0,k2=0,loop;/k1、k2是兩個幅度最
14、大的頻率。 double ReN=0,InN=0,outputN=0,max=0,cimax=0,f1=0,f2=0,temp; /max和cimax為幅值最大和次之頻率的值 char ok=0,tu30; FILE *fp; unsigned char header1078;/圖像頭文件和像素點 unsigned char pixel2003000; int i,j;/像素點的高、寬 int m=0;/歸一化的頻率,即k的值 double l; /歸一化因子,作圖時能在有限的縱向空間顯示圖 strcpy(tu,"d:DTMFoutputx.txt"); for(k=0;k
15、<N;k+) for(n=0;n<N;n+)/使用歐拉公式將復(fù)指數(shù)化為三角函數(shù),再分別計算實部和虛部。 Rek+=inputn*cos(2*PI*n*k/N); Ink+=inputn*sin(2*PI*n*k/N); outputk=sqrt(Rek*Rek+Ink*Ink); /計算幅度譜,由幅度譜確定功率最大的頻點 if(k<(N/2) /只計算前半部分,找第一個最大值頻點if(outputk>max) k1=k; max=outputk; for(k=0;k<(N/2);k+) /找第二個最大值頻點 if(outputk!=max) if(outputk&
16、gt;cimax) k2=k; cimax=outputk; /將采樣頻點轉(zhuǎn)化為實際頻率 f1=(double)k1)*8000.0/(double)N); f2=(double)k2)*8000.0/(double)N); if(f1>f2) temp=f1; f1=f2; f2=temp;/printf("n%ft%ft%dt%dt%ft%fn",max,nmax,k1,k2,f1,f2); for(k=0;k<12;k+) /最終分析頻譜結(jié)果 if(fabs(f1-(double)dipink)<20.0&&fabs(f2-(doub
17、le)gaopink)<20.0) if(k<10) ok=k+48; else if(k=10) ok=42; else if(k=11) ok=35; break; /將計算后需要畫圖的文件先存儲,畫圖時再讀取。 tu14=ok; if(fp=fopen(tu,"wb")=NULL)printf("nsorry,can not open output.datn"); fwrite(&output,sizeof(double),N,fp); fwrite(&max,sizeof(double),1,fp); fwrite(&
18、amp;cimax,sizeof(double),1,fp); fclose(fp); if(fp=fopen("d:DTMFpp.bmp","rb")=NULL) printf("nsorry,can not open 123.bmpn"); fread(&header,1,1078,fp); fread(&pixel,1,600000,fp); fclose(fp);/根據(jù)輸入的鍵值的ASCII碼讀取相應(yīng)的文件進行畫圖if(k=48)fp=fopen("d:DTMFoutput0.txt",&q
19、uot;rb");if(k=49)fp=fopen("d:DTMFoutput1.txt","rb");if(k=50)fp=fopen("d:DTMFoutput2.txt","rb");if(k=51)fp=fopen("d:DTMFoutput3.txt","rb");if(k=52)fp=fopen("d:DTMFoutput4.txt","rb");if(k=53)fp=fopen("d:DTMFoutpu
20、t5.txt","rb");if(k=54)fp=fopen("d:DTMFoutput6.txt","rb");if(k=55)fp=fopen("d:DTMFoutput7.txt","rb");if(k=56)fp=fopen("d:DTMFoutput8.txt","rb");if(k=57)fp=fopen("d:DTMFoutput9.txt","rb");if(k=42)fp=fopen(&q
21、uot;d:DTMFoutput#.txt","rb");if(k=35)fp=fopen("d:DTMFoutput*.txt","rb"); if(fp)=NULL)printf("nsorry,can not open output.txtn"); fread(&output,sizeof(double),N,fp); fread(&max,sizeof(double),1,fp); fread(&cimax,sizeof(double),1,fp); fclose(fp);
22、 if(cimax>max) max=cimax;l=190.000/max; for(i=0;i<N;i+)outputi=(int)(outputi*l); /歸一化顯示/在圖上畫出多個數(shù)字的頻譜 for(i=Q*300+0,m=0;i<Q*300+256&&m<256&&Q<Qm;i+,m+) for(j=5;j<5+outputm;j+) pixelji=0; if(fp=fopen("d:DTMFpp.bmp","wb")=NULL) printf("nsorry,can not open 123.bmpn"); fwrite(&header,1,1078,fp); fwrite(&pixel,1,600000,fp); fclose(fp); return ok;/讀每次輸入的號
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)墻涂料采購合同范本
- 合作小區(qū)廣告合同范本
- 從化單位食堂承包合同范本
- 制造業(yè)加工合同范本
- 合作租車合同范本
- 賣房獨家合同范本
- 分手贈予合同范例
- 陳與義近體詩研究
- 朱頂紅高溫脅迫生理響應(yīng)及種質(zhì)資源耐熱性評價
- 代辦過戶協(xié)議合同范本
- 2022人教版高二英語新教材選擇性必修全四冊課文原文及翻譯(英漢對照)
- 新聞采訪與寫作-馬工程-第三章
- 房、土兩稅困難減免申請報告(參考模板)(適用于房、土兩稅困難減免一般情形)
- 網(wǎng)絡(luò)運維理論題庫
- 有機化學(xué)ppt課件(完整版)
- 2021-2022學(xué)年貴州省貴陽一中高一下學(xué)期第二次月考數(shù)學(xué)試題(原卷版)
- 三年級藍色的家園海洋教育全冊教案.
- 護理不良事件-PPT課件
- 精品污水處理廠工程重難點分析及應(yīng)對措施
- 后張法預(yù)應(yīng)力空心板梁施工方案
- 《房屋面積測算技術(shù)規(guī)程》DGJ32TJ131-2022
評論
0/150
提交評論