DSP課程研發(fā)設(shè)計報告_第1頁
DSP課程研發(fā)設(shè)計報告_第2頁
DSP課程研發(fā)設(shè)計報告_第3頁
免費預(yù)覽已結(jié)束,剩余18頁可下載查看

下載本文檔

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

文檔簡介

1、課程設(shè)計報告課程設(shè)計名稱:DSP原理與應(yīng)用系 部:二系學生姓名:班 級:學 號:成 績:指導教師:開課時間:2010-2011學年2學期目錄一、設(shè)計的要求1二、設(shè)計原理12.1、FIR濾波器的特點 122、FIR濾波器的基本結(jié)構(gòu) 12.3、FIR濾波器的窗函數(shù)設(shè)計法 2三、設(shè)計步驟33.1語音采集的采集與分析 33.2用MATLAB 給原始信號加噪聲 5四、設(shè)計一定參數(shù)的濾波器 74.1用MATLAB 設(shè)計濾波器 74.2、用FIR濾波器濾除高頻 11五、設(shè)計體會 17六、參考文獻 17基于TMS320VC5509 DSP的FIR濾波器設(shè)計、設(shè)計的要求1、系統(tǒng)地理解和掌握高速數(shù)字信號處理器的特

2、點和基本概念。2、了解TMS320054x DSP匯編語言的特點,掌握TMS320C54x DSP常用的開發(fā)工具,掌握集成開發(fā)環(huán)境 CCS的使用,熟練掌握利用CCS進行程序開發(fā)的一般過程。3、掌握匯編語言程序的編寫方法,匯編器和鏈接器的用法,能利用匯編指令實現(xiàn)高速數(shù)字信號處理器的一些典型用法。DSP技術(shù)在通訊、4、在DSP應(yīng)用方面得到系統(tǒng)鍛煉,通過該課程的學習為今后從事使用 控制等相關(guān)領(lǐng)域的應(yīng)用、研究和開發(fā)打下良好的基礎(chǔ),為進入社會增加一種工作技能。編寫源代碼程序,并在DSP開發(fā)環(huán)境5、要求認真查閱所需資料, 按照選題編制程序框圖, 中進行調(diào)試,最終實現(xiàn)課題所要求的功能。二、設(shè)計原理在數(shù)字信號

3、處理中,濾波占有極其重要的地位。數(shù)字濾波是語音處理、圖像處理、模式識別、頻譜分析等應(yīng)用中的基本處理算法。用DSF芯片實現(xiàn)數(shù)字濾波除了具有穩(wěn)定性好、精確度高、不受環(huán)境影響等優(yōu)點外,還具有靈活性好等特點。2.1、FIR濾波器的特點(1) 系統(tǒng)的單位沖激響應(yīng)h(n)在有限個n值處不為零;系統(tǒng)函數(shù)H(z)在|z|>0處收斂,在|z|>0處只有零點,有限z平面只有零點,而全部極點 都在z=0處個果系統(tǒng));(3)結(jié)構(gòu)上主要是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋,但有些結(jié)構(gòu)(例如頻率抽樣結(jié)構(gòu)) 中也包含有反饋的遞歸結(jié)構(gòu)。2.2、FIR濾波器的基本結(jié)構(gòu)數(shù)字濾波是將輸入的信號序列,按規(guī)定的算法進行處理,

4、從而得到所期望的輸出序列。一個線性位移不變系統(tǒng)的輸出序列 y(n)和輸入序列x(n)之間的關(guān)系,應(yīng)滿足常系數(shù)線性差分方程:(1)N 4My(n)八 bix(n-i)-' aiy(n-i)n_0i =0i =1x(n):輸入序列,y(n):輸出序列,ai、bi :濾波器系數(shù),N:濾波器的階數(shù)。在式(1)中,若所有的 ai均為0,則得FIR濾波器的差分方程:N 4y(n)八 hx(n -i)i =0對式(2)進行z變換,可得FIR濾波器的傳遞函數(shù):FIR濾波器的基本結(jié)構(gòu)是一個分節(jié)的延時線,把每一節(jié)的輸出加權(quán)累加,得到濾波器 的輸出。FIR濾波器的結(jié)構(gòu)圖如圖2.1所示:x(n-1)x(n)-

5、o y(n)x(n-N+1)圖2.1 FIR濾波器的結(jié)構(gòu)圖 FIR濾波器的單位沖激響應(yīng)h(n)為有限長序列。FIR濾波器具有線性相位特性。若h(n)為實數(shù),且滿足偶對稱或奇對稱的條件,則偶對稱:h(n )= h(N-1- n) ;奇對稱:h(n)= -h(N-1- n) 。在數(shù)字濾波器中,F(xiàn)IR濾波器具有如下幾個主要特點: FIR濾波器無反饋回路,是一種無條件穩(wěn)定系統(tǒng); FIR濾波器可以設(shè)計成具有線性相位特性。2.3、FIR濾波器的窗函數(shù)設(shè)計法常用的FIR濾波器的設(shè)計方法有窗函數(shù)設(shè)計法和頻率抽樣設(shè)計法。窗函數(shù)法設(shè)計的 基本思想是設(shè)計一個有限長濾波器頻率響應(yīng)來逼近理想濾波器的頻率響應(yīng)。設(shè)理想濾波

6、 器的頻率響應(yīng)為Hd(ejw),其單位抽樣響應(yīng)用hd(n)表示。通常選擇Hd(ejw)為具有分段常 數(shù)特性的理想濾波器,因此hd( n)是無限長非因果的,不能直接作為FIR數(shù)字濾波器的單位抽樣響應(yīng)。窗函數(shù)設(shè)計法就是截取 hd( n)的一段為有限長因果序列,并選擇合適的窗函 數(shù)進行加權(quán)作為FIR數(shù)字濾波器的單位抽樣響應(yīng)。窗函數(shù)法設(shè)計線性相位 FIR濾波器的一般步驟為:(1) 首先是給定所要求的頻率響應(yīng)函數(shù)Hd(ejw);(2) 求理想濾波器的單位抽樣響應(yīng)人(用二命也(宀叫血(3) 由過渡帶帶寬及阻帶最小衰減的要求,選定窗函數(shù)w(n),并估計窗口長度N ;(4) 求得所設(shè)計的FIR濾波器的單位抽樣

7、響應(yīng)(5)求FIR濾波器的系統(tǒng)函數(shù)h(二)七心hn«0三、設(shè)計步驟3.1語音信號的采集與分析(1)錄制語音,并命名為“ wjj”,保存在相應(yīng)的位置(C盤)。單擊開始菜單一一程序一一附件一一娛樂一一錄音機,然后設(shè)計屬性:單擊文件一一屬性,在彈出的文本框中單擊立即轉(zhuǎn)換一一設(shè)計格式(PCM)屬性(8000KHZ 16位單聲道16KB/秒,然后點擊確定。開始錄音。(2)用MATLAB寸原始語音信號進行分析,畫出它的時域波形和頻譜。程序如下:fs=22050;x1wjj.wav');sou nd(x1,22050);%播放語音信號y1=fft(x1,1024);%對信號做1024點FF

8、T變換f=fs*(0:511)/1024;figureplot(x1)%做原始語音信號的時域圖形title('原始語音信號');xlabel('time n');ylabel('fuzhi n');figure(2)freqz(x1)%繪制原始語音信號的頻率響應(yīng)圖title('頻率響應(yīng)圖')figure(3)subplot(2,1,1);plot(abs(y1(1:512)%做原始語音信號的 FFT頻譜圖title('原始語音信號FFT頻譜')subplot(2,1,2);plot(f,abs(y1(1:512);

9、title('原始語音信號頻譜')xlabel('Hz');ylabel('幅值');圖3.1原始語音信號圖頻率響應(yīng)圖藍出詈)OJSMd圖3.2頻率響應(yīng)圖圖3.3原始語音信號FFT頻譜和信號頻譜圖3.2用MATLAB給原始信號加噪聲給原始的語音信號加上一個高頻余弦噪聲,頻率為(56Khz任選),形成噪聲文件。再對加噪后的語音進行分析,并畫出其信號時域和頻譜圖。程序如下:fs=22050;x1=wavread( 'C:wjj.wav '); f=fs*(0:511)/1024;t=0:1/fs:(le ngth(x1)-1)/fs;

10、 Au=0.03;d=Au*cos(2*pi*5500*t)' x2=x1+d;sou nd(x2,22050);y2=fft(x2,1024);figure (4) ;plot(t,x2)title('加噪后的信號');xlabel('time n');ylabel('fuzhi n');figure(5) subplot(2,1,1);plot(f,abs(y1(1:512);title('原始語音信號頻譜');xlabel('Hz');ylabel('fuzhi');subplot(2

11、,1,2);plot(f,abs(y2(1:512);title('加噪后的信號頻譜);xlabel('Hz'); ylabel('fuzhi');圖3.4 加噪后的信號wjj1.wav ');%用于生成噪聲語音加噪后的信號通過比較圖1和圖4,可以看出,加噪聲后的信號的幅值明顯比原始信號的幅值高。原始語音信號頻譜加噪后的信號頻譜圖3.5原始語音和加噪后的信號頻譜對比圖四、設(shè)計一定參數(shù)的濾波器4.1用MATLAB設(shè)計濾波器使用fir2函數(shù)設(shè)計一個35階低通濾波器,信號的采樣頻率為 8000Hz,濾波器的通帶截 止頻率為3100Hz,阻帶截止頻率為

12、3500Hz。在函數(shù)中,其截止頻率均用歸一化頻率表示。歸一化頻率的計算方法:f=實際頻率/(采樣頻率/2),則將截止頻率歸一化后的截止頻率值為 0.775、0.875。4.1.1 用 matlab 求 fir2 的參數(shù):運行下列程序:f=0 0.775 0.875 1m=11 0 0b=fir2(34,f,m)得到的數(shù)據(jù)f =00.77500.87501.0000m =110 0b =Columns 1 through 70.0000-0.00030.0007-0.00130.0017-0.0012-0.0012Columns 8 through 140.0059-0.01210.0170-0

13、.01640.00580.0175-0.0528Colu mns 15 through 210.0950-0.13560.16500.82420.1650-0.13560.0950Columns 22 through 28-0.05280.01750.0058-0.01640.0170-0.01210.0059Columns 29 through 35-0.0012-0.00120.0017-0.00130.0007-0.00030.0000、FIR濾波器的程序流程圖開始初始化工作變l=L 量r調(diào)用波形 序產(chǎn)生混(高頻加孩發(fā)生子程 昆疊的波形氐頻1調(diào)用FIR濾波子程 序計算當前輸出FIR濾波用

14、濾波器系數(shù)乘以保 存的N-1個輸入值和 當前輸入值并求和返回計算結(jié)果、濾波程序:#in elude "myapp.h"#i nclude "ICETEK-VC5509-EDU.h"#in clude "sca ncode.h"#in clude <math.h>#defi ne FIRNUMBER 35#define SIGNAL1F 3100#define SIGNAL2F 3500#define SAMPLEF 8000#define PI 3.1415926float In putWave();float FIR()

15、;float fHnFIRNUMBER=0.0000, -0.0003, 0.0007, -0.0013 , 0.0017, -0.0012 , -0.0012,0.0059, -0.0121, 0.0170, -0.0164, 0.0058, 0.0175, -0.0528,0.0950 , -0.1356 , 0.1650 , 0.8242 , 0.1650 , -0.1356 , 0.0950 , -0.0528 ,0.0175 , 0.0058 , -0.0164 , 0.0170 , -0.0121 , 0.0059 ,-0.0012, -0.0012 , 0.0017 , -0.0

16、013 , 0.0007 , -0.0003 , 0.0000;float fXn FIRNUMBER= 0.0 ;float fin put,fOutput;float fSig nal1,fSig nal2;float fStepSig nal1,fStepSig nal2;float f2PI;int i;float fIn256,fOut256;int nln,n Out;main ()nln=0; nO ut=0;f2PI=2*PI;fSig nal1=0.0;fSig nal2=PI*0.1;fStepSig nal1=2*PI/30;fStepSig nal2=2*PI*1.4;

17、while ( 1 )fin put= In putWave();flnnln =fl nput;nln+; nln %=256;fOutput=FIR();fOut nOut=fOutput;nO ut+;/* break poi nt */if ( nOut>=256 )n Out=0;float In putWave()for ( i=FIRNUMBER-1;i>0;i-)fXn i=fX n i-1;fXn 0=si n(double)fSig nal1)+cos(double)fSig nal2)/6.0;fSig nal1+=fStepSig nal1;if ( fSi

18、g nal1>=f2PI )fSig nal1-=f2PI;fSig nal2+=fStepSig nal2;if ( fSig nal2>=f2PI )fSig nal2-=f2PI;return(fX n 0);float FIR()float fSum;fSum=0;for ( i=0;i<FIRNUMBER;i+ )fSum+=(fX n i*fH ni);return(fSum);FIR濾波器的DSP實現(xiàn)程序采用C語言編寫,濾波器時頻特性如圖 4.2和圖4.5所示。圖4.1圖4.4圖4.3圖4.2圖4.5圖4.64.2、用FIR濾波器濾除高頻噪聲、對生成的加噪語音進

19、行噪聲濾波,并對濾波后的語音進行分析 語音信號的FIR濾波程序流程圖如下:初始化:EMIF、 CPU 頻率、AIC23調(diào)用 AIC23_Mixer 子程序處理音頻數(shù) 據(jù)輸入/輸出422、語音信號的FIR濾波程序#i nclude "55O9.h"#include "util.h" #include "audio.h" / AIC23 Con trol Register addresses#defi ne AIC23_LT_LINE_CTL 0x00 / 0#defi ne AIC23_RT_LINE_CTL 0x02 / 1#defi

20、 ne AIC23_LT_HP_CTL 0x04 / 2#defi ne AIC23_RT_HP_CTL 0x06 / 3#defi ne AIC23_ANALOG_AUDIO_CTL 0x08 / 4#defi ne AIC23_DIGITAL_AUDIO_CTL 0x0A / 5#defi ne AIC23_POWER_DOWN_CTL 0x0C / 6#defi ne AIC23_DIGITAL_IF_FORMAT 0x0E / 7#defi ne AIC23_SAMPLE_RATE_CTL 0x10 / 80x1E / F - Writing 0 to this reg trigger

21、s#defi ne AIC23_DIGF_ACTIVATE 0x12 / 9 #defi ne AIC23_RESET_REG reset / AIC23 Control Register setti ngs#defi ne lt_ch_vol_ctrl0x0017 /* 0 */0x0079 /* 2 */0x0079 /* 3 */0x0000 /* 4 */0x0000 /* 5 */0x0002 /* 6 */#defi ne rt_ch_vol_ctrl0x0017 /* 1 */ #defi ne lt_ch_headph_ctrl #defi ne rt_ch_headph_ct

22、rl #defi ne alog_au_path_ctrl #defi ne digi_au_path_ctrl #defi ne pow_mgt_ctrl_ctrl #defi ne digi_au_i ntf_ctrl 0x000D /* 7 */#defi ne au_FS_TIM_ctrl 0x0000 /* 8 MCLK=12M Hz, Sample Rate setti ng */#defi ne digi_i ntf1_ctrl 0x0001 /* 9 */#defi ne digi_i ntf2_ctrl 0x00FF /* 10 */#defi ne DIGIF_FMT_MS

23、0x40#defi ne DIGIF_FMT_LRSWAP 0x20 #defi ne DIGIF_FMT_LRP0x10#defi ne DIGIF_FMT_IWL0x0c#defi ne DIGIF_FMT_FOR0x03#defi ne DIGIF_FMT_IWL_160x00#defi ne DIGIF_FMT_IWL_200x04#defi ne DIGIF_FMT_IWL_240x08#defi ne DIGIF_FMT_IWL_320xc0 #defi ne DIGIF_FMT_FOR_MSBRIGHT 0x00#defi ne DIGIF_FMT_FOR_MSLEFT 0x01

24、#defi ne DIGIF_FMT_FOR_I2S0x02#defi ne DIGIF_FMT_FOR_DSP0x03#defi ne POWER_DEV0x80#defi ne POWER_CLK0x40#defi ne POWER_OSC0x20#defi ne POWER_OUT0x10#defi ne POWER_DAC0x08#defi ne POWER_ADC0x04#defi ne POWER_MIC0x02#defi ne POWER_LINE0x01#defi ne SRC_CLKOUT0x80#defi ne SRC_CLKIN0x40#defi ne SRC_SR#de

25、fi ne ANAPCTL_BYP0x3c0x020x010x200x180x0c0xc00x200x100x080x040x020x010x08#defi ne SRC_BOSR#defi ne SRC_MO #defi ne SRC_SR_44#define SRC SR 32 #defi ne SRC_SR_8 #define ANAPCTL STA #defi ne ANAPCTL_STE #define ANAPCTL DAC #defi ne ANAPCTL_INSEL #defi ne ANAPCTL_MICM #defi ne ANAPCTL_MICB #define DIGP

26、CTL DACM#defi ne DIGPCTL_DEEMP0x06#defi ne DIGPCTL_ADCHP0x01#defi ne DIGPCTL_DEEMP_DIS0x00#defi ne DIGPCTL_DEEMP_320x02#defi ne DIGPCTL_DEEMP_440x04#defi ne DIGPCRL_DEEMP_480x06#defi ne DIGIFACT_ACT0x01#defi ne LT_HP_CTL_LZC0x80#defi ne RT_HP_CTL_RZC0x80void AIC23_Write( un sig ned short regaddr, un

27、 sig ned short data) -un sig ned char buf2;buf0 = regaddr;buf1 = data;I2C_Write(I2C_AIC23, 2, buf);void McBSP0_I nitSlave()PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;/ Put the MCBSP in resetWrite(pMCBSP0 -> spcr1, 0);Write(pMCBSP0 -> spcr2, 0);/ Config frame parameters (32 bit, sin gle

28、 phase, no delay)Write(pMCBSP0 -> xcr1, XWDLEN1_32);Write(pMCBSP0 -> xcr2, XPHASE_SINGLE | XDATDLY_0);Write(pMCBSP0 -> rcr1, RWDLEN1_32);Write(pMCBSP0 -> rcr2, RPHASE_SINGLE | RDATDLY_0);/ Disable int frame gen erati on and en able slave w/ext frame sig nals on FSX/ Frame sync is active

29、high, data clocked on rising edge of clkx Write(pMCBSP0 -> pcr, PCR_CLKXP);/ Bring tran smitter and receiver out of resetSetMask(pMCBSP0 -> spcr2, SPCR2_XRST);SetMask(pMCBSP0 -> spcr1, SPCR1_RRST);void AIC23_I nit()I2C_I ni t();/ Reset the AIC23 and turn on all powerAIC23_Write(AIC23_RESET_

30、REG, 0);AIC23_Write(AIC23_POWER_DOWN_CTL, 0);AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL); / 使用 麥克風音源AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0);/ Tur n on volume for line in putsAIC23_Write(AIC23_LT_LINE_CTL,0x000);AIC23_Write(AIC23_RT_LINE_CTL,0x000);/ Configure the AIC23 for maste

31、r mode, 44.1KHz stereo, 16 bit samples/ Use 12MHz USB clockAIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_MS | DIGIF_FMT_IWL_16 |DIGIF_FMT_FOR_DSP);AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_44 | SRC_BOSR | SRC_MO);/ Turn on headpho ne volume and digital in terfaceAIC23_Write(AIC23_LT_HP_CTL, 0x07f);

32、 / 0x79 for speakersAIC23_Write(AIC23_RT_HP_CTL, 0x07f);AIC23_Write(AIC23_DIGF_ACTIVATE, DIGIFACT_ACT);/ Set McBSP0 to be tran smit slaveMcBSP0_l nitSlave();void AIC23_Disable()PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;I2C_Disable();/ Put the MCBSP in resetWrite(pMCBSP0 -> spcr1, 0);Writ

33、e(pMCBSP0 -> spcr2, 0);#defi ne AUTIODATALEFT 0x0d000#defi ne AUTIODATARIGHT 0x17000int *pAudioLeft,*pAudioRight;int www=0;void AIC23_Mixer()PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;int left, right;int *pl,*pr, nAudioCou nt;int i;pAudioLeft=pl=(i nt *)AUTIODATALEFT;pAudioRight=pr=(i nt

34、*)AUTIODATARIGHT;n AudioCou nt=0;for ( i=0;i<NX;i+) xi=0;for ( i=0;i<NH+2;i+) dbi=0;while(1)while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY);/ 等待數(shù)據(jù)傳輸完成(*pl)=left = Read(pMCBSP0 -> ddr1);/ 讀入左聲道數(shù)據(jù)right = Read(pMCBSP0 -> ddr2);/ 讀入右聲道數(shù)據(jù)xNX-1=left/16;/防止濾波時數(shù)據(jù)溢出fir2(x, h, r, db, NX, NH);/調(diào)用濾波程序計算當前輸出/數(shù)組r的最后一個單元為當前輸出 將原始數(shù)據(jù)送左聲道輸出/將原始數(shù)據(jù)送左聲道輸出/將經(jīng)過濾波后的數(shù)據(jù)送右聲道輸出 /循環(huán)使用緩沖區(qū)(*pr)=rNX-1;Write(pMCBSPO -> dxrl, left); / /Write(pMCBSPO -> dxrl, rNX-1); Write(pMCBSPO -> d

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論