第一篇:DTMF信號(hào)產(chǎn)生與檢測(cè)實(shí)驗(yàn)報(bào)告
DSP 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
DTMF 信號(hào)的產(chǎn)生與檢測(cè)
指導(dǎo)老師:
申艷老師
時(shí) 時(shí)
間:
2014 年 年 7 月 月 18 日
設(shè)計(jì)任務(wù)書(shū) 雙音多頻 DTMF(Dual Tone Multi Frequency)信號(hào)是在按鍵式電話機(jī)上得到廣泛應(yīng)用的音頻撥號(hào)信令,一個(gè) DTMF 信號(hào)由兩個(gè)頻率的音頻信號(hào)疊加構(gòu)成。這兩個(gè)音頻信號(hào)的頻率分別來(lái)自兩組預(yù)定義的頻率組:行頻組和列頻組。每組分別包括 4 個(gè)頻率,據(jù) CCITT 的建議,國(guó)際上采用的這些頻率為 697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和 1633Hz 等 8 種。在每組頻率中分別抽出一個(gè)頻率進(jìn)行組合就可以組成 16 種 DTMF 編碼,從而代表 16 種不同的數(shù)字或功能鍵,分別記作 0~9、*、#、A、B、C、D。如下圖所示。
圖 1-1 雙音多頻信號(hào)編碼示意圖 要用 DSP 產(chǎn)生 DTMF 信號(hào),只要產(chǎn)生兩個(gè)正弦波疊加在一起即可;DTMF 檢測(cè)時(shí)采用改進(jìn)的 Goertzel 算法,從頻域搜索兩個(gè)正弦波的存在。
實(shí)驗(yàn)?zāi)康?掌握 DTMF 信號(hào)的產(chǎn)生和檢測(cè)的 DSP 設(shè)計(jì)可使學(xué)生更加透徹的理解和應(yīng)用奈奎斯特采樣定理,與實(shí)際應(yīng)用相結(jié)合,提高學(xué)生系統(tǒng)地思考問(wèn)題和解決實(shí)際問(wèn)題的能力。通過(guò)對(duì) DSP信號(hào)處理器及 D/A 和 A/D 轉(zhuǎn)換器的編程,可以培養(yǎng)學(xué)生 C 語(yǔ)言編程能力以及使用 DSP 硬件平臺(tái)實(shí)現(xiàn)數(shù)字信號(hào)處理算法的能力。
技術(shù)指標(biāo)及設(shè)計(jì)要求
基本部分 1)使用C語(yǔ)言編寫(xiě)DSP下DTMF信號(hào)的產(chǎn)生程序,要求循環(huán)產(chǎn)生0~9、*、#、A、B、C、D對(duì)應(yīng)的DTMF信號(hào),并且符合CCITT對(duì)DTMF信號(hào)規(guī)定的指標(biāo)。
2)使用C語(yǔ)言編寫(xiě)DSP下DTMF信號(hào)的檢測(cè)程序,檢測(cè)到的DTMF編碼在CCS調(diào)試窗口中顯示,要求既不能漏檢,也不能重復(fù)檢出。
3)DTMF信號(hào)的發(fā)送與接收分別使用不同的實(shí)驗(yàn)板完成。
發(fā)揮部分 1)
使用一個(gè)DSP工程同時(shí)實(shí)現(xiàn)DTMF信號(hào)的發(fā)送和檢測(cè)功能。
2)
改進(jìn)DTMF信號(hào)的規(guī)定指標(biāo),使每秒內(nèi)可傳送的DTMF編碼加倍。
3)發(fā)送的DTMF信號(hào)的幅度在一定范圍內(nèi)可調(diào),此時(shí)仍能完成DTMF信號(hào)的正常檢測(cè)。
方案完成情況
在實(shí)現(xiàn)基本要求的基礎(chǔ)上,我們又完成了發(fā)揮部分的全部要求:能夠?qū)崿F(xiàn)在一個(gè) DSP 實(shí)驗(yàn)箱上同時(shí)實(shí)現(xiàn)自發(fā)自收,基本能實(shí)現(xiàn)無(wú)差錯(cuò)傳輸。通過(guò)改變處理信號(hào)的點(diǎn)數(shù) N 的數(shù)值實(shí)現(xiàn)了 DTMF 信號(hào)編碼加倍,能夠在一秒內(nèi)傳送夠多的數(shù)據(jù)。通過(guò) gel 添加滑動(dòng)條的方法實(shí)現(xiàn)輸入信號(hào)幅度可調(diào),并實(shí)現(xiàn)判決門(mén)限的自適應(yīng)處理,能隨著幅度的變化自動(dòng)調(diào)整門(mén)限的值,進(jìn)而了判決傳輸信號(hào)的正確性。
設(shè)計(jì)內(nèi)容
DTMF 信號(hào)的的定義 雙音多頻(DTMF)信號(hào)是由兩個(gè)不同頻率的信號(hào)疊加而成,設(shè)V(t)為DTMF信號(hào)、? ? t V H和 ? ? t V L 分別為構(gòu)成V(t)的兩個(gè)信號(hào),則它們應(yīng)滿足關(guān)系式(1)。
V(t)= ? ? t V H + ? ? t V L
(1)根據(jù)CCITT建議,國(guó)際上采用697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz、1633Hz8個(gè)頻率,并將其分成兩個(gè)群,即低頻群和高頻群。從低頻群和高頻群中任意抽出一個(gè)頻率進(jìn)行疊加組合,具有16種組合形式,讓其代表數(shù)字和功率,如表3-1所列,則有關(guān)系式(2)。
V(t)=AsinH? t+BsinL? t
(2)其中AsinH? t為低頻群的值,BsinL? t為高頻組的值,A、B分別為低頻群和高頻群樣值的量化基線,具體見(jiàn)表2-1。
Lf
Hf
1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C
941 * 0 # D 表2-1
DTMF頻率及其對(duì)應(yīng)的鍵值
DTMF 信號(hào) 生成方法
利用采用數(shù)學(xué)方法產(chǎn)生 DTMF 信號(hào) buffer[k]= sin(2*pi*k *f0/fs)+ sin(2*pi*k *f1/fs)
(式 2-1)
f0 為行頻頻率,f1 為列頻頻率,fs 為 8000 采樣頻率,k 為對(duì)信號(hào)的采樣。
利用兩個(gè)二階數(shù)字正弦波振蕩器產(chǎn)生 DTMF 信號(hào)(本課程設(shè)計(jì)實(shí)際采用方法)
DTMF 編碼器基于兩個(gè)二階數(shù)字正弦波振蕩器,一個(gè)用于產(chǎn)生行頻,一個(gè)用于產(chǎn)生列頻。向 DSP 裝入相應(yīng)的系數(shù)和初始條件,就可以只用兩個(gè)振蕩器產(chǎn)生所需的八個(gè)音頻信號(hào)。典型的 DTMF 信號(hào)頻率范圍是 700~1700Hz,選取 8000Hz 作為采樣頻率,即可滿足 Nyquist條件。由數(shù)字振蕩器對(duì)的框圖,可以得到該二階系統(tǒng)函數(shù)的差分方程
(式 2-2)
其中 a1=-2cosω0,a2=1,ω0=2πf0 /fs,fs 為采樣頻率,f0 為輸出正弦波的頻率,A 為輸出正弦波的幅度。該式初值為 y(-1)=0,y(-2)=-Asinω 0。CCITT 對(duì) DTMF 信號(hào)規(guī)定的指標(biāo)是,傳送/ 接收率為每秒 10 個(gè)數(shù)字,即每個(gè)數(shù)字 100ms。代表數(shù)字的音頻信號(hào)必須持續(xù)至少45ms,但不超過(guò) 55ms。100ms 內(nèi)其他時(shí)間為靜音,以便區(qū)別連續(xù)的兩個(gè)按鍵信號(hào)。編程的流程如圖 1 所示,由 CCITT 的規(guī)定,數(shù)字之間必須有適當(dāng)長(zhǎng)度的靜音,因此編碼器有兩個(gè)任務(wù),其一是音頻信號(hào)任務(wù),產(chǎn)生雙音樣本,其二是靜音任務(wù),產(chǎn)生靜音樣本。每個(gè)任務(wù)結(jié)束后,啟動(dòng)下一個(gè)任務(wù)前(音頻信號(hào)任務(wù)或靜音任務(wù)),都必須復(fù)位決定其持續(xù)時(shí)間的定時(shí)器變量。在靜音任務(wù)結(jié)束后,DSP 從數(shù)字緩存中調(diào)出下一個(gè)數(shù)字, 判決該數(shù)字信號(hào)所對(duì)應(yīng)的行頻和列頻信號(hào),并根據(jù)不同頻率確定其初始化參數(shù) a1=-2cosω0 與 y(-2)=-Asinω0。該流程圖可采用 C 語(yǔ)言實(shí)現(xiàn),雙音信號(hào)的產(chǎn)生則由 54x 匯編代碼實(shí)現(xiàn)。整個(gè)程序作為 C 5 4 x 的多通道緩沖串口(McBsp)的發(fā)射串口中斷服務(wù)子程序,由外部送入的 16000Hz 串口時(shí)鐘觸發(fā)中斷,可實(shí)時(shí)處理并通過(guò) D / A 轉(zhuǎn)換器輸出 DTMF 信令信號(hào)。
圖 2-1 DTMF 編碼流程
DTMF 信號(hào)的檢測(cè)方法 DTMF信號(hào)的檢測(cè)方法可以有多種。主要分為從信號(hào)時(shí)間域處理和從信號(hào)頻率域處理兩大類。
前一種方法包括:過(guò)零點(diǎn)位置檢測(cè)法、信號(hào)峰值位置檢測(cè)法、過(guò)零點(diǎn)位置及信號(hào)幅值檢測(cè)法。其特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,可以通過(guò)MT8880等芯片加上外圍電路實(shí)現(xiàn),易于集成化。缺點(diǎn)是易受干擾,對(duì)信噪比要求高。現(xiàn)在廣泛應(yīng)用于一般的脈沖撥號(hào)電話機(jī)。通過(guò)神經(jīng)網(wǎng)絡(luò)等輔助判別方法可以大大提高信號(hào)的識(shí)別率。
后一種方法包括:頻率判斷、能量判斷兩類。頻率判斷主要通過(guò)濾波器提取DTMF相應(yīng)的頻率信號(hào)進(jìn)行比較判斷,濾波器可以用窄帶、低通、高通濾波器,應(yīng)用方式可以有并聯(lián)、級(jí)聯(lián)、混合聯(lián)接等方式。能量判斷是直接對(duì)DTMF信號(hào)相應(yīng)的能量進(jìn)行計(jì)算,找出高、低頻率群中最強(qiáng)的信號(hào),進(jìn)行判斷,包括有DFT法(Discrete Fourier Transform)、FFT(Fast Fourier Transform)、Goertzel法等。
本次實(shí)驗(yàn)我們采用的是能量判斷法,并采用了 Goertzel 算法。
設(shè)計(jì)方案、算法原理說(shuō)明
Goertzel 算法原理
Goertzel算法信號(hào)解碼是將兩個(gè)音頻信號(hào)提取出來(lái),并通過(guò)他們的頻率,確定所接受的DTMF數(shù)字。原來(lái)使用模擬技術(shù)音頻信號(hào)頻率進(jìn)行檢測(cè),一般通過(guò)模擬電路進(jìn)行過(guò)零點(diǎn)檢測(cè),通過(guò)零點(diǎn)計(jì)數(shù)完成對(duì)輸入信號(hào)的頻率檢測(cè)。在數(shù)字信號(hào)檢測(cè)電路中,一般使用頻域計(jì)算技術(shù)代替時(shí)域信號(hào)處理。我們可以直接通過(guò)付立葉變換,直接得到輸入的信號(hào)頻率。信號(hào)各個(gè)頻率分量的幅值直接計(jì)算可以使用DFT。對(duì)于N點(diǎn)數(shù)據(jù)序列{x(n)}的DFT為: ? ? ? ? 1 N ,..., 1 , 0 k , W n x k XnkN1 N0 n? ? ? ???
(式 3-1)
如果用FFT算法來(lái)實(shí)現(xiàn)DFT計(jì)算,計(jì)算將涉及復(fù)數(shù)乘法和加法,并且計(jì)算量為 N Nlog2。雖然我們可以得到DFT的所有N個(gè)值,然而,如果希望計(jì)算DFT的M個(gè)點(diǎn),并且M< N log 2 時(shí),可以看到,直接計(jì)算DFT則更加有效。下面我們用到Goertzel法,是一種直接計(jì)算DFT有效的方法。我們應(yīng)用Goertzel算法對(duì)DTMF信號(hào)的檢測(cè),并且對(duì)其進(jìn)行改進(jìn)。
Goertzel算法,從根本上說(shuō),是計(jì)算DFT的一種線性濾波算法,它可以通過(guò)調(diào)整濾波器的中心頻率和帶寬,直接計(jì)算出DFT的系數(shù)。
Goertzel算法利用相位因子 ? ?kNW 的周期性。我們可以同時(shí)將DFT運(yùn)算表示為線性濾波運(yùn)算,由于kNNW?=1,我們可以用該因子對(duì)公式(4)(DFT表達(dá)式)兩邊相乘,得到: ? ? ? ? ? ? ? ?? ? m N kN1 N0 mkNNnkN1 N0 nkNNW m x W W n x k X k X W? ???????? ?? ? ? ?
(式 3-2)
我們注意到,上式就是卷積形式??梢远x序列 ? ? n Y K 為: ? ? ? ?? ? m N kN1 N0 mkW m x n Y? ?????
(式 3-3)
顯然,Yk(n)就是長(zhǎng)度為N的有限長(zhǎng)輸入序列 ? ? n Y K 與具有如下單位脈沖響應(yīng)的濾波器的卷積: ? ? ? ? n u W n hknN k??
(式 3-4)
可以看到,當(dāng)n=N時(shí),該濾波器的輸出就是DFT在頻點(diǎn) kN2k?? ? 值 即
? ? ? ?N nKn Y k X??
(式 3-5)
我們可以通過(guò)比較式(6)和式(7)來(lái)驗(yàn)證上式。對(duì)于單位脈沖響應(yīng)為 ? ? n h k 的濾波器來(lái)說(shuō),其系統(tǒng)函數(shù)為: ? ?1 kNkz W 11z H? ???
(式 3-6)
這個(gè)濾波器只有一個(gè)位于單位圓上的極點(diǎn),其頻率為 kN2K?? ?。因此,可以使用輸入數(shù)據(jù)塊通過(guò)N個(gè)并行的單極點(diǎn)濾波器或者諧振器組來(lái)計(jì)算全部的DFT,其中每個(gè)濾波器有一個(gè)位于DFT響應(yīng)頻率的極點(diǎn)。
因此,對(duì)于式(7)的卷積計(jì)算,我們可以使用差分方程形式來(lái)表示用式(9)給出的濾波器,通過(guò)迭代的方法計(jì)算 ? ? n Y K,從而得出DFT的計(jì)算結(jié)果: ? ? ? ? ? ? ? ? 0 1 y , n x 1 n y W n yk kkN k? ? ? ? ??
(式 3-7)
計(jì)算涉及復(fù)數(shù)加法和復(fù)數(shù)乘法,計(jì)算量大。由于我們只需要計(jì)算幅值信息,而不關(guān)心相位信息。我們?cè)趩挝粓A上另外引入一個(gè)極點(diǎn),與原有的極點(diǎn)形成一對(duì)共扼極點(diǎn)。將兩個(gè)濾波器組成一對(duì)復(fù)數(shù)共軛極點(diǎn)的諧振器。原有的單極點(diǎn)濾波器計(jì)算方式變成形如式(10)的方式。其系統(tǒng)函數(shù)為: ? ?? ?2 11 kNzz z N k 2 cos 2 1z W 1z H? ??? ? ???
(式 3-8)上式中:N / k j2 KNe W??,為差分方程的系數(shù)。由于引入了復(fù)數(shù)共扼極點(diǎn),避免了式(9)中復(fù)雜的復(fù)數(shù)加法和復(fù)數(shù)乘法。
顯然,對(duì)式(10)無(wú)法進(jìn)行直接計(jì)算。為了便于計(jì)算實(shí)現(xiàn),我們引入中間變量 ? ? n Q k,將式(9)表示為差分方程形式: ? ? ? ? ? ? ? ? n x 2 n Q 1 n QNk 2cos 2 n Qk k k? ? ? ? ? ?????? ?? ?
(式 3-9)
式中,初始條件為: ? ? ? ? N ,..., 1 , 0 n , 0 2 Q 1 Qk k? ? ? ? ?
? ? ? ? ? ? ? ? 1 N Q W N Q N Y k XkkN k k? ? ? ? ?
(式 3-10)
其中,Nk 2kNe W???
Goertzel 算法改進(jìn)與實(shí)現(xiàn) Goertzel算法是計(jì)算離散傅立葉變換的方法,需要計(jì)算的頻率點(diǎn)數(shù)不超過(guò)21092 N時(shí)Goertzel算法將比FFT(Fast Fourier Transform)更為有效。Goertzel算法相當(dāng)于一個(gè)二階IIR濾波器,(10)式是它的轉(zhuǎn)移函數(shù)我們可以根據(jù)(10)式畫(huà)出改進(jìn)Goertzel算法的模擬框圖,如圖 3-1所示 + ++? ?? ?? ?? ?? ?? ?N2nk2cos1z ? ?? ? ? ? n x1z ? ?-1Q(n)Q(n-1)-KNW ? ?Q(n-2)? ? ? ? n y k
圖 3-1
Goertzel算法的模擬框圖 圖2中可看到,整個(gè)計(jì)算過(guò)程分為兩部分:前向通路式(11)和反饋通路式(12)。顯然,對(duì)于式(11)的遞推關(guān)系計(jì)算需要重復(fù)N=1,?,N重復(fù)N+1次,但是式(12)中的反向計(jì)算只需要在n=N時(shí)計(jì)算一淡。每次計(jì)算只需要計(jì)算一次實(shí)數(shù)乘法和兩次實(shí)數(shù)加法。所以,對(duì)實(shí)數(shù)序列x(n), 由于對(duì)稱性,用這種算法求出X(k)和X(N-k)的值需要N+1次實(shí)數(shù)乘法運(yùn)算。
我們現(xiàn)在可應(yīng)用Goertzel算法完成實(shí)現(xiàn)DTMF解碼器了。由于有8種可能的音頻信號(hào)需要檢測(cè)。所以需要至少8個(gè)由式(9)給出的濾波器,將每個(gè)濾波器調(diào)諧到這8個(gè)頻率值上。在完成信號(hào)判決時(shí),我們并不需要相位信息,只需要幅值信息|X(k)|。因此,對(duì)式(12)兩邊進(jìn)行平方,計(jì)算幅度的平方值|X(k)| 2。我們將遞推方程式(9,11, 12)進(jìn)一步簡(jiǎn)化,得到濾波器計(jì)算的前向部分的簡(jiǎn)化表達(dá)方式,即濾波表達(dá)式的分子項(xiàng)部分: 由于我們只需要幅值信息,不需要相位信息,因此,對(duì)前向部分進(jìn)行改進(jìn),輸出幅度平方值。
? ? ? ? ? ? ? ? ? ? ? ? ? ? 1 N Q N QNk 2cos 2 1 N Q N Q N y N y k Xk k2k2k k k2??? ? ? ??
(式 3-1)
改進(jìn) Goertzel 算法原理小結(jié) 在式(12)中可以使用A, B分別代替遞歸項(xiàng),令 ? ? 1 N Q Ak? ?,? ? 2 N Q Bk? ? 將離散付里葉變換DFT的改進(jìn)計(jì)算過(guò)程總結(jié)寫(xiě)為: ? ?k2 22kABcoef B A N y ? ? ?
(式 3-2)
其中
?????? ?? kN2cos 2 coef k,? ? ? ?2 2kk X N y ?
可以看到,由于上面兩式中: 忽略相位信息,使用實(shí)數(shù)運(yùn)算,無(wú)復(fù)數(shù)運(yùn)算。等式右邊全部是實(shí)數(shù)運(yùn)算,大大提高了運(yùn)算速度,降低計(jì)算量。
實(shí)際實(shí)現(xiàn)中誤差分析
舍入誤差問(wèn)題 我們?cè)俅位氐焦?3-1 進(jìn)行分析:
? ? ? ? ? ? ? ? ? ? ? ? 1 N Q N QNk 22cos 1 N Q N y N y k XK K2K k k2??? ? ? ??
(式 3-1)
簡(jiǎn)單地說(shuō),在實(shí)際的DSP實(shí)現(xiàn)中將使用(4)式和(6)式來(lái)得到DTMF信號(hào)的頻譜信息,(4)式實(shí)際就是一個(gè)遞歸線性濾波器的表達(dá)式,它在n=0…N之間進(jìn)行循環(huán)。每N個(gè)樣點(diǎn)對(duì)公式(6)進(jìn)行了一次計(jì)算。
在這個(gè)算法中,DTMF頻率(f i)變換成了離散傅立葉系數(shù)(k),它們之間存在如下關(guān)系:,Nkffsi?
這里,N是濾波器的長(zhǎng)度,f s 是采樣頻率。在給定的采樣頻率下,我們可以通過(guò)調(diào)整N和K值,得到相應(yīng)的DTMF頻率(if)上的能量幅值。
但是,由于k和N是整數(shù),有可能不能取到合適的DTMF頻率(f i)。實(shí)際上,計(jì)算時(shí)如果采用FFT變換,計(jì)算字長(zhǎng)N將被限定為2得n次方,每次計(jì)算可以同時(shí)得到N/2個(gè)頻率點(diǎn)的幅度值。而對(duì)于DFT或Goertzel算法來(lái)說(shuō),對(duì)于N長(zhǎng)度的算法,其可以分辨的最高頻率為采樣頻率的一半。其輸出序列為
{X(0)、X(1)……,X(N)} 對(duì)應(yīng)的信號(hào)計(jì)算頻率為f i ,i=0,1,…,N。所以,我們可以知道,可計(jì)算的信號(hào)頻率存在一定的限制。式(4-12)給出了Goertzel算法的頻率分辨率。對(duì)于不是正好在輸出序列計(jì)算點(diǎn)上的信號(hào)頻率,其計(jì)算結(jié)果分布在相近的頻率值上,將會(huì)出現(xiàn)泄漏,這不是我們所期望的。
計(jì)算字長(zhǎng) N 的問(wèn)題提出 N和k的選擇不同,計(jì)算的誤差會(huì)有很大不同。縮小N值,將顯著減少計(jì)算量,所以N值的選取,是完成實(shí)時(shí)計(jì)算的核心。
在相關(guān)文獻(xiàn)中,N值的選取也有很大的不同。有使用16個(gè)106字長(zhǎng)計(jì)算完成信號(hào)監(jiān)測(cè)及語(yǔ)音檢測(cè)的,也有使用105字長(zhǎng)或205字長(zhǎng)完成Goertzel算法完成檢測(cè)的,由此我們提出這樣一個(gè)問(wèn)題,在文所利用的Goertzel算法中,進(jìn)行DTMF信號(hào)檢測(cè)的最佳字長(zhǎng)是多少? 由采樣頻率公式可知,在采樣率一定的情況下,N值的取值同時(shí)決定Goertzel算法計(jì)算時(shí)對(duì)應(yīng)的頻率,即Goertzel濾波器的中心頻率。通過(guò)改變N值,計(jì)算出我們感興趣的對(duì)應(yīng)一組k值,即完成DTMF頻率檢測(cè)。但是,由式(14)可知k取整數(shù),計(jì)算中心頻率的位置與實(shí)際的DTMF頻率必然會(huì)產(chǎn)生一定的舍入誤差。我們將Goertzel算法中的中心頻率與實(shí)際的DTMF頻率的差值定義為D。可以計(jì)算出D的最大值為 Dmax=2Nf s,當(dāng)k的誤差 k ? =時(shí),對(duì)應(yīng)的頻率百分比為:dtmfs2Nff,dtmff為所需計(jì)算的DTMF頻率。
這實(shí)際上是DTMF頻率位于“所計(jì)算的信號(hào)窗口的邊緣”。當(dāng)N值取較大值時(shí),同時(shí)采取較高的采樣頻率可以取得較準(zhǔn)確的檢測(cè)結(jié)果,但是也加大了計(jì)算量。
由于N的取值,影響了計(jì)算時(shí)的Goertzel濾波器的中心頻率的位置。實(shí)際應(yīng)用中,首先需要確定N,同時(shí)對(duì)應(yīng)不同的DTMF頻率,取相應(yīng)的k值,通過(guò)Goertzel算法,得到相應(yīng)的X(k)。可以看到,N的取值是Goertzel算法設(shè)計(jì)DTMF信號(hào)檢測(cè)器的關(guān)鍵,它直接決定了檢測(cè)器的性能及對(duì)ITU建議的滿足性。以下討論在滿足ITU要求的情況下,尋找的N值的過(guò)程,同時(shí),我們?cè)谶@里討論的是誤差的百分比,因此,可以通過(guò)計(jì)算點(diǎn)數(shù)的誤差百分比來(lái)估計(jì)頻率的百分比。
Goertzel 算法中 N 的選擇要求 N的選擇應(yīng)考慮如下的因素:
頻率偏移度不但要求主瓣寬度存在一定的范圍之內(nèi),同時(shí)也和計(jì)算窗口中心頻率有關(guān)。Goertzel算法種計(jì)算長(zhǎng)度N的取值也影響到計(jì)算窗口中心頻率的取值。
例如,如果N=125,f s
=8000Hz,對(duì)于770Hz信號(hào)的完成檢測(cè),頻域分辨率為8000/125=64Hz,ITU規(guī)定的對(duì)于頻率誤差大于%的信號(hào)拒識(shí),即對(duì)于770Hz信號(hào)為中心,寬度為到。的頻率分辨率將矗立的信號(hào)為為中心,其他范圍的頻率則不滿足規(guī)定要求。
舍入誤差的尋優(yōu) 根據(jù)siffN k ? ?,在Goertzel算法進(jìn)行遞歸計(jì)算時(shí)k要取整數(shù),因而存在舍入誤差。舍入誤差是隨機(jī)和離散的,不同的N值和不同的f i 舍入誤差是不同的,因此造成的頻率的偏移也是不同的。由于k的舍入誤差反映的是頻率的偏移,因此必須兼顧每個(gè)頻率,選擇k舍入誤差小得N值。表3-1列出了當(dāng)N=125時(shí),不同的頻率k值的舍入誤差,表3-2列出了當(dāng)N=205時(shí),不同的頻率k值的舍入誤差.信號(hào)頻率(Hz)
k 計(jì)算值 k 相對(duì)偏差(%)
679
770
852
941
1209
1336
1477
1633
表3-1
N=125時(shí)不同的頻率值k的舍入誤差
信號(hào)頻率(Hz)
k 計(jì)算值 k 相對(duì)偏差(%)
679
770
852
941
1209
1336
1477
1633
表3-2
N=205時(shí)不同的頻率值k的舍入誤差 由于k的舍入誤差反映的是頻率的偏移,因此必須選擇k舍入誤差小的N值。同時(shí)還要兼顧每個(gè)頻率,每個(gè)頻率k舍入誤差都比較小,或者盡可能的都取“舍”或者都取“入”,這樣就會(huì)使偏移比較小或者都向同一個(gè)方向偏移。
復(fù)雜度比較
直接計(jì)算離散傅里葉變換,對(duì)于每一個(gè)k值,需要4N次實(shí)數(shù)乘法及4N-2次的實(shí)數(shù)加法,N點(diǎn)的傅里葉變換需要24N 次實(shí)數(shù)乘法及N(4N-2)次實(shí)數(shù)加法,因此,采用直接法計(jì)算的計(jì)算復(fù)雜度為O(2N)。
對(duì)于Goertzel算法來(lái)說(shuō)。其輸入的X(n),Wk,是復(fù)數(shù),每計(jì)算一個(gè)新輸出Y值需要做四次實(shí)數(shù)加法和四次實(shí)數(shù)乘法。由于我們只需要幅值信息,對(duì)于相位信息可以忽略,通過(guò)變換得到幅值信息。因此,共需要N+l次實(shí)數(shù)乘法,計(jì)算復(fù)雜度為O(MN)。
對(duì)于單個(gè)解碼器來(lái)說(shuō),對(duì)于每次成功完成DTMF信號(hào)解碼的時(shí)間估計(jì)十分重要。通過(guò)對(duì)解碼器的處理時(shí)間估計(jì),我們可以得到其處理性能,通過(guò)對(duì)處理性能評(píng)價(jià),就可以預(yù)計(jì)單個(gè)解碼器工作時(shí)可以承載的最大信道個(gè)數(shù)。在這里,定義DTMF解碼器成功完成兩個(gè)DTMF信號(hào)解碼之間所耗費(fèi)的時(shí)間可以這樣估算: 每處理一個(gè)采樣樣本的時(shí)間間隔允許的最大值為:
? ?ssf1T 125 s ?
(式3-3)
前向計(jì)算所需的時(shí)間為:sT N?
可以看到,計(jì)算時(shí)間主要決定于計(jì)算字長(zhǎng)N。對(duì)于每一個(gè)需要檢測(cè)的頻率,都必須進(jìn)行(N+4)次實(shí)數(shù)乘法和(N十2)次加法。檢測(cè)8個(gè)DTMF頻率需要的總共的計(jì)算量為:(8N+ 32)次乘法與(16N十16)次實(shí)數(shù)加法。
算法流程圖
圖 4-1 程序算法流程圖
源程序注釋
初始化程序 rn“,ch);
}
else
中DTMF-SEND&RECEIVE,雙擊,即可加載.out 文件。CCS 將程序裝載到目標(biāo) DSP 上,打開(kāi)顯示程序反匯編指令的 Disassembly 窗口。選擇 Debug/Go Main,從主程序開(kāi)始執(zhí)行。最后單擊 Debug-Run(或按 F5 鍵)運(yùn)行程序。
圖 6-10 下載 gel 文件
圖 6-11
程序編譯成功
圖 6-12
將程序下載到實(shí)驗(yàn)箱
圖 6-13
程序運(yùn)行
圖 6-13
打開(kāi) gel 文件滾動(dòng)條
實(shí)驗(yàn)結(jié)果及圖像 本次實(shí)驗(yàn)中,我們通過(guò)一臺(tái)電腦循環(huán)產(chǎn)生 0——9、A、B、C、D、*、#,在另一臺(tái)電腦上會(huì)循環(huán)顯示檢測(cè)到的 DTMF 信號(hào),即循環(huán)顯示 0——9、A、B、C、D、*、#。
下面我們從時(shí)域和頻域兩個(gè)角度觀察一下檢測(cè)信號(hào)的波形:
使用 CCS 中 Graph 顯示 發(fā)送端的時(shí)域圖形參數(shù)設(shè)置及顯示結(jié)果如下所示 :
:
圖 6-14
發(fā)送緩存區(qū)圖形參數(shù)設(shè)置(時(shí)域及頻域)
圖 6-15 發(fā)送緩存區(qū)時(shí)域圖形顯示
圖 6-16 發(fā)送緩存區(qū)波形頻譜顯示
檢測(cè)端的時(shí)域圖形參數(shù)設(shè)置及顯示結(jié)果如下所示 :
:
圖 4-17 檢測(cè)緩存區(qū)圖形參數(shù)設(shè)置(時(shí)域及頻域)
圖 6-18 發(fā)送緩存區(qū)時(shí)域圖形顯示
圖 6-19 發(fā)送緩存區(qū)波形頻譜顯示
.2
使用虛擬儀器顯示
圖 6-20 發(fā)送端信號(hào)時(shí)域波形
圖 6-21 發(fā)送端信號(hào)頻譜 7.遇到的問(wèn)題及解決方法 【 問(wèn)題一】
】
新建工程時(shí)頭文件路徑不匹配,文件編譯出錯(cuò)。
解決方法:在菜單欄中選中 Project-Build Options-Compiler-preprocessor-Include Search Path,添加正確路徑即可。
【 問(wèn)題二】
】
數(shù)據(jù)類型定義不當(dāng)導(dǎo)致 cmd 文件中,內(nèi)存分配不足,文件編譯出錯(cuò)。
解決方法:打開(kāi) Debug 中的.map 文件,觀察緩存溢出情況,修改 cmd 文件內(nèi)存分配。
【 問(wèn)題三】
】
聲卡抽樣頻率設(shè)置有誤,導(dǎo)致虛擬儀器觀察輸出波形時(shí),出現(xiàn)多余頻譜分量。
解決方法:打開(kāi),更改波特率設(shè)置,即采樣頻率設(shè)置為 8K 后,輸出信號(hào)頻譜正常。
【 問(wèn)題四】
】
信號(hào)幅度控制與自適應(yīng)閾值選取銜接有誤。
解決方法:算法有誤,后采取合理算法即原域值 30%+倍第二大頻點(diǎn)的幅度平方值 70%(thresh=thresh*+*(linshi[1]*),信號(hào)檢測(cè)正常。
【 問(wèn)題五】
】
閾值選取不當(dāng),無(wú)法正常檢測(cè)輸出信號(hào)。
解決方法:經(jīng)過(guò)多次嘗試并修改閾值,最終選取合理閾值,正常判決、檢測(cè)以及顯示結(jié)果。
8.心得體會(huì)
劉璐:
雙音多頻DTMF信號(hào)是在按鍵式電話機(jī)上廣泛應(yīng)用的的音頻信號(hào),由于我家里最早接觸的就是固話,一開(kāi)始對(duì)這個(gè)題目比較感興趣,就選擇了這個(gè)題目。
通過(guò)看課件與查閱資料逐漸懂得了DTMF信號(hào)產(chǎn)生與檢測(cè)的原理,熟悉了利用CSS這款軟件和DSK板調(diào)試的過(guò)程。剛開(kāi)始只知道按部就班的把過(guò)程操作一遍,后來(lái)通過(guò)學(xué)習(xí)也漸漸知道添加的*.lib,*.h這些文件的意義所在,比如(支持C語(yǔ)言運(yùn)行的庫(kù))、、(是使用dsk板所需的庫(kù)),c5400/cgtools/include里面含有dsp通用頭文件,與硬件無(wú)關(guān),而c5400/dsk5402/include中是硬件專用頭文件等等。還有關(guān)于C語(yǔ)言在DSP課程設(shè)計(jì)中的應(yīng)用和以前大一所學(xué)習(xí)的簡(jiǎn)單常用的C語(yǔ)言還是很有些區(qū)別,要掌握好編程還需要學(xué)習(xí)和努力。還有一個(gè)體會(huì)就是最后幾天要接到實(shí)驗(yàn)板實(shí)在很困難,早上起的很早可能也沒(méi)法借到板子來(lái)調(diào)試。
這次實(shí)驗(yàn)收獲很大,掌握了一些對(duì)于CCS的運(yùn)用,學(xué)習(xí)了DTMF信號(hào)的產(chǎn)生與檢測(cè)的原理,學(xué)習(xí)了C語(yǔ)言的編程在dsp中的應(yīng)用,真正體會(huì)到了DSP芯片強(qiáng)大的運(yùn)算和處理能力,并且這次的課程設(shè)計(jì)不僅僅讓我們學(xué)會(huì)如何使用DSP芯片以及應(yīng)用,更是給我們今后在實(shí)際解決或系統(tǒng)設(shè)計(jì)時(shí)提供了一種設(shè)計(jì)思路,可根據(jù)不同系統(tǒng)的設(shè)計(jì)要求采用性能要求不同的DSP處理芯片來(lái)解決實(shí)際問(wèn)題,同時(shí)有效地鍛煉和提高了我們的軟件編程能力。
總之,此次的課程設(shè)計(jì)使我收獲頗豐,不僅掌握了 DTMF 信號(hào)的相關(guān)知識(shí)與 CCS 的操作,更鍛煉了我處理問(wèn)題的實(shí)際能力和思考問(wèn)題的方法,這也必將對(duì)日后的科研相關(guān)工作奠定積極的意義。最后感謝老師對(duì)我的耐心細(xì)致的指導(dǎo),謝謝老師。
9.參考文獻(xiàn) [1]高海林 錢(qián)滿義編寫(xiě)《DSP技術(shù)及其應(yīng)用》清華大學(xué)出版社 [2] 陳后金等 《信號(hào)分析與處理實(shí)驗(yàn)》 高等教育出版社
[3] DTMF Tone Generation and Detection:An Implementation Using the TMS320C54x.SPRA096a ,唐達(dá)強(qiáng).雙音多頻信號(hào)接收器的設(shè)計(jì)與實(shí)現(xiàn)(碩士學(xué)位論文).北京:北方交通大學(xué).1990 [5]陳通,曹小強(qiáng).基于 NDFT Goertzel 濾波器的 DTMF 信號(hào)檢測(cè)的改進(jìn)方法.西南大學(xué)學(xué)報(bào).2008 [6]李義府.雙音多頻信號(hào)檢測(cè)在 DSP 中的實(shí)現(xiàn).中南大學(xué)信息科學(xué)與工程學(xué)院.2006 [7]薛曼芳.基于改進(jìn)的 Goertzel 算法的雙音多頻檢測(cè)器的設(shè)計(jì).甘肅:蘭州工業(yè)高等??茖W(xué)校.2008
第二篇:信號(hào)與系統(tǒng)仿真實(shí)驗(yàn)報(bào)告
信號(hào)與系統(tǒng)
仿真
實(shí) 驗(yàn) 報(bào) 告
班級(jí): 學(xué)號(hào): 姓名: 學(xué)院:
實(shí)驗(yàn)一
一、實(shí)驗(yàn)者姓名:
二、實(shí)驗(yàn)時(shí)間:
三、實(shí)驗(yàn)地點(diǎn):
四、實(shí)驗(yàn)題目:
5(s2?5s?6)求三階系統(tǒng)H(s)?3的單位階躍響應(yīng),并繪制響應(yīng)波形圖。
s?6s2?10s?8
五、解題分析:要知道求單位階躍響應(yīng)需知道所用函數(shù),以及產(chǎn)生波形圖所需要用到的函數(shù)。
六、試驗(yàn)程序:
num=[5 25 30];den=[1 6 10 8];step(num,den,10);title(‘Step response’)
七、實(shí)驗(yàn)結(jié)果:
實(shí)驗(yàn)所得波形圖如下:
Step response4.543.53Amplitude2.521.510.50012345Time(sec)678910
八、實(shí)驗(yàn)心得體會(huì):通過(guò)本次試驗(yàn)了解學(xué)會(huì)了一些新的函數(shù)的應(yīng)用。了解到了N階系統(tǒng)的單位階躍響應(yīng)的計(jì)算方法,和系統(tǒng)的響應(yīng)波形圖的函數(shù)應(yīng)用和繪制方法。為后面的實(shí)驗(yàn)打下基礎(chǔ),并對(duì)信號(hào)仿真和《信號(hào)與系統(tǒng)》這門(mén)課程之間的聯(lián)系有所增加,對(duì)《信號(hào)與系統(tǒng)》這門(mén)課里的問(wèn)題也有了更加深入地了解。
九、實(shí)驗(yàn)改進(jìn)想法:無(wú)。
實(shí)驗(yàn)二
一、實(shí)驗(yàn)者姓名:
二、實(shí)驗(yàn)時(shí)間:
三、實(shí)驗(yàn)地點(diǎn):
四、實(shí)驗(yàn)題目:
一個(gè)因果線性移不變系統(tǒng)y(n)?0.81y(n?2)?x(n)?x(n?2),求:(1)H(z);(2)沖激響應(yīng)h(n);(3)單位階躍響應(yīng)u(n);(4)H(ej?),并繪出幅頻和相頻特性。
五、解題分析:離散卷積是數(shù)字信號(hào)處理中的一個(gè)基本運(yùn)算,MTLAB提供的計(jì)算兩個(gè)離散序列卷積的函數(shù)是conv,其調(diào)用方式為 y=conv(x,h)。其中調(diào)用參數(shù)x,h為卷積運(yùn)算所需的兩個(gè)序列,返回值y是卷積結(jié)果。
MATLAB函數(shù)conv的返回值y中只有卷積的結(jié)果,沒(méi)有y的取值范圍。由離散序列卷積的性質(zhì)可知,當(dāng)序列x和h的起始點(diǎn)都為k=0時(shí),y的取值范圍為k=0至length(x)+length(h)-2。
許多離散LTI都可用如下的線性常系數(shù)的差分方程描述
?ay[k?n]??bx[k?n]
nnn?0n?0NN其中x[k]、y[k]分別系統(tǒng)的輸入和輸出。在已知差分方程的N個(gè)初始狀態(tài)y[k],和輸入x[k],就可由下式迭代計(jì)算出系統(tǒng)的輸出
y[k]???(an/a0)y[k?n]??(bn/b0)x[k?n]
n?1n?0NM利用MATLAB提供的filter函數(shù),可方便地計(jì)算出上述差分方程的零狀態(tài)響應(yīng)。filter函數(shù)調(diào)用形式為 y=filter(b,a,x)。其中 a?[a0,a1,...,aN],b?[b0,b1,...,bM],分別表示差分方程系數(shù)。X表示輸入序列,y表示輸出序列。輸出序列的長(zhǎng)度和序列相同。
當(dāng)序列的DTFT可寫(xiě)成ej?的有理多項(xiàng)式時(shí),可用MATLAB信號(hào)處理工具箱提供的freqz函數(shù)計(jì)算DTFT的抽樣值。另外,可用MATLAB提供的abs、angle、real、imag等基本函數(shù)計(jì)算 DTFT的幅度、相位、實(shí)部、虛部。若X(ej?)可表示為
b0?b1e?j??...bMe?j?MB(ej?)X(e)??j??j??j?NA(e)a0?a1e?...?aNe則freqz的調(diào)用形式為 X=freqz(b,a,w),其中的b和 a分別是表示前一個(gè)
j?式子中分子多項(xiàng)式和分母多項(xiàng)式系數(shù)的向量,即a?[a0,a1,...,aN],w為抽樣的頻率點(diǎn),向量w的長(zhǎng)度至少為2。返回值X就是DTFTb?[b0,b1,...,bM]。在抽樣點(diǎn)w上的值。注意一般情況下,函數(shù)freqz的返回值X是復(fù)數(shù)。
六、實(shí)驗(yàn)程序:
clc;clear;close;b=[1 0-1];a=[1 0-0.81];figure(1);subplot(2,1,1);dimpulse(b,a,20)subplot(2,1,2);dstep(b,a,50)w=[0:1:512]*pi/512;figure(2);freqz(b,a,w)
七、實(shí)驗(yàn)結(jié)果:
沖擊響應(yīng)圖及階躍響應(yīng)圖:
Impulse Response1Amplitude0.50-0.50246810Time(sec)Step Response12141618201Amplitude0.500510152025Time(sec)3035404550 100Magnitude(dB)0-100-200-30000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)0.91100Phase(degrees)500-50-10000.10.20.30.40.50.60.70.8Normalized Frequency(?? rad/sample)0.91
八、實(shí)驗(yàn)心得體會(huì):通過(guò)實(shí)驗(yàn)我們知道了使用Matlab來(lái)繪出出一個(gè)線性移不變系統(tǒng)的幅頻和相頻曲線。并知道了在《信號(hào)與系統(tǒng)》中得一些差分方程和各種響應(yīng),譬如零輸入相應(yīng)、零狀態(tài)響應(yīng)、全響應(yīng)、自由響應(yīng)、強(qiáng)迫響應(yīng)、沖擊響應(yīng)、單位階躍響應(yīng)等等各種響應(yīng)在Matlab中的函數(shù)表達(dá)方式和他們的求法,以及系統(tǒng)的幅頻和相頻曲線的繪制都有了一定深刻的認(rèn)識(shí)。
九、實(shí)驗(yàn)改進(jìn)想法:無(wú)。
實(shí)驗(yàn)三
一、實(shí)驗(yàn)者姓名:
二、實(shí)驗(yàn)時(shí)間:
三、實(shí)驗(yàn)地點(diǎn):
四、實(shí)驗(yàn)題目:
模擬信號(hào)x(t)?2sin(4?t)?5cos(8?t),求N?64的DFT的幅值譜和相位譜。
五、解題分析:在MATLAB信號(hào)處理工具箱中,MATLAB提供了4個(gè)內(nèi)部函數(shù)用于計(jì)算DFT和IDFT,它們分別是:fft(x),fft(x,N),ifft(X),ifft(X,N)。
fft(x)計(jì)算M點(diǎn)的DFT。M是序列x的長(zhǎng)度,即M=length(x)。
fft(x,N)計(jì)算N點(diǎn)的DFT。若M>N,則將原序列截短為N點(diǎn)序列,再計(jì)算其N點(diǎn)DFT;若M ifft(X)計(jì)算M點(diǎn)的IDFT。M是序列X的長(zhǎng)度。 ifft(X,N)計(jì)算N點(diǎn)IDFT。若M>N,則將原序列截短為N點(diǎn)序列,再計(jì)算其N點(diǎn)IDFT;若M 六、實(shí)驗(yàn)程序: clc;clear;close;N=64;n=0:63;t=d*n;q=n*2*pi/N;x=2*sin(4*pi*t)+5*cos(8*pi*t);y=fft(x,N);subplot(3,1,1);plot(t,x);title(‘source signal’);subplot(3,1,2);plot(q,abs(y));title(‘magnitude’);subplot(3,1,3);plot(q,angle(y));title(‘phase’); 七、實(shí)驗(yàn)結(jié)果: ***0100806040200|F(k)|05101520Frequency253035 ***0100806040200|F(k)|05101520Frequency253035 4321|jW|0-1-2-3-405101520Frequency253035Step Response400020000-2000 Amplitude-4000-6000-8000-10000-12000-1400001234n(samples)5678 八、實(shí)驗(yàn)心得體會(huì):通過(guò)本次試驗(yàn)我知道了求取模擬信號(hào)在N等于一定值時(shí)的的DFT的幅值譜和相位譜的求法。通過(guò)本次實(shí)驗(yàn),對(duì)幅值譜和相位譜有了更深的了解,并與課程《信號(hào)與系統(tǒng)》里的一些相關(guān)知識(shí)連接到了一起,使得學(xué)到的只是更加深刻、有意義。 九、實(shí)驗(yàn)改進(jìn)想法:無(wú)。 實(shí)驗(yàn)四 一、實(shí)驗(yàn)者姓名: 二、實(shí)驗(yàn)時(shí)間: 三、實(shí)驗(yàn)地點(diǎn): 四、實(shí)驗(yàn)題目: 將信號(hào)x(t)?sin(240?t)做離散序列,比較原序列與經(jīng)過(guò)FFT和IFFT變換后的序列,并做出說(shuō)明。 五、解題分析:此題需要對(duì)信號(hào)做離散序列,還要做FFT和IFFT變換,然后得到圖像進(jìn)行比較。連續(xù)時(shí)間函數(shù)與離散時(shí)間函數(shù)在編程中的區(qū)別主要體現(xiàn)在如下兩個(gè)方面:第一,自變量的取值范圍不同,離散時(shí)間函數(shù)的自變量是整數(shù),而連續(xù)時(shí)間函數(shù)的自變量為一定范圍內(nèi)的實(shí)數(shù);第二,繪圖所用的函數(shù)不同,連續(xù)函數(shù)圖形的繪制不止一個(gè)。本實(shí)驗(yàn)中要求繪制離散時(shí)間信號(hào)圖,可以應(yīng)用MATLAB中的函數(shù)來(lái)實(shí)現(xiàn)。用MATLAB表示一離散序列,可用兩個(gè)向量來(lái)表示。其中一個(gè)向量表示自變量的取值范圍,另一個(gè)向量表示序列的值。之后畫(huà)出序列波形。當(dāng)序列是從0開(kāi)始時(shí),可以只用一個(gè)向量x來(lái)表示序列。由于計(jì)算機(jī)內(nèi)寸的限制,MATLAB無(wú)法表示一個(gè)無(wú)窮長(zhǎng)的序列。對(duì)于典型的離散時(shí)間信號(hào),可用邏輯表達(dá)式來(lái)實(shí)現(xiàn)不同自變量時(shí)的取值。 六、實(shí)驗(yàn)程序: t=0:1/255:1;x=sin(2*pi*120*t);y=real(ifft(fft(x)));subplot(2,1,1);plot(t,x);title(‘原波形’);subplot(2,1,2);plot(t,y); 七、實(shí)驗(yàn)結(jié)果: 原波形10.50-0.5-100.10.20.30.40.50.60.70.80.91恢復(fù)的波形10.50-0.5-100.10.20.30.40.50.60.70.80.91 八、實(shí)驗(yàn)心得體會(huì):通過(guò)對(duì)做信號(hào)的離散序列以及經(jīng)FFT和IFFT的變換,了解了相關(guān)特性。通過(guò)計(jì)算機(jī)做出的信號(hào)波形圖,我們能夠很直白的看出原波形和經(jīng)過(guò)變換后的波形的差別。 九、實(shí)驗(yàn)改進(jìn)想法:無(wú)。 實(shí)驗(yàn)五 一、實(shí)驗(yàn)者姓名: 二、實(shí)驗(yàn)時(shí)間: 三、實(shí)驗(yàn)地點(diǎn): 四、實(shí)驗(yàn)題目: 2s,激勵(lì)信號(hào)22(s?1)?100x(t)?(1?cot)s?co1s0(t)0,求(1)帶通濾波器的頻率響應(yīng);(2)輸出穩(wěn)態(tài)響應(yīng)并繪制圖形。已知帶通濾波器的系統(tǒng)函數(shù)為H(s)? 五、解題分析:需要知道求頻率響應(yīng)的方法,并繪制圖形。 六、實(shí)驗(yàn)程序: clear;t=linspace(0,2*pi,1001);w=[99,100,101];U=[0.5,1,0.5];b=[2,0];a=[1,2,10001];u1=U*cos(w’*t+angle(U’)*ones(1,1001));H=polyval(b,j*w)./polyval(a,j*w);H=freqs(b,a,w);subplot(2,1,1),plot(w,abs(H)),grid;subplot(2,1,2),plot(w,angle(H)),grid;u21=abs(U(1)*H(1))*cos(99*t+angle(U(1)*H(1)));u22=abs(U(2)*H(2))*cos(100*t+angle(U(2)*H(2)));u23=abs(U(3)*H(3))*cos(101*t+angle(U(3)*H(3)));u2=u21+u22+23;figure(2);subplot(2,1,1),plot(t,u1);subplot(2,1,2),plot(t,u2); 七、實(shí)驗(yàn)結(jié)果: 10.90.80.79910.50-0.5-19999.299.499.699.8100100.2100.4100.6100.810199.299.499.699.8100100.2100.4100.6100.8101 210-1-***222101234567 八、實(shí)驗(yàn)心得體會(huì):通過(guò)本次試驗(yàn),了解了頻率響應(yīng)求法,加深了對(duì)輸出穩(wěn)態(tài)響應(yīng)的印象。 九、實(shí)驗(yàn)改進(jìn)想法:無(wú)。 長(zhǎng)江大學(xué)電工電子實(shí)驗(yàn)中心實(shí)驗(yàn)報(bào)告 野外獲得的重力數(shù)據(jù)要作進(jìn)一步處理和解釋才能解決所提出的地質(zhì)任務(wù)﹐主要分3個(gè)階段﹕野外觀測(cè)數(shù)據(jù)的處理﹐并繪制各種重力異常圖﹔重力異常的分解(應(yīng)用平均法﹑場(chǎng)的變換﹑頻率濾波等方法)﹐即從疊加的異常中分出那些用來(lái)解決具體地質(zhì)問(wèn)題的異常﹔確定異常體的性質(zhì)﹑形狀﹑產(chǎn)狀及其他特征參數(shù)。解釋 解釋分為定性的和定量的兩個(gè)內(nèi)容﹐定性解釋是根據(jù)重力圖并與地質(zhì)資料對(duì)比﹐初步查明重力異常性質(zhì)和獲得有關(guān)異常源的信息。除某些構(gòu)造外﹐對(duì)一般地質(zhì)體重力異常的解釋可遵循以下的一些原則﹕極大的正異常說(shuō)明與圍巖比較存在剩馀質(zhì)量﹔反之﹐極小異常是由質(zhì)量虧損引起的??拷|(zhì)量重心﹐在地表投影處將觀測(cè)到最大異常。最大的水平梯度異常相應(yīng)于激發(fā)體的邊界。延伸異常相應(yīng)于延伸的異常體﹐而等軸異常相應(yīng)于等軸物體在地表的投影。對(duì)稱異常曲線說(shuō)明質(zhì)量相對(duì)于通過(guò)極值點(diǎn)的垂直平面是對(duì)稱分布的﹔反之﹐非對(duì)稱曲線是由于質(zhì)量非對(duì)稱分布引起的。在平面上出現(xiàn)幾個(gè)極值的復(fù)雜異常輪廓﹐表明存在幾個(gè)非常接近的激發(fā)體。定量解釋是根據(jù)異常場(chǎng)求激發(fā)體的產(chǎn)狀要素建立重力模型。一種常用的反演方法是選擇法﹐即選擇重力模型使計(jì)算的重力異常與觀測(cè)重力異常間的偏差小于要求的誤差。 由于重力反演存在多解性﹐因此﹐必須依靠研究地區(qū)的地質(zhì)﹑鉆井﹑巖石密度和其他物探資料來(lái)減少反演的多解性。應(yīng)用運(yùn)用領(lǐng)域 在區(qū)域地質(zhì)調(diào)查﹑礦產(chǎn)普查和勘探的各個(gè)階段都可應(yīng)用重力勘探﹐要根據(jù)具體的地質(zhì)任務(wù)設(shè)計(jì)相應(yīng)的野外工作方法。應(yīng)用條件 應(yīng)用重力勘探的條件是﹕被探測(cè)的地質(zhì)體與圍巖的密度存在一定的差別﹔被探測(cè)的地質(zhì)體有足夠大的體積和有利的埋藏條件﹔干擾水平低。意義 重力勘探解決以下任務(wù)﹕ 1、研究地殼深部構(gòu)造﹔研究區(qū)域地質(zhì)構(gòu)造﹐劃分成礦遠(yuǎn)景區(qū)﹔ 2、掩蓋區(qū)的地質(zhì)填圖﹐包括圈定斷裂﹑斷塊構(gòu)造﹑侵入體等﹔ 3、廣泛用于普查與勘探可燃性礦床(石油﹑天然氣﹑煤)﹐ 4、查明區(qū)域構(gòu)造﹐確定基底起伏﹐發(fā)現(xiàn)鹽丘﹑背斜等局部構(gòu)造﹔ 5、普查與勘探金屬礦床(鐵﹑鉻﹑銅﹑多金屬及其他)﹐主要用于查明與成礦有關(guān)的構(gòu)造和巖體﹐進(jìn)行間接找礦﹔ 6、也常用于尋找大的﹑近地表的高密度礦體﹐并計(jì)算礦體的儲(chǔ)量﹔工程地質(zhì)調(diào)查﹐如探測(cè)巖溶﹐追索斷裂破碎帶等。 院系: 年級(jí): 姓名: 實(shí)驗(yàn)時(shí)間: 實(shí)驗(yàn)地點(diǎn): MATLAB實(shí)驗(yàn)報(bào)告 專業(yè): 班號(hào): 學(xué)號(hào): 《信號(hào)與系統(tǒng)》 實(shí)驗(yàn)一 連續(xù)時(shí)間信號(hào)的表示及可視化 實(shí)驗(yàn)題目: f(t)??(t);f(t)??(t);f(t)?eat(分別取a?0及a?0); f(t)?R(t);f(t)?Sa(?t);f(t)?Sin(2?ft)(分別畫(huà)出不同周期個(gè)數(shù)的波形)。 解題分析: 以上各類連續(xù)函數(shù),先運(yùn)用t = t1: p:t2的命令定義時(shí)間范圍向量,然后調(diào)用對(duì)應(yīng)的函數(shù),建立f與t的關(guān)系,最后調(diào)用plot()函數(shù)繪制圖像,并用axis()函數(shù)限制其坐標(biāo)范圍。 實(shí)驗(yàn)程序: (1)f(t)??(t) t=-1:0.01:3 %設(shè)定時(shí)間變量t的范圍及步長(zhǎng) f=dirac(t)%調(diào)用沖激函數(shù)dirac()plot(t,f)%用plot函數(shù)繪制連續(xù)函數(shù) axis([-1,3,-0.5,1.5])%用axis函數(shù)規(guī)定橫縱坐標(biāo)的范圍(2)f(t)??(t) t=-1:0.01:3 %設(shè)定時(shí)間變量t的范圍及步長(zhǎng) f=heaviside(t)%調(diào)用階躍函數(shù)heaviside()plot(t,f)%用plot函數(shù)繪制連續(xù)函數(shù) title('f(t)=heaviside(t)')%用title函數(shù)設(shè)置圖形的名稱 axis([-1,3,-0.5,1.5])%用axis函數(shù)規(guī)定橫縱坐標(biāo)的范圍(3)f(t)?eat a=1時(shí): t=-5:0.01:5 %設(shè)定時(shí)間變量t的范圍及步長(zhǎng) f=exp(t)%調(diào)用指數(shù)函數(shù)exp() plot(t,f)%用plot函數(shù)繪制連續(xù)函數(shù) title('f=exp(t)')%用title函數(shù)設(shè)置圖形的名稱 axis([-5,5,-1,100])%用axis函數(shù)規(guī)定橫縱坐標(biāo)的范圍 a=2時(shí): t=-5:0.01:5 f=exp(2*t)%調(diào)用指數(shù)函數(shù)exp()plot(t,f)title('f=exp(2*t)')axis([-5,5,-1,100])a=-2時(shí): t=-5:0.01:5 f=exp(-2*t)plot(t,f)title('f=exp(-2*t)')axis([-5,5,-1,100])(4)f(t)?R(t) t=-5:0.01:5 f=rectpuls(t,2)%用rectpuls(t,a)表示門(mén)函數(shù),默認(rèn)以零點(diǎn)為中心,寬度為a plot(t,f)title('f=R(t)')axis([-5 5-0.5 1.5])(5)f(t)?Sa(?t) ω=1時(shí): t=-20:0.01:20 f=sin(t)./t %調(diào)用正弦函數(shù)sin(),并用sin(t)./t實(shí)現(xiàn)抽樣函數(shù) plot(t,f)title('f(t)=Sa(t)')axis([-20,-20,-0.5,1.1])3 ω=5時(shí): t=-20:0.01:20 f=sin(5*t)./(5*t)plot(t,f)title('f(t)=Sa(5*t)')axis([-20,-20,-0.5,1.1])(6)f(t)?Sin(2?ft) ω=1時(shí): t=-10:0.01:10 f=sin(t)%plot(t,f);title('f=sin(t)')axis([-10,10,-2,2])ω=5時(shí): t=-10:0.01:10 f=sin(5*t)plot(t,f);title('f=sin(5*t)')axis([-10,10,-2,2]) 實(shí)驗(yàn)結(jié)果; (1) 調(diào)用正弦函數(shù)sin()4 1.510.50-0.5-1-0.500.511.522.532) f(t)=heaviside(t)1.510.50-0.5-1-0.500.511.522.533)((a=1時(shí): f=exp(t)***3020100-5-4-3-2-1012345a=2時(shí): f=exp(2*t)***3020100-5-4-3-2-1012345 a=-2時(shí): f=exp(-2*t)***3020100-5-4-3-2-1012345(4) f=R(t)1.510.50-0.5-5-4-3-2-1012345 (5)ω=1時(shí): f(t)=Sa(t)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5時(shí): f(t)=Sa(5*t)10.80.60.40.20-0.2-0.4-20-15-10-505101520(6)ω=1時(shí): f=sin(t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810 ω=5時(shí): f=sin(5*t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810 實(shí)驗(yàn)心得體會(huì):(1)在 MATLAB中,是用連續(xù)信號(hào)在等時(shí)間間隔點(diǎn)的樣值來(lái)近似地表示連續(xù)信號(hào)的,當(dāng)取樣時(shí)間間隔足夠小時(shí),這些離散的樣值就能較好地近似出連續(xù)信號(hào)。在 MATLAB 中t = t1: p: t2的命令定義時(shí)間范圍向量,t1為信號(hào)起始時(shí)間,t2為終止時(shí)間,p為時(shí)間間隔。 (2)plot()函數(shù)可用于連續(xù)函數(shù)的繪制。 (3)用axis()函數(shù)限制坐標(biāo)范圍,可使圖像更加勻稱美觀。 改進(jìn)想法: 本題中函數(shù)的表示方法都不只一種。如階躍函數(shù)可以借助符號(hào)函數(shù)來(lái)實(shí)現(xiàn)可視化。其程序和結(jié)果如下: t=-5:0.05:5 f=sign(t)%調(diào)用符號(hào)函數(shù)sign()axis([-5,5,-1.1,1.1]) ff=1/2+1/2*f %運(yùn)用階躍函數(shù)與符號(hào)函數(shù)的關(guān)系,表示出階躍函數(shù)ff plot(t,ff)axis([-5,5,-0.1,1.1]) f=heaviside(t)10.80.60.40.20-5-4-3-2-1012345 實(shí)驗(yàn)二 離散時(shí)間信號(hào)的表示及可視化 實(shí)驗(yàn)題目: f(n)??(n);f(n)??(n);f(n)?ean(分別取a?0及a?0); f(n)?RN(n)(分別取不同的N值);f(n)?Sa(n?); f(n)?Sin(n?)(分別取不同的?值); 解題分析: 以上各類離散函數(shù),可仿照連續(xù)函數(shù)的可視化,先運(yùn)用n =n1: p: n2的命令定義自變量的范圍及步長(zhǎng),然后調(diào)用對(duì)應(yīng)的函數(shù),建立f與t的關(guān)系,最后調(diào)用stem()函數(shù)繪制圖像,并用axis()函數(shù)限制其坐標(biāo)范圍。 實(shí)驗(yàn)程序: (1)f(n)??(n) n=-5:0.5:5 %設(shè)定時(shí)間變量n的范圍及步長(zhǎng) f=dirac(n)stem(n,f)%調(diào)用stem()繪制離散函數(shù) title('f=dirac(t)')axis([-5,5,-3,10])%用axis函數(shù)規(guī)定橫縱坐標(biāo)的范圍(2)f(n)??(n) n=-5:0.5:5 f=heaviside(n)stem(n,f)title('f=Heaviside(t)')axis([-5,5,-0.5,1.5])(3)f(n)?ean a=1時(shí): n=-5:0.5:5 f=exp(n)stem(n,f)title('f=exp(n)')a=2時(shí): n=-5:0.5:5 f=exp(2*n)stem(n,f)title('f=exp(2*n)')a=-2時(shí): n=-5:0.5:5 f=exp(-2*n)stem(n,f)title('f=exp(-2*n)')(4)f(n)?RN(n) n=-5:0.5:5 f=rectpuls(n,2)stem(n,f)title('f=R(n)')axis([-5,5,-0.5,1.5])(5)f(n)?Sa(n?) ω=1時(shí): n=-20:0.5:20 f=sin(n)./(n)stem(n,f)title('f=Sa(n)')axis([-20,-20,-0.5,1.1])ω=5時(shí): n=-20:0.5:20 f=sin(5*n)./(5*n)13 stem(n,f)title('f=Sa(5*n)')axis([-20,-20,-1,5])(6)f(n)?Sin(n?) ω=1時(shí): n=-5:0.5:5 f=sin(n)stem(n,f)title('f=sin(n)')axis([-5,5,-2,2])ω=5時(shí): n=-5:0.5:5 f=sin(5*n)stem(n,f)title('f=sin(5*n)')axis([-5,5,-2,2]) 實(shí)驗(yàn)結(jié)果; (1) f=dirac(t)1086420-2-5-4-3-2-10123452) f=Heaviside(t)1.510.50-0.5-5-4-3-2-10123453)((a=1時(shí): f=exp(n)150100500-5-4-3-2-1012345a=2時(shí): 2.5x 104f=exp(2*n)21.510.50-5-4-3-2-1012345 a=-2時(shí): 4f=exp(-2*n)2.5x 1021.510.50-5-4-3-2-1012345(4) f=R(n)1.510.50-0.5-5-4-3-2-1012345 (5)ω=1時(shí): f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5時(shí): f=Sa(5*n)0.250.20.150.10.050-0.05-0.1-0.15-0.2-20-15-10-505101520(6)ω=1時(shí): f=sin(n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345 ω=5時(shí): f=sin(5*n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345 實(shí)驗(yàn)心得體會(huì): 用plot()函數(shù)可以繪制離散序列,但是與連續(xù)序列有所不同,需要在括號(hào)內(nèi)加上'.'。但是plot()畫(huà)出來(lái)的函數(shù)圖像不直觀,顯得很凌亂。 改進(jìn)想法: (1)對(duì)于離散函數(shù),如果使用stem(n,f, '.')函數(shù),繪圖效果更好。如抽樣函數(shù)的程序: n=-20:0.5:20 f=sin(n)./(n)stem(n,f,'.')title('f=Sa(n)')axis([-20,-20,-0.5,1.1])繪圖結(jié)果如下: f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520 對(duì)比可知此法做出的圖像更加清晰美觀。 (2)MATLAB 可以自動(dòng)地根據(jù)曲線數(shù)據(jù)的范圍選擇合適的坐標(biāo)系,從而使得曲線盡可能清晰地顯示出來(lái),一般情況下不必選擇坐標(biāo)系。但是,如果對(duì) MATLAB自動(dòng)產(chǎn)生的坐標(biāo)軸不滿意,可以利用 axis 命令對(duì)坐標(biāo)軸進(jìn)行調(diào)整。 實(shí)驗(yàn)三 系統(tǒng)的時(shí)域求解 實(shí)驗(yàn)題目: 1.設(shè)h(n)?(0.9)nu(n),x(n)?u(n)?u(n?10),求y(n)?x(n)*h(n),并畫(huà)出x(n)、h(n)、y(n)波形。 y(n)?0.81y(n?2)?x(n)?x(n?2)的單位 j?2.求因果線性移不變系統(tǒng)抽樣響應(yīng)h(n),并繪出H(e)的幅頻及相頻特性曲線。 解題分析: 1.用heaviside()和exp()函數(shù) 表示出x(n)和h(n),然后調(diào)用conv()函數(shù)實(shí)現(xiàn)x(n)和h(n)的卷積y(n)。并且分別將三個(gè)函數(shù)圖像繪出。 2.通過(guò)給矩陣a,b賦值,建立系統(tǒng)差分方程,然后調(diào)用impz()函數(shù)求系統(tǒng)的沖激響應(yīng),再用函數(shù)freqs(b,a)進(jìn)行系統(tǒng)頻率響應(yīng)的分析。 實(shí)驗(yàn)程序: (1) n=-10:20 %設(shè)置變量范圍,默認(rèn)步長(zhǎng)為1 f=heaviside(n)x=heaviside(n)-heaviside(n-10)%階躍函數(shù)直接相減 figure(1)%產(chǎn)生圖像窗口1 stem(n,x)%繪制函數(shù)x title('x(n)')h=0.9.^n.*f %函數(shù)h的表達(dá)式 figure(2)%產(chǎn)生圖像窗口2 stem(n,h)%繪制函數(shù)h title('h(n)')n1=-20:40 y=conv(h,x)%調(diào)用conv()函數(shù)求h和x的卷積 figure(3)%產(chǎn)生圖像窗口3 stem(y)%繪制函數(shù)y title('y(n)=x(n)*h(n)')(2) a=[1 0-0.81] %描述系統(tǒng)的差分方程的系數(shù) b=[1 0-1] %描述系統(tǒng)的差分方程的系數(shù) figure(1)h=impz(n,m,-10:10)%調(diào)用impz()函數(shù)求系統(tǒng)的沖激響應(yīng) stem(h)%繪制函數(shù)h的離散序列 title('h(n)')figure(2)freqs(b,a)%對(duì)連續(xù)系統(tǒng)頻率響應(yīng)H(jw)進(jìn)行分析的函數(shù)freqs() 實(shí)驗(yàn)結(jié)果; (1) x(n)10.90.80.70.60.50.40.30.20.10-10-505101520 h(n)0.90.80.70.60.50.40.30.20.10-10-505101520y(n)=x(n)*h(n)***05060702) (h(n)1.210.80.60.40.20-0.20510152025 100.09udeti100.05agnM100.0110-210-1100101Frequency(rad/s)1)s0.5reeeg(d0e hasP-0.5-110-210-1100101Frequency(rad/s) 實(shí)驗(yàn)心得體會(huì): (1)計(jì)算離散序列的卷積時(shí),應(yīng)考慮其結(jié)果的橫坐標(biāo)范圍的改變。(2)向量相乘時(shí),注意用‘.’。 (3)借助MATLAB的內(nèi)部函數(shù)conv()可以很容易地完成兩個(gè)信號(hào)的卷積運(yùn)算,并且其完成的是兩個(gè)多項(xiàng)式的乘法運(yùn)算,在MATLAB中它們的系數(shù)構(gòu)成一個(gè)行向量來(lái)表示。 (3)表示系統(tǒng)的方法是用系統(tǒng)函數(shù)分子和分母多項(xiàng)式系數(shù)行向量來(lái)表示。 改進(jìn)想法: (1)n=-10:20 %f=heaviside(n)x=heaviside(n)-heaviside(n-10)%figure(1)%axis([-10,20,0,1])stem(n,x)%title('x(n)')h=0.9.^n.*f %figure(2)%stem(n,h)%axis([-10,20,0,1])title('h(n)')n1=-20:40 y=conv(h,x)%figure(3)%stem(y)%axis([0,62,0,7])title('y(n)=x(n)*h(n)') 運(yùn)行結(jié)果: 設(shè)置變量范圍,默認(rèn)步長(zhǎng)為1 階躍函數(shù)直接相減 產(chǎn)生圖像窗口1 繪制函數(shù)x 函數(shù)h的表達(dá)式 產(chǎn)生圖像窗口2 繪制函數(shù)h 調(diào)用conv函數(shù)求h和x的卷積 產(chǎn)生圖像窗口3 繪制函數(shù)y 26 x(n)10.90.80.70.60.50.40.30.20.10-10-505101520h(n)10.90.80.70.60.50.40.30.20.10-10-505101520 y(n)=x(n)*h(n)***405060 實(shí)驗(yàn)四 信號(hào)的DFT分析 實(shí)驗(yàn)題目: 計(jì)算余弦序列x(n)?cos(?8n)RN(n)的DFT。分別對(duì)N=10、16、22時(shí)計(jì)算DFT,繪出X(k)幅頻特性曲線,分析是否有差別及產(chǎn)生差別的原因。 解題分析: 用矩陣代替門(mén)函數(shù)給變量n賦值,并設(shè)定不同的N值,然后調(diào)用fft()函數(shù)實(shí)現(xiàn)函數(shù)的傅里葉變換,然后用subplot()和stem()函數(shù)繪圖。 實(shí)驗(yàn)程序: (1)N=10時(shí): N=10 %設(shè)定N的值為10 n=[0:N-1] %用矩陣代替門(mén)函數(shù)給n賦值 x=cos((pi/8).*n)%調(diào)用cos()函數(shù) y=fft(x)%調(diào)用fft()函數(shù)求x的傅里葉變換 subplot(2,1,1),stem(n,y)%繪制y的離散圖 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%繪制y的幅頻特性曲線 title('X(k)')(2)N=16時(shí): N=16 %設(shè)定N的值為16 n=[0:N-1] %用矩陣代替門(mén)函數(shù)給n賦值 x=cos((pi/8).*n)%調(diào)用cos()函數(shù) y=fft(x)%調(diào)用fft()函數(shù)求x的傅里葉變換 subplot(2,1,1),stem(n,y)%繪制y的離散圖 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%繪制y的幅頻特性曲線 title('X(k)')(3)N=22時(shí): N=22 %設(shè)定N的值為22 n=[0:N-1] %用矩陣代替門(mén)函數(shù)給n賦值 x=cos((pi/8).*n)%調(diào)用cos()函數(shù) y=fft(x)%調(diào)用fft()函數(shù)求x的傅里葉變換 subplot(2,1,1),stem(n,y)%繪制y的離散圖 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%繪制y的幅頻特性曲線 title('X(k)') 實(shí)驗(yàn)結(jié)果; (1)N=10時(shí): DFT[cos((pi/8)*n]3210-10123456789X(k)64200123456789(2)N=16時(shí): DFT[cos((pi/8)*n]1050-5051015X(k)864200510153)N=22時(shí): DFT[cos((pi/8)*n]6420-20510152025X(k)***1(實(shí)驗(yàn)結(jié)果分析: 由圖可知,不同的N值所對(duì)應(yīng)的DFT序列和幅頻響應(yīng)不同,是因?yàn)镹代表DFT的變換區(qū)間長(zhǎng)度,當(dāng)N取不同的值時(shí),函數(shù)所對(duì)應(yīng)的離散傅里葉變換和幅頻特性曲線也不同。 實(shí)驗(yàn)心得體會(huì): MATLAB是計(jì)算機(jī)運(yùn)算,無(wú)法實(shí)現(xiàn)無(wú)限時(shí)間信號(hào)和無(wú)限大數(shù)量的計(jì)算,故而周期信號(hào)只能取有限個(gè)諧波分量近似合成,即N值有限,且N值越大,仿真結(jié)果越接近。所以手工求取的傅里葉變換系數(shù)與MATLAB求取存在差別。 實(shí)驗(yàn)五 系統(tǒng)時(shí)域解的快速卷積求法 實(shí)驗(yàn)題目: 用快速卷積法計(jì)算系統(tǒng)響應(yīng) y(n)?x(n)*h(n),已知: x(n)?sin(0.4n)R15(n),h(n)?0.9nR20(n)。要求取不同的L點(diǎn)數(shù),并畫(huà)出x(n)、h(n)、y(n)波形,分析是否有差別及產(chǎn)生差別的原因。 解題分析: 根據(jù)離散序列卷積及傅里葉變換的性質(zhì),可先求出兩函數(shù)x(n)和h(n)的L點(diǎn)傅里葉變換,分別得到Xk和Yk,然后求Xk和Yk之積Hk的傅里葉反變換,即得到了x(n)和h(n)的卷積y(n)。 實(shí)驗(yàn)程序: L=10時(shí): n1=[0:14] %用矩陣代替門(mén)函數(shù)給n1賦值 x=sin(0.4.*n1)%寫(xiě)出x的表達(dá)式 n2=[0:19] %給n2賦值 y=0.9.^n2 %寫(xiě)出y的表達(dá)式 Xk=fft(x,10)%調(diào)用fft()函數(shù)求x的L(=10)點(diǎn)傅里葉變換 Yk=fft(y,10)%求y的L點(diǎn)傅里葉變換 Hk=Xk.*Yk %寫(xiě)出Hk的表達(dá)式 h=ifft(Hk)%調(diào)用ifft()函數(shù)求Hk的傅里葉反變換 subplot(3,1,1),stem(x)%繪制x的離散圖 title('x(n)')subplot(3,1,2),stem(y)%繪制y的離散圖 title('y(n)')subplot(3,1,3),stem(h)%繪制h的離散圖 title('h(n)')xlabel('L=10')%橫坐標(biāo)處做標(biāo)注 (2)L=18時(shí): n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,18)Yk=fft(y,18)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')xlabel('L=18')(3)L=28時(shí): n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,28)Yk=fft(y,28)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')34 xlabel('L=28')(4)L=35時(shí): n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,35)Yk=fft(y,35)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')xlabel('L=35') 實(shí)驗(yàn)結(jié)果; (1)L=10時(shí): x(n)10-1051015y(n)10.***1820h(n)42012345678910L=102)L=18時(shí): x(n)10-1051015y(n)10.***1820h(n)50-***8L=183)L=28時(shí): 36((x(n)10-1051015y(n)10.***1820h(n)50-5051015202530L=284)L=35時(shí): x(n)10-1051015y(n)10.***1820h(n)50-***L=35 37(實(shí)驗(yàn)結(jié)果分析: 由圖可知,當(dāng)L取不同的值時(shí),對(duì)應(yīng)的y(n)波形形狀相似,但是有所不同,產(chǎn)生這種差別的原因是L代表傅里葉變換區(qū)間長(zhǎng)度,當(dāng)L取不同的值時(shí),所對(duì)應(yīng)的函數(shù)波形也有所差別。 實(shí)驗(yàn)心得體會(huì):(1)計(jì)算離散序列的卷積,雖然本實(shí)驗(yàn)的快速卷積方法看上去多次變換了變量的域,使過(guò)程變復(fù)雜了,但實(shí)際上減少了計(jì)算量,是一種快速而簡(jiǎn)單的方法。(2)用subplot繪圖函數(shù)可將圖形窗口分成若干等份,便于將多個(gè)圖像進(jìn)行分組或者比較。 改進(jìn)想法: 當(dāng)L取不同的值時(shí),matlab自動(dòng)生成的圖像的橫縱坐標(biāo)范圍不同,不便于相互比較,因此可以自己規(guī)定坐標(biāo)軸范圍,這樣可以更加直觀地看出各波形間的差別。 信號(hào)與系統(tǒng)實(shí)驗(yàn) 實(shí)驗(yàn)一常用信號(hào)的觀察 方波: 正弦波: 三角波: 在觀測(cè)中,虛擬示波器完全充當(dāng)實(shí)際示波器的作用,在工作臺(tái)上連接AD1為示波器的輸入,輸入方波、正弦波、三角波信號(hào)時(shí),可在電腦上利用軟件觀測(cè)到相應(yīng)的波形,其縱軸為幅值可通過(guò)設(shè)置實(shí)現(xiàn)幅值自動(dòng)調(diào)節(jié)以觀測(cè)到最佳大小的波形,其橫軸為時(shí)間,宜可通過(guò)設(shè)置實(shí)現(xiàn)時(shí)間自動(dòng)調(diào)節(jié)以觀測(cè)到最佳寬度的波形。實(shí)驗(yàn)四非正弦周期信號(hào)的分解與合成 方波DC信號(hào): DC信號(hào)幾乎沒(méi)有,與理論相符合,原信號(hào)沒(méi)有添加偏移。 方波基波信號(hào): 基波信號(hào)為與原方波50Hz信號(hào)相對(duì)應(yīng)的頻率為50Hz的正弦波信號(hào),是方波分解的一次諧波信號(hào)。 方波二次諧波信號(hào): 二次諧波信號(hào)頻率為100Hz為原方波信號(hào)頻率的兩倍,幅值較一次諧波較為減少。 方波三次諧波信號(hào): 三次諧波信號(hào)頻率為150Hz為原方波信號(hào)的三倍。幅值較一二次諧波大為減少。 方波四次諧波信號(hào): 四次諧波信號(hào)的頻率為200Hz為原方波信號(hào)的四倍。幅值較三次諧波再次減小。 方波五次諧波信號(hào): 五次諧波頻率為250Hz為原方波信號(hào)的五倍。幅值減少到0.3以內(nèi),幾乎可以忽略。 綜上可知:50Hz方波可以分解為DC信號(hào)、基波信號(hào)、二次、三次、四次、五次諧波信號(hào)…,無(wú)偏移時(shí)即無(wú)DC信號(hào),DC信號(hào)幅值為0。分解出來(lái)的基波信號(hào)即一次諧波信號(hào)頻率與原方波信號(hào)頻率相同,幅值接近方波信號(hào)的幅值。二次諧波、三次諧波、四次諧波、五次諧波依次頻率分別為原方波信號(hào)的二、三、四、五倍,且幅值依次衰減,直至五次諧波信號(hào)時(shí)幾乎可以忽略??芍讲ㄐ盘?hào)可分解為多個(gè)諧波。方波基波加三次諧波信號(hào): 基波疊加上三次諧波信號(hào)時(shí),幅值與方波信號(hào)接近,形狀還有一定差異,但已基本可以看出疊加后逼近了方波信號(hào)。 方波基波加三次諧波信號(hào)加五次諧波信號(hào): 基波信號(hào)、三次諧波信號(hào)、五次諧波信號(hào)疊加以后,比基波信號(hào)、三次諧波信號(hào)疊加后的波形更加接近方波信號(hào)。 綜上所述:方波分解出來(lái)的各次諧波以及DC信號(hào),疊加起來(lái)以后會(huì)逼近方波信號(hào),且疊加的信號(hào)越多,越是接近方波信號(hào)。說(shuō)明,方波信號(hào)可有多個(gè)諧波合成。 三角波DC信號(hào): 三角波基波信號(hào): 三角波二次諧波信號(hào): 三角波三次諧波信號(hào): 三角波四次諧波信號(hào): 三角波五次諧波信號(hào): 三角波基波加三次諧波信號(hào): 三角波基波加三次諧波加五次諧波信號(hào): 三角波信號(hào)的分析與方波信號(hào)的分析基本一致,可以看出三角波也可以分解為多個(gè)諧波,并且相應(yīng)的多個(gè)多次諧波可以合成三角波信號(hào),且參與合成的波形越多,合成波越是逼近三角波信號(hào)。 綜合兩個(gè)波形來(lái)看,可知任何周期性函數(shù)均可分解為相應(yīng)的傅里葉展開(kāi)式里所包含的直流分量和各次諧波項(xiàng)。且任何周期性函數(shù)均可由鎖對(duì)應(yīng)的直流分量和各次諧波項(xiàng)所合成,參與合成的信號(hào)越多,結(jié)果越逼近周期性函數(shù)的圖形。 實(shí)驗(yàn)思考題 1.什么樣的周期性函數(shù)沒(méi)有直流分量和余弦項(xiàng); 答:無(wú)偏移的周期性函數(shù)沒(méi)有直流分量,當(dāng)周期性函數(shù)為奇函數(shù)時(shí)沒(méi)有直流分量和余弦項(xiàng)。 2.分析理論合成的波形與實(shí)驗(yàn)觀測(cè)到的合成波形之間誤差產(chǎn)生的原因。 答:理論合成的波形不能把所有無(wú)限個(gè)諧波合成起來(lái),故必然產(chǎn)生誤差,且實(shí)驗(yàn)設(shè)備、實(shí)驗(yàn)方法也存在一定的誤差。 實(shí)驗(yàn)二 零輸入、零狀態(tài)級(jí)完全響應(yīng) 零輸入響應(yīng)下降沿采樣: 零輸入響應(yīng)上升沿采樣: 可見(jiàn),零輸入響應(yīng)按照指數(shù)形式下降,最終降為零。其規(guī)律符合-1tU(t)=RCc2e。第三篇:信號(hào)與系統(tǒng)實(shí)驗(yàn)報(bào)告1
第四篇:信號(hào)與系統(tǒng) MATLAB實(shí)驗(yàn)報(bào)告
第五篇:信號(hào)與系統(tǒng)實(shí)驗(yàn)報(bào)告總結(jié)