試驗(yàn)四FIR濾波器試驗(yàn)_第1頁(yè)
試驗(yàn)四FIR濾波器試驗(yàn)_第2頁(yè)
試驗(yàn)四FIR濾波器試驗(yàn)_第3頁(yè)
試驗(yàn)四FIR濾波器試驗(yàn)_第4頁(yè)
試驗(yàn)四FIR濾波器試驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(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、實(shí)驗(yàn)四 FIR濾波器實(shí)驗(yàn)一、實(shí)驗(yàn)內(nèi)容1、掌握TMS320C54x DSPLIB函數(shù)庫(kù)中fir 函數(shù)的使用方法。2、學(xué)習(xí)并掌握5402 DSP片上外設(shè)DMA勺結(jié)構(gòu)與配置 。3、使用DM徽據(jù)傳輸方式在C語(yǔ)言下實(shí)現(xiàn)直接型的 FIR濾波器。、實(shí)驗(yàn)內(nèi)容1、使用查詢方式設(shè)計(jì)一個(gè)fir低通濾波器,通帶頻率為2400Hz。Fpass=2400,fstop=3000,fs=16000-1D0567FrftMhCiY Q=HZJ#include #include #lnclude #include #include #include void delay(s16 period);HANDLE hHandset;s

2、16 data;/* Create specific data section for coeffiecients */#pragma DATA_SECTION(coeffs,coefficients);/* Low Pass Filter */short coeffs16=2810,985,-906, -2112, -1653,2005,6878, 10556, 10556,6878,2005, -1653, -2112,-906,985,2810;#pragma DATA_SECTION(delaybuff,delay);short delaybuff16=0;short *delaypt

3、r = &(delaybuff0);short inp_buffer1;short out_buffer1;short *inp_ptr=inp_buffer;short *out_ptr=out_buffer;void main() s16 cnt=2;if (brd_init(100) return;/* blink the leds a couple times */ while ( cnt- )brd_led_toggle(BRD_LED0);/* brd_delay_msec(1000); */ delay(1000)-brd_led_toggle(BRD_LED1); /* brd

4、_delay_msec(1000); */ delay(1000);brd_led_toggle(BRD_LED2); /* brd_delay_msec(1000); */ delay(1000);/* Open Handset Codec */* Acquire handle/* DAC in 15-bit/* ADC in 15-bit/* 6dB gain on/* -6dB gain on/* 16KHz sampling ratehHandset = codec_open(HANDSET_CODEC); to codec */* Set codec parameters */cod

5、ec_dac_mode(hHandset, CODEC_DAC_15BIT);mode */codec_adc_mode(hHandset, CODEC_ADC_15BIT);mode */codec_ain_gain(hHandset, CODEC_AIN_6dB);analog input to ADC */codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);analog output from DAC */codec_sample_rate(hHandset,SR_16000);*/* Polling and digital loopback

6、*/ while (1)/* Wait for sample from handset */while (!MCBSP_RRDY(HANDSET_CODEC) ;/* Read sample from and write back to handset codec */ inp_buffer0 = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC);/*數(shù)據(jù)處理開始*/fir計(jì)算fir(inp_ptr,coeffs,out_ptr,&delayptr,16,1);data=out_buffer0&0 xfffe;/*數(shù)據(jù)處理結(jié)束*/*(volatile u16*)

7、DXR1_ADDR(HANDSET_CODEC) =data ;void delay(s16 period)int i, j;for(i=0; iperiod; i+)for(j=0; j1; j+);2.使用DMAT式設(shè)計(jì)FIR低通濾波器,通帶截頻為4000Hz。從5402 DSK板白MIC端口輸入頻率為3000Hz和5000Hz正弦信號(hào)的疊力口信號(hào),使用示波器在SPEAKE端口觀察輸出信號(hào)波形。Fpass=4000,fstop=5000,fs=16000_ Magnitude Response (dB),-10-15口-25-3001234567Frequency (kHtz)EB_PhM

8、fi Rsseonss,#include #include #include #include #include void delay(s16 period);extern void DMAC2ISR();HANDLE hHandset;unsigned int dmsefc, dmmcr, dmctr, src_addr, dst_addr;unsigned int dmpre, dmsrcp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1, dmgsa, dmgda, dmgcr, dmgfr;/* Create specific data section

9、for buffer (symbol, section_name) */#pragma DATA_SECTION(buffer,audio_buffer); int buffer0 x500;/* Create specific data section for coeffiecients */#pragma DATA_SECTION(coeffs,coefficients);/* Low Pass Filter */int coeffs16=560,-1842,-686,1948,-282,-3838,3221,16103, 16103,3221,-3838,-282,1948,-686,-

10、1842,560);#pragma DATA_SECTION(delaybuff,delay);int delaybuff16=0;/* declare and initialize two variables for DMAC ISRs */int frame=0;int flag=0;int temp;int currbuff = 0;/* delayptr holds the address of the start of the delay buffer */int *delayptr1 = &(delaybuff0);void main() s16 cnt=1;/* These ar

11、e the items that BIOS will set when we use it */BSCR = 0 x8806;XPC = 0;PMST = 0 xA0;brd_set_cpu_freq(50);TIMER_HALT(0);brd_set_wait_states(7, 7, 9);TIMER_RESET(0);if(brd_init_bios() return;/* Open Handset Codec */hHandset = codec_open(HANDSET_CODEC);/* Acquire handle tocodec */ /* Set codec paramete

12、rs */* DAC in 15-bit mode*/codec_dac_mode(hHandset, CODEC_DAC_15BIT);/* ADC in 15-bit mode/* 6dB gain on analog/* -6dB gain on analog/* 16KHz sampling rate */codec_adc_mode(hHandset, CODEC_ADC_15BIT);*/codec_ain_gain(hHandset, CODEC_AIN_6dB);input to ADC */codec_aout_gain(hHandset, CODEC_AOUT_MINUS_

13、6dB); output from DAC */codec_sample_rate(hHandset,SR_16000);/* Clear IFR */INTR_CLR_FLAG(DMAC2);/* Reset all DMA channels */ dma_reset_all();/* Initialize DMA channel 2 */dmsefc = (DSYNC_REVT1 12);dmmcr = (AuToINIT_ENABLE 15) | (DINM_ENABLE 14) |(IMOD_HALFBLOCK 13) | (CTMOD_DEC 12) | (INDEXMODE_NOM

14、OD 8) | (SPACE_DATA 6) | (INDEXMODE_INC 2) | (SPACE_DATA);dmctr = 0 xFF;src_addr = DRR1_ADDR(HANDSET_CODEC);dst_addr = (unsigned int) &buffer;dma_init(DMA_CH2, dmsefc, dmmcr, dmctr, SPACE_DA TA, src_addr, SPACE_DATA, dst_addr);/* Set number of frames for channel 2 */DMA_FRAMECOUNT(DMA_CH2, 2);/* Set

15、 up global autoinit registers for DMA CH2 Input */dmgsa = src_addr;dmgda = dst_addr;dmgcr = 0 xFF;dmgfr = 2;/* Set up global priority and enable control register for Ch2 */dmpre = (HIGH_PRIORITY 10) | (INTSEL_01 6);dmsrcp = SPACE_DATA;dmdstp = SPACE_DATA;dmidx0 = 0;dmidx1 = 0;dmfri0 = 0;dmfri1 = 0;d

16、ma_global_init(dmpre, dmsrcp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1, dmgsa, dmgda, dmgcr, dmgfr);/* Enable channel 2 */DMA_ENABLE(DMA_CH2);/* prime the serial port to begin input buffer stream */temp = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC);/* Enable DMAC2 interrupt */INTR_ENABLE(DMAC2);/* Enable

17、 Global Interrupts */INTR_GLOBAL_ENABLE;/* Endless loop waiting for DMAC2 interrupt */for(;);void delay(s16 period)int i, j;for(i=0; iperiod; i+)for(j=0; j1; j+);三、思考題1、濾波器設(shè)計(jì)中為什么要設(shè)有延遲緩沖存儲(chǔ)器delaybuff ?其大小有什么限制?答:在連續(xù)的數(shù)據(jù)塊計(jì)算時(shí),延遲緩沖區(qū)保存著后一次計(jì)算所需要的前一次的輸出數(shù)據(jù)。這個(gè)緩沖存儲(chǔ)區(qū)的起點(diǎn)必須位于Kbit的邊界處,即起始地址的最低 K=log2nh個(gè)有效位必須為零。2、使用查詢方式和 DMA斷方式設(shè)計(jì)FIR濾波器時(shí),允許DSP用于數(shù)字信號(hào)處理程序的最大時(shí)間分別是多少?答:查詢方式允許 DSP用于數(shù)字信號(hào)處理程序的最大時(shí)間是Ts,而DMA中斷方式設(shè)計(jì) FIR濾波器時(shí)允許用于數(shù)字信號(hào)處理程序的最大時(shí)間是256Ts。3、如何設(shè)置C

溫馨提示

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