基于DSP芯片的語音信號FIR濾波系統(tǒng)(共16頁)_第1頁
基于DSP芯片的語音信號FIR濾波系統(tǒng)(共16頁)_第2頁
基于DSP芯片的語音信號FIR濾波系統(tǒng)(共16頁)_第3頁
基于DSP芯片的語音信號FIR濾波系統(tǒng)(共16頁)_第4頁
基于DSP芯片的語音信號FIR濾波系統(tǒng)(共16頁)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PAGE 18摘要(zhiyo) 數(shù)字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學科而又廣泛應用于許多領(lǐng)域的新興學科。20世紀60年代(nindi)以來,隨著計算機和信息技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)應運而生并得到迅速的發(fā)展。數(shù)字信號處理是一種通過使用數(shù)學技巧執(zhí)行轉(zhuǎn)換或提取信息,來處理現(xiàn)實信號的方法,這些信號由數(shù)字序列表示。在過去的二十多年時間里,數(shù)字信號處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應用。隨著微處理技術(shù)的快速發(fā)展,微處理器芯片的集成度從最早的幾千個晶體管發(fā)展到現(xiàn)在的上億個晶體管,字長從4位提高到了64位,正是這些技術(shù)的飛速發(fā)展引發(fā)了一輪又一

2、輪的信息產(chǎn)業(yè)革命,而人們的生活、學習和工作方式也在以計算機技術(shù)、通信技術(shù)為核心的信息技術(shù)的影響下發(fā)生著前所未有(qin su wi yu)的改變。然而在這次設計中,比較核心的是數(shù)字濾波器,數(shù)字濾波器是一種用來過濾時間離散信號的數(shù)字系統(tǒng),通過對抽樣數(shù)據(jù)進行數(shù)學處理來達到頻域。濾波的目的。根據(jù)其單位沖激響應函數(shù)的時域特性可分為兩類:無限沖激響應(IIR)濾波器和有限沖激響應(FIR)濾波器。與IIR濾波器相比,F(xiàn)IR濾波器只有零點,除原點外在z平面上沒有極點,因此總是穩(wěn)定的和可實現(xiàn)的;更重要的是,F(xiàn)IR濾波器在滿足一定的對稱條件下,可以獲得嚴格的線性相位特性,這一點是IIR濾波器難以實現(xiàn)的。因此。

3、它在高保真的信號處理如數(shù)字音頻、圖像處理、數(shù)據(jù)傳輸、生物醫(yī)學等領(lǐng)域得到廣泛應用。對于本設計主要是利用一個DSP芯片來進行語音采集系統(tǒng)的設計,而數(shù)字信號處理技術(shù)的發(fā)展使得采用數(shù)字化的方法實時的處理語音信號成為可能。早期的語音信號處理均是采用模擬處理,對聲音信號最常用的濾波、相關(guān)、譜分析等運算,部分采用模擬電路來實現(xiàn)的。這種傳統(tǒng)的模擬方法處理語音信號,硬件設備昂貴,不能升級、產(chǎn)品生命周期短,而采用數(shù)字處理技術(shù)處理語音信號具有抗干擾性強、便于傳輸和處理等優(yōu)點,代表著語音處理技術(shù)的發(fā)展方向。DSP芯片高速、可編程的特點使其非常適合于語音信號處理領(lǐng)域。 一、設計所用軟件介紹 1.1 FIR濾波器及它的工

4、作原理 FIR(Finite Impulse Response)濾波器:有限長單位沖激響應濾波器,又稱為非遞歸型濾波器,是 HYPERLINK /view/162096.htm t /_blank 數(shù)字信號處理系統(tǒng)中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩(wěn)定的系統(tǒng)。因此,F(xiàn)IR濾波器在通信、圖像處理、 HYPERLINK /view/14685.htm t /_blank 模式識別等領(lǐng)域都有著廣泛的應用。 在進入FIR濾波器前,首先要將信號通過A/D器件進行模數(shù)轉(zhuǎn)換,把模擬信號轉(zhuǎn)化為數(shù)字信號;為了使信號處理能夠不發(fā)生失真(

5、sh zhn),信號的采樣速度必須滿足奈奎斯特定理,一般取信號頻率上限的4-5倍做為采樣頻率;一般可用速度較高的逐次逼進式A/D HYPERLINK /view/110440.htm t /_blank 轉(zhuǎn)換器,不論采用乘累加方法還是分布式算法設計FIR濾波器,濾波器輸出的數(shù)據(jù)都是一串序列(xli),要使它能直觀地反應出來,還需經(jīng)過數(shù)模轉(zhuǎn)換,因此由FPGA構(gòu)成的FIR濾波器的輸出須外接D/A模塊。FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號處理任務,相對于串行運算為主導的通用DSP芯片來說,其 HYPERLINK /view/149970.htm t /_blank 并行

6、性和可擴展性更好,利用FPGA乘累加的快速算法(sun f),可以設計出高速的FIR HYPERLINK /view/163224.htm t /_blank 數(shù)字濾波器。 1.2 CCS軟件 CCS(Code Composer Studio數(shù)據(jù)設計工作室)代碼調(diào)試器是一種合成開發(fā)環(huán)境。 它是一種針對標準TMS320調(diào)試器接口的交互式方法。CCS目前有CCS1.1, CCS1.2 和CCS2.0等三個不同時期的版本,又有CC2000 ( 針對C2XX ),CCS5000 ( 針對C54XX )和CCS6000 (針對C6X )三個不同的型號。我們所使用的是CCS50002.0的版本。CCS50

7、00具有以下特性:TI編譯器的完全集成的環(huán)境:CCS5000目標管理系統(tǒng),內(nèi)建編輯器,所有的調(diào)試和分析能力集成在一個Windows環(huán)境中。對C和DSP匯編文件(wnjin)的目標管理:目標編輯器保持對所有文件及相關(guān)內(nèi)容的跟蹤(gnzng)。它只對最近一次編譯中改變過的文件重新編譯,以節(jié)省編譯時間。高集成(j chn)的編輯器調(diào)整C和DSP匯編代碼:CCS5000的內(nèi)建編輯器支持C和匯編文件的動態(tài)語法加亮顯示。使用戶能很容易地閱讀代碼和當場發(fā)現(xiàn)語法錯誤。編輯和調(diào)試時的后臺編輯:用戶在使用編譯器和匯編器時沒有必要退出系統(tǒng)到DOS環(huán)境中,因為CCS5000會自動將這些工具裝載在它的環(huán)境中。在其窗口中

8、,錯誤會加亮顯示只要雙擊錯誤就可以直接到達出錯處。在含有浮點并行調(diào)試管理器(PDM)的原有的MS窗口下支持多處理器CCS5000在 Windows95和Windows-me中支持多處理。PDM(調(diào)試管理器)允許將命令傳播給所有的或所選擇的處理器。在任何算法點觀察信號的圖形窗口探針:圖形顯示窗口使用戶能夠觀察時域或頻域內(nèi)的信號。對于頻域圖,F(xiàn)FT(快速傅立葉變換)在主機內(nèi)執(zhí)行,這樣就可以觀察所感興趣的部分而無須改變它的DSP代碼。圖顯示也可以同探針連接,當前顯示窗口被更新時,探針被指定,這樣當代碼執(zhí)行到達該點時,就可以迅速地觀察到信號。文件探針在算法處通過文件提取或加入信號或數(shù)據(jù):CCS5000

9、允許用戶從PC機讀或?qū)懶盘柫?。而不是實時的讀信號,這就可以用已知的例子來仿真算法。圖形分析:CCS5000的圖形分析能力在其環(huán)境中是集成的。在后臺(系統(tǒng)命令)執(zhí)行用戶的DOS程序:用戶可以執(zhí)行CCS5000中的DOS程序,并將其輸出以流水方式送到CCS5000的輸出窗口。且允許用戶將應用程序集成到CCS5000。技術(shù)狀態(tài)觀察窗口:CCS5000的可視窗口允許用戶進入C表達式及相關(guān)變量。結(jié)構(gòu)、數(shù)組、指針都能很簡單地遞歸擴展和減少,以便進入復雜結(jié)構(gòu)。代數(shù)分解窗口:允許用戶選擇查看寫成代數(shù)表達式的C格式,提高可讀性 。目標DSP上的幫助:DSP結(jié)構(gòu)和寄存器上的在線幫助可以使用戶不必查看技術(shù)手冊。用戶

10、擴展:擴展語言(GEL)使得(sh de)用戶可以將自己的菜單項加到CCS5000的菜單欄中。 操作(cozu)流程圖 1.3MATLAB軟件(run jin)介紹MATLAB是美國 HYPERLINK /view/1855191.htm t /_blank MathWorks公司出品的商業(yè) HYPERLINK /view/1658637.htm t /_blank 數(shù)學軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及 HYPERLINK /view/920695.htm t /_blank 數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。MATLAB是ma

11、trix&laboratory兩個詞的 HYPERLINK /subview/67312/11247525.htm t /_blank 組合,意為矩陣工廠(矩陣實驗室)。是由美國 HYPERLINK /view/1855191.htm t /_blank mathworks公司發(fā)布的主要面對科學計算、可視化以及交互式程序設計的高科技計算環(huán)境。它將 HYPERLINK /view/295760.htm t /_blank 數(shù)值分析、 HYPERLINK /view/2627393.htm t /_blank 矩陣計算、科學數(shù)據(jù)可視化以及非 HYPERLINK /view/300474.htm t

12、 /_blank 線性動態(tài)系統(tǒng)的 HYPERLINK /view/44500.htm t /_blank 建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學研究、工程設計以及必須進行有效數(shù)值計算的眾多科學領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式 HYPERLINK /view/128511.htm t /_blank 程序設計語言(如C、Fortran)的編輯模式,代表了當今國際科學計算軟件的先進水平。MATLAB和 HYPERLINK /view/30608.htm t /_blank Mathematica、 HYPERLINK /subview/1278

13、64/15882715.htm t /_blank Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行 HYPERLINK /view/10337.htm t /_blank 矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、 HYPERLINK /view/642820.htm t /_blank 信號處理與通訊、 HYPERLINK /view/14662.htm t /_blank 圖像處理、 HYPERLINK /view/1345304.htm t /_blank 信號檢測、 HY

14、PERLINK /view/2659790.htm t /_blank 金融建模設計與分析等領(lǐng)域。MATLAB的基本數(shù)據(jù)單位是矩陣,它的 HYPERLINK /view/178461.htm t /_blank 指令 HYPERLINK /view/420676.htm t /_blank 表達式與數(shù)學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C, HYPERLINK /view/36402.htm t /_blank FORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的 HYPERLINK /view/1

15、658637.htm t /_blank 數(shù)學軟件。在新的版本中也加入了對 HYPERLINK /subview/10075/6770152.htm t /_blank C, HYPERLINK /view/36402.htm t /_blank FORTRAN, HYPERLINK /view/824.htm t /_blank C+, HYPERLINK /subview/29/12654100.htm t /_blank JAVA的支持。 二、設計原理及步驟 2.1濾波器原理 數(shù)字濾波器有兩類:IIR數(shù)字濾波器和FIR數(shù)字濾波器。FIR濾波器是有限長單位沖激響應濾波器,在結(jié)構(gòu)上是非遞歸型

16、的。它可以在幅度特性隨意設計的同時,保證精確嚴格(yng)的線性相位。線性相位特性在實際應用中非常重要,如在數(shù)據(jù)通信、圖像處理、語音信號處理等領(lǐng)域,往往都要求具有線性相位特性。并且由于FIR 濾波器的單位脈沖響應有限長,系統(tǒng)不存在非穩(wěn)定現(xiàn)象,我們總能用因果穩(wěn)定系統(tǒng)來實現(xiàn)FIR 濾波器。FIR 主要的不足在于其較好的性能是以較高的階數(shù)為代價換來的,對于相同的設計指標,FIR 濾波器所要求的階數(shù)比IIR 濾波器高25 倍,信號的延遲偏大。因此,在保證相同性能的前提下,盡量降低其階數(shù)是FIR 數(shù)字濾波器設計的目標之一。FIR濾波器是有限長單位沖激響應濾波器,它具有以下獨特的優(yōu)點:(1)可以在幅度特性

17、隨意設計的同時,保證精確、嚴格的線性相位;避免被處理的信號產(chǎn)生相位失真,這一特點在寬頻帶信號處理、陣列信號處理、數(shù)據(jù)傳輸?shù)认到y(tǒng)中非常重要; (2)由于FIR濾波器的單位脈沖響應h(n)是有限長序列,因此FIR濾波器沒有不穩(wěn)定的問題; (3)由于FIR濾波器一般為非遞歸的結(jié)構(gòu),因此在有限精度運算下,不會出現(xiàn)遞歸結(jié)構(gòu)中極性震蕩等不穩(wěn)定現(xiàn)象,誤差較小。FIR濾波器的數(shù)學(shxu)表達式為: (2-1)式中:N為FIR濾波器的抽頭數(shù);x(n)為第n時刻(shk)的輸入樣本;h(i)為FIR濾波器第i級抽頭系數(shù)。其相應的z變換為: (2-2)式中:z-i為N-1階多項式。圖2.1 FIR濾波器的直接(

18、zhji)型結(jié)構(gòu) 2.2MATLAB設計(shj) 數(shù)字濾波器的設計可以使用MATLAB(線性代數(shù)計算)軟件,它是一種功能強、效率高、便于進行科學和工程計算的交互式軟件包。MATLAB中的工具箱(Toolbox)包含(bohn)許多實用的程序。濾波器設計就包含在Toolbox下的signal中。下面簡單介紹一下用MATLAB設計FIR濾波器的方法。設計低通FIR濾波器(采用Hamming窗):B=FIR1(N,Wn)其中,N為濾波器的階數(shù),Wn為歸一化截至頻率,0.0WnExport to C Header File然后(rnhu)選擇Export as:選擇16位符號數(shù),點擊OK,將濾波器參

19、數(shù)存為頭文件,打開頭文件可以看到:/* * Filter Design and Analysis Tool - Generated Filter Coefficients - C Source * Generated by MATLAB - Signal Processing Toolbox */* General type conversion for MATLAB generated C-code */#include tmwtypes.h/* * Expected path to tmwtypes.h * D:MATLAB6p1externincludetmwtypes.h */* *

20、Warning - Filter coefficients were truncated to fit specified data type! * The resulting response may NOT match generated theoretical response. * Use the Filter Design & Analysis Tool to design accurate fixed-point * filter coefficients! */const int NL = 64;const int16_T NUM64 = -15, -28, -6, 31, 37

21、, -10, -64, -44, 54, 115, 28, -140, -166, 46, 269, 178, -206, -422, -97, 477, 551, -149, -872, -576, 679, 1429, 345, -1842, -2412, 803, 6794, 11599, 11599, 6794, 803, -2412, -1842, 345, 1429, 679, -576, -872, -149, 551, 477, -97, -422, -206, 178, 269, 46, -166, -140, 28, 115, 54, -44, -64, -10, 37,

22、31, -6, -28, -15;const int DL = 1;const int16_T DEN1 = 32767;const int16_T NUM64就是(jish)該濾波器的系數(shù)。 2.3操作步驟1連接好DSP開發(fā)系統(tǒng),音頻線連接計算機和AD50模塊的輸入,另一條音頻線連接AD50模塊輸出(shch)和揚聲器輸入,或者用耳機連接AD50模塊輸出;調(diào)節(jié)RPC03可變電阻,使Uc02運放的正輸入端(3腳和5腳)出場(ch chng)前以調(diào)好。輸入電平為2.5V;把JC05跳到上面3.3V,AD50做Master;打開本實驗工程文件(.ad50firad50.pjt),加濾波器:Type

23、LowPass(低通)或者(huzh)TypeHighPass(高通)或者TypeBandPass(帶通)(此設置在主程序后部注意修改)編譯(biny),下載(xi zi)程序到DSP; 運行程序.打開聲卡信號源軟件,用計算機產(chǎn)生掃頻信號 6.調(diào)節(jié)R338調(diào)節(jié)音量按鈕,使音量大小恰當;注意聽AD50輸出的聲音,觀察加濾波器后聲音幅度與頻率變化的關(guān)系。程序中的低通為3K,高通截至頻率是1K,帶通是1K3K。結(jié)果是當開始濾波時會濾出想要濾出的頻率信號。 2.4總體設計框圖(kungt)ADC信號輸入緩沖區(qū)DSP信號輸出緩沖區(qū)DACFLASHSRAM外部邏輯電 路PC機輸入信號信號輸出信號信號 三、

24、程序(chngx) #include 5410reg.h#include stdio.h#define fc_clock port2000#define LowPass 0#define HighPass 1#define BandPass 2ioport unsigned fc_clock;ioport unsigned temp;/McBSP2初始化表const unsigned short init_tblx2=0,0 x0000,1,0 x0200,/上兩目使McBSP1處于(chy)復位狀態(tài)2,0 x0040,3,0 x0000,4,0 x0040,5,0 x0000,6,0 x01

25、01,7,0 x2000,8,0 x0000,9,0 x0000,10,0 x0000,11,0 x0000,12,0 x0000,13,0 x0000,14,0 x000c,/下兩目使McBSP 開始(kish)工作0,0 x0001,1,0 x0043;short *init_tbl=(short*)init_tblx;int mtmp;int Type;void Delay() int temp,ft; for(ft=0;ft100;ft+) for (temp=0;temp1000;temp+) ;void ShortDelay()int tmp;for(tmp=0;tmp100;tm

26、p+) ;void MainDelay(unsigned int count)int tmp;for(tmp=0;tmpcount;tmp+);void initMCBSP()int i;for(i=0;i17;i+)SPSA0=init_tbli*2+0;MCBSP0 =init_tbli*2+1;Delay();void initDMA()IMR=0X1000; /DMA 4通道(tngdo)中斷使能asm(rsbx intm); / 開放所有(suyu)可屏蔽中斷DMSA=0 x0014; / 選擇(xunz)DMA4通道DMSRC1=0 x0031; / 設置串口1接收端為DMA事件的

27、源地址DMDST1=0 x2000; / 設置DMA事件的目的地址DMCTR1=0 x3000; /設置直接傳送數(shù)據(jù)個數(shù)DMSFC1=0 x5000; / 設置DMA為多幀模式,源地址不調(diào)整目的地址按57h的值調(diào)整 DMSA=0 x0020; DMIDX0=0 x0001; /設置目的地址為自動加1調(diào)整 DMPERC=0 x1090; / 設置通道4為高優(yōu)先級并使能通道4void WriteAD50(unsigned int Data)int tmp;tmp=fc_clock; while(fc_clock&0 x40)=0) ; asm ( nop); asm ( nop); fc_cloc

28、k=0 x12; asm ( nop); tmp=fc_clock; while(tmp&0 x40) tmp=fc_clock; /asm ( nop); tmp=fc_clock; while(tmp&0 x40)=0) tmp=fc_clock; fc_clock=0 x2; asm ( nop); asm ( nop); DXR10=Data; /給TLC320AD50C的寄存器編程 SPSA0=0 x0001; / while( (MCBSP0&0 x0002)=0); /數(shù)據(jù)是否(sh fu)被TLC320AD50C接收 asm ( nop); asm ( nop); ShortD

29、elay(); asm ( nop);void initAD50()/int tmp;WriteAD50(0 x0180); /給TLC320AD50C的寄存器1編程,使其復位(f wi)ShortDelay();asm ( nop);WriteAD50(0 x0101); /TLC320AD50C脫離復位并且(bngqi)設置寄存器1,使INP,INM為輸入asm ( nop);WriteAD50(0 x0210); /設置TLC320AD50C寄存器2,使電話(dinhu)模式無效asm ( nop);WriteAD50(0 x0440); /設置(shzh)TLC320AD50C寄存器4

30、asm ( nop);asm ( nop);WriteAD50(0 x0312); /設置TLC320AD50C寄存器3,使帶0個從機asm(nop); void initDSP()volatile unsigned int *CLKMD=(volatile unsigned int*)0 x58;int i;*CLKMD=0;while(*CLKMD&1)=1);*CLKMD=0 x17EF;while(*CLKMD&1)=0); asm( ssbx intm); fc_clock=0 x2; asm( nop ); asm( nop ); i = fc_clock; asm( nop ); asm( nop ); PMST=0 xFFE3; IFR=0 x3fff; void main()Type=LowPass;initDSP();initMCBSP(); initAD50(); initDMA(); initfir()

溫馨提示

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

評論

0/150

提交評論