哈爾濱工程大學
實驗報告
實驗名稱:離散時間濾波器設計
班級:電子資訊工程4班
學號:姓名:
實驗時間: 2023年10月31日18:30
成績指導教師:欒曉明
實驗室名稱:數字訊號處理實驗室
哈爾濱工程大學實驗室與資產管理處制
一、 實驗原理
matlab是乙個資料分析和處理功能十分強大的工程實用軟體,其資料採集工具箱為實現資料的輸入和輸出提供了十分方便的函式命令。本實驗要求基於音效卡和mtlab實現音訊訊號頻譜分析儀的設計原理與實現,功能包括:
(1)音訊訊號輸入,從音效卡輸入、從w**檔案輸入、從標準訊號發生器輸入;
(2)訊號波形分析,包括幅值、頻率、週期、相位的估計、以及統計量峰值、均值、均方值和方差的計算。
(3)訊號頻譜分析,頻率、週期的統計,同行顯示幅值譜、相位譜、實頻譜、虛頻譜和功率譜的曲線。
1、頻率(週期)檢測
對週期訊號來說,可以用時域波形分析來確定訊號的週期,也就是計算相鄰的兩個訊號波峰的時間差、或過零點的時間差。這裡採用過零點(ti)的時間差t(週期)。頻率即為f = 1/t,由於能夠求得多個t值(ti有多個),故採用它們的平均值作為週期的估計值。
2、幅值檢測
在乙個週期內,求出訊號最大值ymax與最小值ymin的差的一半,即a = (ymax - ymin)/2,同樣,也會求出多個a值,但第1個a值對應的ymax和ymin不是在乙個週期內搜尋得到的,故以除第1個以外的a值的平均作為幅值的估計值。
3、相位檢測
採用過零法,即通過判斷與同頻零相位訊號過零點時刻,計算其時間差,然後換成相應的相位差。φ=2π(1-ti/t),表示x的小數部分,同樣,以φ的平均值作為相位的估計值。
頻率、幅值和相位估計的流程如圖1所示。
4、數碼訊號統計量估計
(1) 峰值p的估計
在樣本資料x中找出最大值與最小值,其差值為雙峰值,雙峰值的一半即為峰值。
p=0.5[max(yi)-min(yi)]
(2)均值估計
式中,n為樣本容量,下同。
(3) 均方值估計
(4) 方差估計
圖 1 頻率,幅值和相位估計的流程圖
其中tin表示第n個過零點,yi為第i個取樣點的值,fs為取樣頻率。
5、頻譜分析原理
時域分析只能反映訊號的幅值隨時間的變化情況,除單頻率分量的簡單波形外,很難明確提示訊號的頻率組成和各頻率分量大小,而頻譜分析能很好的解決此問題。由於從頻域能獲得的主要是頻率資訊,所以本節主要介紹頻率(週期)的估計與頻譜圖的生成。
(1)dft與fft
對於給定的時域訊號y,可以通過fourier變換得到頻域資訊y,y可按下式計算
式中,n為樣本容量,δt = 1/fs為取樣間隔。
取樣訊號的頻譜是乙個連續的頻譜,不可能計算出所有的點的值,故採用離散fourier變換(dft),即
式中,δf = fs/n。但上式的計算效率很低,因為有大量的指數(等價於三角函式)運算,故實際中多採用快速fourier變換(fft)。其原理即是將重複的三角函式算計的中間結果儲存起來,以減少重複三角函式計算帶來的時間浪費。
由於三角函式計算的重複量相當大,故fft能極大地提高運算效率。
(2)頻率、週期的估計
對於y(kδf),如果當kδf = f時,y(kδf)取最大值,則f為頻率的估計值,由於取樣間隔的誤差,f也存在誤差,其誤差最大為δf / 2,週期t=1/f。
從原理上可以看出,如果在標準訊號中混有雜訊,用上述方法仍能夠精確地估計出原標準訊號的頻率和週期。
(3)頻譜圖
為了直觀地表示訊號的頻率特性,工程上常常將fourier變換的結果用圖形的方式表示,即頻譜圖。
以頻率f為橫座標,|y(f)|為縱座標,可以得到幅值譜;
以頻率f為橫座標,argy(f)為縱座標,可以得到相位譜;
以頻率f為橫座標,rey(f)為縱座標,可以得到實頻譜;
以頻率f為橫座標,imy(f)為縱座標,可以得到虛頻譜。
根據取樣定理,只有頻率不超過fs/2的訊號才能被正確採集,即fourier變換的結果中頻率大於fs/2的部分是不正確的部分,故不在頻譜圖中顯示。即橫座標f ∈[0, fs/2]
(4)頻譜圖
模組化就是把程式劃分成獨立命名且可獨立訪問的模組,每個模組完成乙個子功能,把這些模組整合起來構成乙個整體,可以完成指定的功能滿足使用者需求。根據人類解決一般問題的經驗,如果乙個問題由兩個問題組合而成,那麼它的複雜程度大於分別考慮每個問題時的複雜程度之和,也就是說把複雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。這就是模組化的根據。
在模組劃分時應遵循如下規則:1.改進軟體結構提高模組獨立性;2.
模組規模應該適中;3.深度、寬度、扇出和扇入都應適當;4.模組的作用域應該在控制域之內;5.
力爭降低模組介面的複雜程度;6.設計單入口單出口的模組;7.模組功能應該可以**。
本著上述的啟發式規則,對軟體進行如圖 2所示的模組劃分。
圖 2頻譜分析儀的模組劃分
二、 介面設計
matlab是mathworks公司推出的數學軟體,它將數值分析、矩陣計算、訊號處理和圖形顯示結合在一起,為眾多學科領域提供了一種簡潔、高效的程式設計工具。它提供的guide工具為視覺化程式設計工具,使得軟體的介面設計像vb一樣方便。故本文採用matlab作為程式語言實現聲音頻號頻譜分析儀,以下所講的都是在matlab2014a環境中。
為了實現預期的功能,設計如圖 3所示的介面。
圖 3聲音頻號頻譜分析儀
最上面的部分為標題區,用於顯示軟體標題等資訊,不具人機互動功能。
標題區下面是訊號輸入區,包含3種輸入方式:音效卡輸入,w**檔案輸入,訊號發生器輸入。考慮到w**檔案可能是多聲道,故提供了聲道選擇的介面,因為每次只能對單個聲道進行分析。
在訊號發生器中加入了混迭選項,從而可以將產生的訊號與原有的訊號進行混迭。輸入方式介面應該具有:只有當每個單選框被選中時才允許使用對應的輸入框、按鈕等;其中取樣點數輸入框在音效卡與w**檔案的輸入方式下作為輸出,在訊號發生器的輸入方式下作為輸入。
輸入方式單選框程式**為:
(1)音效卡單選框程式**
set(findobj('tag','recordtime'),'enable','on');
h=findobj('tag','filename');
set(h,'enable','off');
h=findobj('tag','freq');
set(h,'enable','off');
h=findobj('tag','amp');
set(h,'enable','off');
h=findobj('tag','phase');
set(h,'enable','off');
set('enable','off');
set('enable','off');
set('enable','off');
set('enable','off');
set('enable','off');
set('enable','on');
(2)w**檔案單選框程式**
h=findobj('tag','filename');
set(h,'enable','on');
h=findobj('tag','freq');
set(h,'enable','off');
h=findobj('tag','amp');
set(h,'enable','off');
h=findobj('tag','phase');
set(h,'enable','off');
set(findobj('tag','recordtime'),'enable','off');
set('enable','on');
set('enable','on');
set('enable','off');
set('enable','off');
set('enable','off');
set('enable','off');
(3)訊號發生器單選框程式**
h=findobj('tag','filename');
set(h,'enable','off');
h=findobj('tag','freq');
set(h,'enable','on');
h=findobj('tag','amp');
set(h,'enable','on');
h=findobj('tag','phase');
set(h,'enable','on');
set(findobj('tag','recordtime'),'enable','off');
set('enable','off');
set('enable','off');
set('enable','on');
set('enable','on');
set('enable','on');
set('enable','off');
再往下是分析區,對於w**檔案及錄音的訊號,有時只對其中一部分訊號進行分析,故提供了分析物件範圍設定的介面。另外就是時域分析與頻域分析的按鈕,該軟體的核心**都在這兩個按鈕的**函式中。
分析區下面是分析結果區,用於顯示波形基本引數與統計量的計算結果。分析結果區的下面是波形顯示區,用於顯示時域波形,在錄音結束、開啟w**檔案成功或者訊號發生器生成波形時會更新顯示。
右邊為頻譜圖顯示區,用於顯示各種頻譜的譜線,在點選頻域分析後會更新顯示。
1、輸入模組的實現
數字語音頻號處理實驗 學生
實驗指導書 北方學院資訊科學與工程學院 電子教研室 2014年1月 前言 語音頻號處理是研究用數字訊號處理技術和語音學知識對語音頻號進行處理的新興的學科,是目前發展最為迅速的資訊科學研究領域的核心技術之一。通過語音傳遞資訊是人類最重要 最有效 最常用和最方便的交換資訊形式。同時,語言也是人與機器之間...
數字訊號處理實驗
一 實驗目的 研究不同型別的窗函式,研究一些不同的方法來測試窗函式的效能 專注於有關窄帶訊號的幾個不同的情形。二 實驗原理 訊號是無限長的,而在進行訊號處理時只能採用有限長訊號,所以需要將訊號 截斷 在訊號處理中,截斷 被看成是用乙個有限長的 視窗 看無限長的訊號,或者從分析的角度是無限長的訊號x ...
數字訊號處理實驗
班級 08050742 姓名 劉曉華 學號 41 實驗一頻譜分析與取樣定理 一 實驗目的 1 觀察模擬訊號經理想取樣後的頻譜變化關係。2 驗證取樣定理,觀察欠取樣時產生的頻譜混疊現象 3 加深對dft演算法原理和基本性質的理解 4 熟悉fft演算法原理和fft的應用 二 實驗原理 根據取樣定理,對給...