DTMF產(chǎn)生傳輸及檢測(cè)軟件仿真課程設(shè)計(jì)_第1頁(yè)
DTMF產(chǎn)生傳輸及檢測(cè)軟件仿真課程設(shè)計(jì)_第2頁(yè)
DTMF產(chǎn)生傳輸及檢測(cè)軟件仿真課程設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩19頁(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è)計(jì)指導(dǎo)書膂 DTMF通信系統(tǒng)設(shè)計(jì)與仿真薁燕山大學(xué)信息科學(xué)與工程學(xué)院膇通信電子教研室羃 1、任務(wù)、性質(zhì)與意義薂用數(shù)學(xué)模型的方法對(duì)信息傳輸?shù)倪^(guò)程進(jìn)行仿真,是分析、設(shè)計(jì)及改進(jìn)通信系統(tǒng)性能的重要手段。本次課程設(shè)計(jì)的任務(wù)是綜合運(yùn)用通信原理、數(shù)字信號(hào)處理等課程所學(xué)知識(shí),實(shí)現(xiàn)一個(gè)雙音多頻(DTMF)信號(hào)傳輸過(guò)程的軟件仿真。罿本次課程設(shè)計(jì)的性質(zhì)是通信原理、數(shù)字信號(hào)處理等課的綜合實(shí)踐環(huán)節(jié)。它的意義在于,通過(guò)本次課程設(shè)計(jì)可以從理論上加深對(duì)有關(guān)通信、數(shù)字信號(hào)處理原理的綜合理解,了解DTMF信號(hào)原理和用數(shù)字信號(hào)處理的方法實(shí)現(xiàn) DTMF信號(hào)的產(chǎn)生、傳輸與檢測(cè)的過(guò)程。還可以從實(shí)踐能力上掌握一門新的計(jì)算機(jī)編

2、程工具M(jìn)ATLAB語(yǔ)言。羅 2、基本原理肅 2.1 雙音多頻(DTMF)信號(hào)羃 雙音多頻 (DTMF)信號(hào)就是用兩個(gè)不同頻率的音頻信號(hào)的組合來(lái)傳輸信息的一種通信信號(hào)形式,可以用數(shù)學(xué)式表示為螁s(t ) A(cos 2 f H t cos2 f L t) ( 1)羈式中 f H和 f L 分別是高頻組和低頻組的兩個(gè)信號(hào)頻率。對(duì)這兩個(gè)頻率的要求是:1、位于人而能夠聽(tīng)到的音頻頻率范圍內(nèi);2、頻率間隔近似為樂(lè)音音階的頻率間隔(按十二平均律,相鄰各個(gè)音的頻率呈等比關(guān)系,其比值約為 1.059463 ,例如 C3130.8Hz,C4=261.7Hz,D4293.7 )。這種信號(hào)在電話線路上傳輸,而且聲音悅

3、耳。在電話系統(tǒng)中,高低頻組的頻率已經(jīng)標(biāo)準(zhǔn)化,如圖1 所示。肀 DTMF最早應(yīng)用是在電話通信系統(tǒng)中作為控制信令使用的。在電話通信系統(tǒng)中,最早的控制信令是使用直流脈沖信號(hào)。 脈沖撥號(hào)方式是由接在旋轉(zhuǎn)撥盤位置上的開(kāi)關(guān)或電子開(kāi)關(guān)控制二線電路的通與斷。每撥出一位數(shù)字,都有唯一一串電流脈沖相對(duì)應(yīng),圖2 中給出了數(shù)字3的電流脈沖序列。每個(gè)脈沖周期通常為100ms,其中有40%的占空時(shí)間,在人工控制條件下,兩個(gè)相繼數(shù)字的時(shí)間間隔可以從0.5S 到數(shù)秒之間變化不等。由此可見(jiàn),利用撥號(hào)脈沖撥號(hào),發(fā)送一個(gè)10 位長(zhǎng)的號(hào)碼大約需要7 秒的時(shí)間。腿 圖 2 脈沖撥號(hào)示意圖螇 當(dāng)采用DTMF撥號(hào)方式時(shí),號(hào)碼的每一個(gè)數(shù)字用

4、一對(duì)音頻表示,話機(jī)中有8 個(gè)單音頻,分為兩組,通過(guò)撥號(hào)盤選撥號(hào)碼時(shí),各位數(shù)字由觸鍵開(kāi)關(guān)輸入,其對(duì)應(yīng)的某個(gè)頻率對(duì)(高頻和低頻)同時(shí)傳輸,圖3 所示為各頻率對(duì)應(yīng)位置。對(duì)DTMF信號(hào)所規(guī)定的指標(biāo)為:傳送速率為每秒10 個(gè)數(shù)字,即每個(gè)數(shù)字100ms。每個(gè)數(shù)字傳送過(guò)程中,信號(hào)必須存在至少45ms,且不得多于55ms,100ms 里其余時(shí)間是靜音。另外ITU( 國(guó)際電信聯(lián)盟 ) 還規(guī)定, DTMF信號(hào)在每個(gè)頻率點(diǎn)上允許有1.5%的偏移,任何超出給定3.5%的信號(hào)認(rèn)為無(wú)效,拒絕承認(rèn)接收。還規(guī)定,在最壞檢測(cè)條件下,信噪比不得低于15dB。顯然。 DTMF的撥號(hào)方式比雙脈沖撥號(hào)方式可快至10 倍,明顯縮短了撥號(hào)

5、時(shí)間。而且DTMF撥號(hào)方式發(fā)出的信號(hào)抗干擾能力大大高于脈沖撥號(hào)方式。因此,目前普遍使用DTMF撥號(hào)方式。節(jié)采用 DTMF信號(hào),用話音頻率發(fā)送數(shù)字,可以避免占用額外的信道,又比脈沖撥號(hào)方式節(jié)約時(shí)間。在通信、測(cè)量、控制、自動(dòng)服務(wù)等領(lǐng)域有著廣泛的應(yīng)用。在基于電話的各種信息服務(wù)系統(tǒng)中,廣泛使用了DTMF信號(hào)來(lái)傳送按鍵操作信息。利用這種按鍵信息,人們可以直接通過(guò)電話查詢所需要的信息以及進(jìn)行各種遠(yuǎn)程控制。在實(shí)際系統(tǒng)中, 首次撥號(hào)由程控交換機(jī)識(shí)別,完成主叫與被叫之間的接續(xù);二次乃至多次撥號(hào)的識(shí)別以及操作由用戶系統(tǒng)自己完成。 DTMF信號(hào)還可以用來(lái)在話音信道上傳送各種類型的控制指令,例如利用電話控制家用電器的

6、啟停,傳送遠(yuǎn)方的狀態(tài)監(jiān)測(cè)信息。目前DTMF信號(hào)已經(jīng)不僅僅限于在電話系統(tǒng)中應(yīng)用,在測(cè)量、控制、遙測(cè)遙控等各個(gè)領(lǐng)域都有應(yīng)用。蒁 2.2DTMF信號(hào)的硬件產(chǎn)生與檢測(cè)袁 通常是用硬件產(chǎn)生和檢測(cè)DTMF信號(hào)。已經(jīng)有多種專用的產(chǎn)生和檢測(cè)DTMF信號(hào)的集成電路器件。具有代表性的 DTMF發(fā)送、接收器的型號(hào)為MT8860,MT8862,MT8870,MT8872等。薆 DTMF信號(hào)發(fā)送器電路原理如圖3 所示,它主要包括:(1) 晶體振蕩器外接晶體( 通常采用3.58MHz) 與片內(nèi)電路構(gòu)成振蕩器、經(jīng)分頻產(chǎn)生參考信號(hào)。(2) 鍵控可變速率時(shí)鐘產(chǎn)生電路它是一種可變分頻比的分頻器,通常由 n 級(jí)移位寄存器與鍵控反饋

7、邏輯單元組成。(3) 正弦波產(chǎn)生電路它出正弦波編碼器與D A變換器構(gòu)成。通常可變速時(shí)鐘信號(hào)先經(jīng)過(guò)5 位移位寄存器,產(chǎn)生組5 位移位代碼,再由可編程邏輯陣列(PLA) 將其轉(zhuǎn)換成二進(jìn)制代碼,送到D A 變換器轉(zhuǎn)換成臺(tái)階形正弦波。顯然臺(tái)階的寬度等于時(shí)鐘頻率的倒數(shù),這樣形成的正弦波頻率必然對(duì)應(yīng)于時(shí)鐘的速率和按鍵的號(hào)碼。(4) 混合電路將鍵盤所對(duì)應(yīng)產(chǎn)生的行、列正弦波信號(hào)( 即低高群f L、f H單音 ) 相加,混合成雙音信號(hào)而輸出。(5) 附加功能單元,如含有單音抑制、輸出控制( 禁止 ) 、雙鍵向按無(wú)輸出等控制電路。袂 DTMF接收器主要包括DTMF分組濾波器和DTMF譯碼器,其基本原理如圖4 所示

8、。 DTMF接收信號(hào)先經(jīng)高、低群帶通濾波進(jìn)行 f/fH區(qū)分,然后過(guò)零檢測(cè)、比較,得到相應(yīng)于DTMF的兩路 f /fH信號(hào)輸出。該兩路信號(hào)經(jīng)譯碼、LL鎖存、緩沖,恢復(fù)成對(duì)應(yīng)于16 種 DTMF信號(hào)音對(duì)的4 比特二進(jìn)制碼 (L 1 一 L4) 。荿蚆 2.3 雙音多頻信號(hào)軟件產(chǎn)生與檢測(cè)芃 近年來(lái) DTMF也應(yīng)用在交互式控制中,諸如語(yǔ)言菜單、語(yǔ)言郵件、電話銀行和ATM終端等。將DTMF信令的產(chǎn)生與檢測(cè)集成到任一含有數(shù)字信號(hào)處理器(DSP)的系統(tǒng)中,是一項(xiàng)較有價(jià)值的工程應(yīng)用。肁 為了產(chǎn)生DTMF信號(hào), DSP用軟件產(chǎn)生兩個(gè)正弦波疊加在一起后發(fā)送,軟件具體實(shí)現(xiàn)方式可以有三種方法:莈 ( 1)用軟件模擬D

9、SP的方式產(chǎn)生兩個(gè)數(shù)字正弦波振蕩器并把輸出合成起來(lái),建立所希望的雙音頻。螆 ( 2)通過(guò)產(chǎn)生的某頻率的方波后再附加濾波器濾出二次以上的諧波,產(chǎn)生DTMF信號(hào)。蚄 ( 3)查表輸出產(chǎn)生DTMF信號(hào)。蕿 軟件檢測(cè)DTMF信號(hào)主要有以下方法:肇 ( 1)利用離散傅立葉變換(DFT) 及其快速算法(FFT) ,求取 DTMF信號(hào)頻譜的峰值點(diǎn),進(jìn)而利用峰值點(diǎn)的頻率判斷發(fā)送的數(shù)字。這種方法的缺點(diǎn)是計(jì)算量大,不利于實(shí)時(shí)處理。但是如果使用MATLAB軟件仿真則可以用很簡(jiǎn)單的幾條語(yǔ)句實(shí)現(xiàn)。袆( 2)對(duì)于 DTMF信號(hào)的波形, 波形過(guò)零點(diǎn)數(shù)量決定了低頻信號(hào)的頻率,而極值點(diǎn)數(shù)量決定了高頻信號(hào)的頻率。因此通過(guò)軟件分別

10、計(jì)算出高頻頻率和低頻頻率,從而實(shí)現(xiàn)DTMF的解碼。袁 這里選擇采樣頻率為8K,已知每一個(gè)信號(hào)的頻率至少持續(xù)40ms 的時(shí)間,我們對(duì)DTMF采樣 160 個(gè)點(diǎn),即20ms,這樣總會(huì)有一個(gè)20ms的采樣點(diǎn)全部落在40ms的發(fā)送范圍內(nèi),對(duì)采樣的點(diǎn)進(jìn)行6 次求和取平均,去掉噪聲成分,然后分別計(jì)算過(guò)零點(diǎn)的數(shù)目a 和極值點(diǎn)的數(shù)目b,對(duì)應(yīng)頻率可以計(jì)算為:芀 既然可以求出 DTMF信號(hào)的一組頻率值, 那么就可以得出對(duì)應(yīng)電話號(hào)碼值。 這種算法比較適合于單片機(jī)硬件實(shí)現(xiàn),但是其抗噪聲性能較差。袆( 3)計(jì)算接收到的DTMF信號(hào)在 8 個(gè)既定頻率的能量, 進(jìn)而確定是否有DTMF信號(hào)到達(dá)以及收到的是哪一對(duì)信號(hào),此外通過(guò)

11、計(jì)算接收信號(hào)的總能量來(lái)防止誤判。采用Geortzel算法可進(jìn)一步提高計(jì)算效率,Goertzel算法實(shí)質(zhì)是一個(gè)兩極點(diǎn)的IIR 濾波器, 對(duì)應(yīng)每一個(gè)頻點(diǎn)有一個(gè)匹配濾波器,在抽樣時(shí)刻檢測(cè)。這種方法理論上屬于最佳接收方法,而且算法有利于用DSP實(shí)現(xiàn)。在本次課程設(shè)計(jì)中要求使用這種方法。羆 DTMF解碼即是在輸入信號(hào)中搜索出有效的行頻和列頻。芁 2.4 數(shù)字正弦波振蕩器原理蚈 數(shù)字正弦波振蕩器的功能是利用數(shù)字信號(hào)處理的方法產(chǎn)生正弦波信號(hào)cos( t) 的抽樣序列cos( nT ) ?;驹硎牵毫b設(shè)數(shù)字正弦波振蕩器要產(chǎn)生的波形為肆 y( n)cos( nT )u(nT )1 (e j nT e j nT

12、)u(nT ) ( 1)2螞則其 Z 變換為莀 上式的分子與分母同時(shí)乘以z 2蚇 y(n) 可以看作是一個(gè)單位沖擊函數(shù)激勵(lì)了一個(gè)線性系統(tǒng)的沖擊響應(yīng)。這個(gè)線性系統(tǒng)的傳遞函數(shù)就是Y(z) 。由 Y(z) 可以寫出該線性系統(tǒng)的差分方程:肆式中0Ts 2 f / f s 為數(shù)字角頻率。肅 令輸入 x(n) 為單位沖擊函數(shù),即袈則可以得到下面的遞推方程蒆 當(dāng) n<0 時(shí), y(n)=0膆 當(dāng) n=0 時(shí), y(0)=0膀 當(dāng) n=1 時(shí),y(1)2 cos(0) ( 0) cos(0)x(1) cos(0)y薀 當(dāng) n=2 時(shí), y(2)2 cos( 0 ) y(1)y( 0)芅當(dāng) n>2

13、時(shí), y(n) 2 cos(0 ) y(n 1)y(n 2) (2)芅 實(shí)現(xiàn)時(shí),首先將每個(gè)頻率常數(shù)存在一個(gè)表中,用來(lái)初始化給定鍵的振蕩器;再按照(2) 進(jìn)行迭代計(jì)算,就得到正弦序列的輸出;將兩個(gè)這樣的輸出疊加即可得到雙音頻的輸出。每個(gè)數(shù)字輸出的樣本數(shù)取決于數(shù)字速率與采樣速率。雙音頻中的每一個(gè)音調(diào)之后都是同樣長(zhǎng)度的無(wú)音周期,從而可以檢測(cè)到按鍵的釋放。薁 2.5 數(shù)字匹配濾波器原理( Geortzel 算法)肈計(jì)算接收到的DTMF信號(hào)在8 個(gè)既定頻率的能量,進(jìn)而確定是否有DTMF信號(hào)到達(dá)以及收到的是哪一對(duì)信號(hào),此外通過(guò)計(jì)算接收信號(hào)的總能量來(lái)防止誤判。為滿足檢測(cè)8 個(gè)DTMF頻點(diǎn)(偏差1.5%),需

14、計(jì)算256 點(diǎn)FFT,因只對(duì) 8 個(gè)頻點(diǎn)感興趣,故可以直接計(jì)算8 個(gè)頻點(diǎn)附近的DFTN1羋 X (k)x(n) e j 2 kn / N , k k1, k2 ,k3 , k4 , k5 , k6 ,k 7 , k8n0蒞 計(jì)算數(shù)字信號(hào)的頻譜可以采用DFT及其快速算法FFT,而在實(shí)現(xiàn)DTMF解碼時(shí),采用Goertzel算法要比FFT更快。通過(guò)FFT 可以計(jì)算得到信號(hào)所有譜線,了解信號(hào)整個(gè)頻域信息,而對(duì)于DTMF信號(hào)只用關(guān)心其8 個(gè)行頻 /列頻及其二次諧波信息即可(二次諧波的信息用于將DTMF信號(hào)與聲音信號(hào)區(qū)別開(kāi))。此時(shí) Goertzel算法能更加快速地在輸入信號(hào)中提取頻譜信息。Goertzel

15、算法實(shí)質(zhì)是一個(gè)兩極點(diǎn)的IIR 濾波器,其算法原理框圖如圖5。羂圖 5Geortzel算法信號(hào)流圖螀 對(duì)應(yīng)每一個(gè)頻點(diǎn)有一個(gè)匹配濾波器,第k 個(gè)頻率匹配濾波器的傳遞函數(shù)為肇其中蒅 H k1( z)112 , H k 2 ( z)1 WNk z 1 ,2zcos kz1f kkfkk2 kN222, WN ejcos k j sin k莃kffsNN膈對(duì)應(yīng)的前、后向差分方程為:螆 后一個(gè)方程無(wú)需全部計(jì)算,只需要在n=N 時(shí)刻,即最后的輸出時(shí)刻計(jì)算。薅 如果考慮同步相位誤差,也可以在n=N時(shí)刻附近計(jì)算一段時(shí)間內(nèi)的輸出。螄前向差分方程也可以改寫為便于計(jì)算的遞歸形式:罿 并令初始值為vk ( n)0,n0

16、 。在 n=N時(shí)刻既可以得到所需要的X(k) 。衿 由于在 DTMF檢測(cè)中,輸入的信號(hào)是實(shí)數(shù)序列,并不需要檢測(cè)出8 個(gè)行頻 / 列頻的相位,只需要計(jì)算出其幅度平方即可。因此計(jì)算|X(k)|2 如下:蚅 這里 vk ( N ), vk ( N1) 分別表示狀態(tài)變量在N 和 N-1 時(shí)刻的值。羀 在輸入信號(hào)中檢測(cè)DTMF信號(hào),并將其轉(zhuǎn)換為實(shí)際的數(shù)字,這一解碼過(guò)程本質(zhì)是連續(xù)的過(guò)程,需要在輸入的數(shù)據(jù)信號(hào)流中連續(xù)地搜索 DTMF信號(hào)頻譜的存在。 整個(gè)檢測(cè)過(guò)程分兩步: 首先采用 Goertzel 算法在輸入信號(hào)中提取頻譜信息;接著作檢測(cè)結(jié)果的有效性檢查。蟻 2.6 仿真系統(tǒng)框圖莁 DTMF螂 高聿DTMF

17、信 號(hào) 的斯噪信 號(hào) 檢產(chǎn)生聲莆電話信道測(cè)螅判斷輸出薇螁 圖 6 仿真系統(tǒng)框圖膅軟件流程圖( 1)( 2) 裊輸入鍵號(hào)( 3)( 4) 膃 生成 DTMF信號(hào)(時(shí)域、頻域顯示)( 5)( 6) 艿 產(chǎn)生高斯噪聲(時(shí)域、頻域顯示)( 7)( 8) 膈 信道傳輸(高斯白噪聲信道,可選作帶限濾波器信道)( 9)( 10)羄接收端隨機(jī)延遲( 30 個(gè)點(diǎn)以內(nèi))( 11)( 12)芀匹配濾波接收( 13)( 14)羈 DTMF信號(hào)到達(dá)檢測(cè)( 15)( 16)羇 DTMF信號(hào)識(shí)別(時(shí)域、頻域顯示)( 17)( 18)肄 DTMF鍵號(hào)識(shí)別蟻 3. 工作內(nèi)容與思考題葿 3.1 工作內(nèi)容蚆 1、設(shè)計(jì)計(jì)算正弦波數(shù)字

18、振蕩器、數(shù)字匹配濾波器的參數(shù);膄 2、用 MATLAB語(yǔ)言設(shè)計(jì)一個(gè)利用 DTMF信號(hào)傳輸學(xué)號(hào)代碼的仿真系統(tǒng)。觀察下列信號(hào)的波形:學(xué)號(hào)代碼的非歸零基帶信號(hào)、 DTMF信號(hào)、信道加入噪聲、接收信號(hào)、匹配濾波器輸出、譯碼判決結(jié)果;肂 3、利用仿真的系統(tǒng)進(jìn)行抗干擾性能等方面的試驗(yàn)分析,試驗(yàn)分析的具體內(nèi)容詳見(jiàn)思考題。膁 3.2 思考題蝿 1 分析 DTMF信號(hào)的頻譜,為什么 DTMF信號(hào)能夠在電話信道傳輸,要求的帶寬為多少?芄 2 設(shè)信噪比分別為 20dB,10dB,0dB,-6dB ,-10dB , -20dB ,分析在理想(信道無(wú)失真)情況下,仿真計(jì)算誤碼率與信噪比的關(guān)系,并與理論分析結(jié)果比較。蒃

19、3 仿真分析匹配濾波器中心頻率誤差對(duì)DTMF信號(hào)檢測(cè)有什么影響?薈 4 仿真分析 DTMF信號(hào)的時(shí)間長(zhǎng)度對(duì)信號(hào)的檢測(cè)有什么影響?蒈 5 如果在匹配濾波器前插入 FIR 帶通濾波器,通頻帶在 600-1800Hz 之間。用窗函數(shù)法設(shè)計(jì) FIR帶通濾波器,并分析插入帶通濾波器對(duì)檢測(cè)性能有什么影響?芄 4 設(shè)計(jì)要求袃 1、自學(xué)復(fù)習(xí)通信原理、數(shù)字信號(hào)處理的有關(guān)內(nèi)容,掌握算法原理;莀 2、掌握 MATLAB語(yǔ)言的使用;芆 3、完整實(shí)現(xiàn)仿真系統(tǒng),發(fā)送自己的學(xué)號(hào),接收自己的學(xué)號(hào);莄 4、記錄觀察到的各種波形;羀 5、撰寫課程設(shè)計(jì)報(bào)告。螈 報(bào)告統(tǒng)一使用B5 紙,統(tǒng)一報(bào)告封面, 報(bào)告篇幅以3000 字為宜。 報(bào)

20、告中要有設(shè)計(jì)目的;設(shè)計(jì)基本內(nèi)容及步驟;每一步中應(yīng)用的原理方法;試驗(yàn)仿真結(jié)果及相關(guān)波形;對(duì)試驗(yàn)結(jié)果進(jìn)行的性能分析。報(bào)告正文用手寫,圖、程序可以打印作為附件。肅 5編程工具 MATLAB簡(jiǎn)介(亦可以采用 C語(yǔ)言、 C+、VC、 VB等編程語(yǔ)言實(shí)現(xiàn))蒄 5.1 基本運(yùn)算與函數(shù)莁 在 MATLAB下進(jìn)行基本數(shù)學(xué)運(yùn)算,只需將運(yùn)算式直接打入提示號(hào)(>>)之后,并按入Enter 鍵即可。例如:蒀 >>(5*2+1.3-0.8)*10/25肈 ans=薃 4.2000螂 MATLAB會(huì)將運(yùn)算結(jié)果直接存入一變量ans,代表 MATLAB運(yùn)算后的答案 ( Answer),并顯示其數(shù)值于屏幕

21、上。 (為簡(jiǎn)便起見(jiàn), 在下述各例中, 我們不再印出MATLAB的提示號(hào)。)我們也可將上述運(yùn)算式的結(jié)果設(shè)定給另一個(gè)變量x:羈 x=(5*2+1.3-0.8)*102/25袇 x=蚃 42芃 此時(shí) MATLAB會(huì)直接顯示x 的值。若不想讓MATLAB每次都顯示運(yùn)算結(jié)果,只需在運(yùn)算式最後加上分號(hào)(;)即可。蝕 由上例可知,MATLAB認(rèn)識(shí)所有一般常用到的加(+)、減( - )、乘( * )、除( / )的數(shù)學(xué)運(yùn)算符號(hào),以及冪次運(yùn)算( )。MATLAB將所有變量均存成double 的形式,所以不需經(jīng)過(guò)變量聲明。MATLAB同時(shí)也會(huì)自動(dòng)進(jìn)行存儲(chǔ)器的使用和回收,而不必像C 語(yǔ)言,必須由使用者一一指定。蚆變

22、量也可用來(lái)存放向量或矩陣,并進(jìn)行各種運(yùn)算,如下例的行向量(Rowvector )運(yùn)算:螃 x=1352;蚄 y=2*x+1膈 y=蠆 37115袃 5.2 控制命令螁 5.2.1 for 語(yǔ)句,其基本形式為:袀for 變量 =矩陣;蒈運(yùn)算式;袃end膂 其中變量的值會(huì)被依次設(shè)定為矩陣的每一行,來(lái)執(zhí)行介于for和 end 之間的運(yùn)算式。因此,若無(wú)意外情況,運(yùn)算式執(zhí)行的次數(shù)會(huì)等于矩陣的行數(shù)。薁 舉例來(lái)說(shuō),下列命令會(huì)產(chǎn)生一個(gè)長(zhǎng)度為6 的調(diào)和數(shù)列:膇 x=zeros(1,6);%x 是一個(gè) 16 的零矩陣羃 fori=1:6,薂 x(i)=1/i;罿 end羅 5.2.2while 語(yǔ)句肅基本形式為:

23、羃while條件式;螁運(yùn)算式;羈end膃也就是說(shuō),只要條件示成立,運(yùn)算式就會(huì)一再被執(zhí)行。例如先前產(chǎn)生調(diào)和數(shù)列的例子,我們可用圈改寫如下:肀 x=zeros(1,6);%x 是一個(gè) 16 的零矩陣腿 i=1;螇 whilei<=6,節(jié) x(i)=1/i;蒁 i=i+1;袁 end薆 5.2.3 條件語(yǔ)句 if,.,end薆基本形式為:袂 if 條件式;荿運(yùn)算式;蕿 end蚆例:芃 ifrand(1,1)>0.5,肁 disp('Givenrandomnumberisgreaterthan0.5.');莈 end螆 5.2.4 MATLAB文件蚄若要一次執(zhí)行大量的MAT

24、LAB命令,可將這些命令存放于一個(gè)擴(kuò)展名為m的文件。包含MATLAB命令的文件都以m為擴(kuò)展名,因此通稱m文件,只要直接鍵入文件名,就可執(zhí)行其所包含的命令。嚴(yán)格來(lái)說(shuō),m文件可再細(xì)分為命令集(Scripts)及函數(shù)(Functions)。蕿命令集的效果和將命令逐一輸入完全一樣,因此若在命令集可以直接使用工作空間的變量,而且在命令集中設(shè)定的變量,也都在工作空間中看得到。肇 函數(shù)則需要用到輸入?yún)?shù)和輸出參數(shù)來(lái)傳遞變量,這就像是C 語(yǔ)言的函數(shù)。在調(diào)用函數(shù)時(shí),你只能經(jīng)由輸入?yún)?shù)來(lái)控制函數(shù)的輸入,經(jīng)由輸出參數(shù)來(lái)得到函數(shù)的輸出,但所有的暫時(shí)變量都會(huì)隨著函數(shù)的結(jié)束而消失。袆 5.3 MATLAB常用的數(shù)學(xué)函數(shù)袁

25、 abs(x) :標(biāo)量的絕對(duì)值或向量的長(zhǎng)度芀 angle(z) :復(fù)數(shù) z 的相角 (Phaseangle)袆 sqrt(x) :開(kāi)平方羆 real(z) :復(fù)數(shù) z 的實(shí)部芁 imag(z) :復(fù)數(shù) z 的虛部蚈 conj(z) :復(fù)數(shù) z 的共軛復(fù)數(shù)羈 round(x) :四舍五入至最近整數(shù)肆 fix(x) :無(wú)論正負(fù),舍去小數(shù)至最近整數(shù)螞 sign(x):符號(hào)函數(shù)。當(dāng)x<0 時(shí), sign(x)=-1;當(dāng) x=0 時(shí), sign(x)=0;當(dāng) x>0 時(shí), sign(x)=1。莀 rem(x,y) :求 x 除以 y 的余數(shù)蚇 gcd(x,y) :整數(shù) x 和 y 的最大公因

26、數(shù)肆 lcm(x,y) :整數(shù) x 和 y 的最小公倍數(shù)肅 exp(x) :自然指數(shù)袈 pow2(x) : 2 的指數(shù)蒆 log(x):以 e 為底的對(duì)數(shù),即自然對(duì)數(shù)或膆 log2(x):以 2 為底的對(duì)數(shù)膀 log10(x) :以 10 為底的對(duì)數(shù)薀 sin(x) :正弦函數(shù)芅 cos(x) :余弦函數(shù)芅 tan(x) :正切函數(shù)薁 asin(x) :反正弦函數(shù)肈 acos(x) :反馀弦函數(shù)羋 atan(x) :反正切函數(shù)蒞 min(x): 向量 x 的元素的最小值羂 max(x): 向量 x 的元素的最大值螀 sort(x):對(duì)向量 x 的元素進(jìn)行排序(Sorting)肇 length(

27、x): 向量 x 的元素個(gè)數(shù)蒅 sum(x): 向量 x 的元素總和莃 cumsum(x): 向量 x 的累計(jì)元素總和膈 dot(x,y): 向量 x 和 y 的內(nèi)積螆 cross(x,y): 向量 x 和 y 的外積薅 5.4MATLAB繪圖螄 MATLAB不但擅長(zhǎng)于矩陣相關(guān)的數(shù)值運(yùn)算,還適合于各種科學(xué)繪圖。這里簡(jiǎn)介幾種基本平面繪圖命令。罿 plot是繪制一維曲線的基本函數(shù),但在使用此函數(shù)之前,需要先定義曲線上每一點(diǎn)的x 及 y 座標(biāo)。下例可畫出一條正弦曲線:衿 closeall;x=linspace(0,2*pi,100);%100個(gè)點(diǎn)的 x 座標(biāo)蚅 y=sin(x);% 對(duì)應(yīng)的 y 座標(biāo)

28、羀 plot(x,y);蟻 MATLAB基本繪圖函數(shù)薇 plot:x軸和 y 軸均為線性刻度(Linearscale)蚅 loglog:x軸和 y 軸均為對(duì)數(shù)刻度(Logarithmicscale)莁 semilogx:x 軸為對(duì)數(shù)刻度, y 軸為線性刻度聿 semilogy:x 軸為線性刻度, y 軸為對(duì)數(shù)刻度莆 若要畫出多條曲線,只需將座標(biāo)對(duì)依次放入plot函數(shù)即可:螅 plot(x,sin(x),x,cos(x);螂若要改變顏色,在座標(biāo)對(duì)後面加上相關(guān)字串即可:螁 plot(x,sin(x),'c',x,cos(x),'g');膅 若要同時(shí)改變顏色及圖線型態(tài)

29、(Linestyle),也是在座標(biāo)對(duì)後面加上相關(guān)字串即可:裊 plot(x,sin(x),'co',x,cos(x),'g*');膃 plot 繪圖函數(shù)的叁數(shù)艿字符顏色字符圖線型態(tài)膈y黃色.點(diǎn)羄k黑色o圓芀w白色xx羈b藍(lán)色+羇肄蟻葿g綠色*r紅色-實(shí)線c亮青色:點(diǎn)線m錳紫色-.點(diǎn)虛線蚆 用 subplot來(lái)同時(shí)畫出數(shù)個(gè)小圖形于同一個(gè)視窗之中:例如:膄 subplot(2,2,1);plot(x,sin(x);肂 subplot(2,2,2);plot(x,cos(x);膁 5.5MATLAB幫助蝿 MATLAB功能強(qiáng)大,命令眾多,很難記全,但是MATLAB提供

30、了友好的幫助界面。因此利用MATLAB提供的幫助可以方便使用,邊用邊學(xué)。 MATLAB幫助界面有兩種形式:命令行幫助和網(wǎng)頁(yè)瀏覽幫助。這里僅簡(jiǎn)單介紹命令行幫助。在 MATLAB命令( command)窗口中鍵入 helpXXX, MATLAB就會(huì)給出相應(yīng)命令的功能、語(yǔ)法解釋。芄例如,在MATLAB命令( command)窗口中鍵入helpplot蒃 MATLAB就會(huì)給出如下提示:薈 PLOTLinearplot.蒈PLOT(X,Y)plotsvectorYversusvectorX.IfXorYisamatrix,thenthevectorisplottedversustherowsorcolu

31、mnsofthematrix,whicheverlineup.IfXisascalarandYisavector,length(Y)disconnectedpointsareplotted.芄 PLOT(Y)plotsthecolumnsofYversustheirindex.袃 IfYiscomplex,PLOT(Y)isequivalenttoPLOT(real(Y),imag(Y).莀InallotherusesofPLOT,theimaginarypartisignored.Variouslinetypes,plotsymbolsandcolorsmaybeobtainedwithPL

32、OT(X,Y,S)whereSisacharacterstringmadefromoneelementfromanyorallthefollowing3columns:芆 bblue.point-solid莄 ggreenocircle:dotted羀 rredxx-mark-.dashdot螈 ccyan+plus-dashed肅 mmagenta*star蒄 yyellowssquare莁 kblackddiamond蒀 vtriangle(down)肈triangle(up)薃<triangle(left)螂>triangle(right)羈 ppentagram袇 hhex

33、agram蚃Forexample,PLOT(X,Y,'c+:')plotsacyandottedlinewithaplusateachdatapoint;PLOT(X,Y,'bd')plotsbluediamondateachdatapointbutdoesnotdrawanyline.芃PLOT(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,.)combinestheplotsdefinedbythe(X,Y,S)triples,wheretheX'sandY'sarevectorsormatricesandtheS'sares

34、trings.蝕Forexample,PLOT(X,Y,'y-',X,Y,'go')plotsthedatatwice,withasolidyellowlineinterpolatinggreencirclesatthedatapoints.ThePLOTcommand,ifnocolorisspecified,makesautomaticuseofthecolorsspecifiedbytheaxesColorOrderproperty.ThedefaultColorOrderislistedinthetableaboveforcolorsystemswher

35、ethedefaultisblueforoneline,andformultiplelines,tocyclethroughthefirstsixcolorsinthetable.Formonochromesystems,PLOTcyclesovertheaxesLineStyleOrderproperty.蚆PLOTreturnsacolumnvectorofhandlestoLINEobjects,onehandleperline.TheX,Ypairs,orX,Y,Striples,canbefollowedbyparameter/valuepairstospecifyadditiona

36、lpropertiesofthelines.螃 6. 程序與波形示例蚄部分程序代碼如下:膈 %Generalparameter蠆 clearall;袃 t_symbol=0.1;螁 f_sample=8000;薆 t_sample=1/8000;膄 frequency_LL=697770852941;蠆 frequency_HH=1209133614771633;袈 symbols='1''2''3''a''4''5''6''b''7''8&#

37、39;'9''c''#''0''*''d'芇 ID_string=input('pleaseinputyourIdenticalString','s')羂 SNR_dB=input('pleaseinputSNRindB');蝿 SNR=power(10,SNR_dB/10);羋 signal_amplitude=1;螅 power_of_signal=1;蟻 sigma=sqrt(1/SNR);蝿 LL=length(ID_string);蠆 tot

38、al_ss=;蕆 fornn=1:LL螄 row,col=identify_ID(ID_string(nn);衿 ss1,ss2=generate_DTMF_signal(row,col);袆 ss=ss1+ss2;裊 total_ss=total_ssss;蒃 end羈 figure芇 noise=sigma*randn(1,length(total_ss);蚇 zz=total_ss+noise;節(jié) subplot(2,1,1);莂 plot(zz);蚈 subplot(2,1,2);肅 plot(abs(fft(zz);芅 zzz=zz;蒂 %detectsignalstartingpo

39、sition聿 NN1=t_symbol/t_sample;螇 NN2=NN1/2;肄 NN=length(zzz)/NN1;蒂 vector=1,NN1,-500,500;蒀 %符號(hào)檢測(cè)芄 fornn=0:NN-1% 對(duì) N個(gè)符號(hào)檢測(cè)袃 figure薂 fork=1:4% 對(duì)低頻組 4 個(gè)匹配濾波器運(yùn)算薇 ss(1)=1;羆 ss(2)=0;蟻 coef=2*pi*frequency_LL(k)/f_sample;螞 b0=sin(coef);羇 a1=2*cos(coef);蒄 forn=3:NN1蚄 ss(n)=a1*ss(n-1)-ss(n-2)+b0*zzz(n+nn*NN1);螂 end莈 %匹配濾波器輸出信號(hào)的模值膆 XX(k)=0;蒃 fortt=1:5,袂 XX(k)=XX(k)+ss(NN2-tt)*ss(NN2-tt);蝿 end薄 XX(k)膂 subplot(4,2,k);羈 plot(ss,'r');袆 AXIS(vector);芆 end羈 fork=1:4% 對(duì)高頻組 4 個(gè)匹配濾波器運(yùn)算

溫馨提示

  • 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)論