實(shí)驗(yàn)四FIR濾波器實(shí)驗(yàn)_第1頁(yè)
實(shí)驗(yàn)四FIR濾波器實(shí)驗(yàn)_第2頁(yè)
實(shí)驗(yàn)四FIR濾波器實(shí)驗(yàn)_第3頁(yè)
實(shí)驗(yàn)四FIR濾波器實(shí)驗(yàn)_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(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、使用 DMA數(shù)據(jù)傳輸方式在C 語(yǔ)言下實(shí)現(xiàn)直接型的FIR 濾波器。二、實(shí)驗(yàn)內(nèi)容1、使用查詢方式設(shè)計(jì)一個(gè)fir低通濾波器,通帶頻率為2400Hz。Fpass=2400,fstop=3000,fs=16000#include <type.h>#include <board.h>#include <codec.h>#include <mcbsp54.h>#include <tm

2、s320.h>#include <dsplib.h>void delay(s16 period);HANDLE hHandset;s16 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,-90

3、6,985,2810;#pragma DATA_SECTION(delaybuff,"delay");short delaybuff16=0;short *delayptr = &(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- )b

4、rd_led_toggle(BRD_LED0);/* brd_delay_msec(1000); */delay(1000);brd_led_toggle(BRD_LED1);/* brd_delay_msec(1000); */delay(1000);brd_led_toggle(BRD_LED2);/* brd_delay_msec(1000); */delay(1000);/* Open Handset Codec */hHandset = codec_open(HANDSET_CODEC); /* Acquire handle to codec */* Set codec parame

5、ters */codec_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);/* DACin 15-bit/* ADCin

6、 15-bit/*6dBgainon/*-6dB gain on/* 16KHz sampling rate*/* Polling and digital loopback */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ù)處理開(kāi)始*/fir 計(jì)算fir(inp

7、_ptr,coeffs,out_ptr,&delayptr,16,1);data=out_buffer0&0xfffe;/* 數(shù)據(jù)處理結(jié)束*/*(volatile u16*)DXR1_ADDR(HANDSET_CODEC) =data ;void delay(s16 period)int i, j;for(i=0; i<period; i+)for(j=0; j<period>>1; j+);2. 使用 DMA方式設(shè)計(jì)FIR 低通濾波器,通帶截頻為4000Hz。從 5402 DSK板的 MIC端口輸入頻率為 3000Hz 和 5000Hz 正弦信號(hào)的疊加

8、信號(hào),使用示波器在SPEAKER端口觀察輸出信號(hào)波形。 Fpass=4000,fstop=5000,fs=16000#include <type.h>#include <board.h>#include <codec.h>#include <firlab.h>#include <string.h>void delay(s16 period);extern void DMAC2ISR();HANDLE hHandset;unsigned int dmsefc, dmmcr, dmctr, src_addr, dst_addr;unsig

9、ned int dmpre, dmsrcp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1, dmgsa, dmgda, dmgcr, dmgfr;/* Create specific data section for buffer (symbol, section_name) */ #pragma DATA_SECTION(buffer,"audio_buffer");int buffer0x500;/* Create specific data section for coeffiecients */#pragma DATA_SECTIO

10、N(coeffs,"coefficients");/* Low Pass Filter */int coeffs16=560,-1842,-686,1948,-282,-3838,3221, 16103, 16103,3221,-3838,-282,1948,-686,-1842,560;#pragma DATA_SECTION(delaybuff,"delay");int delaybuff16=0;/* declare and initialize two variables for DMAC ISRs */int frame=0;int flag=

11、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 are the items that BIOS will set when we use it */BSCR = 0x8806;XPC = 0;PMST = 0xA0;brd_set_cpu_freq(50);TIMER_HALT(0);brd_set_wait_states(7,

12、7, 9);TIMER_RESET(0);if(brd_init_bios()return;/* Open Handset Codec */hHandset = codec_open(HANDSET_CODEC);/* Acquire handle tocodec */* Set codec parameters */codec_dac_mode(hHandset, CODEC_DAC_15BIT);/* DAC in 15-bit mode*/codec_adc_mode(hHandset, CODEC_ADC_15BIT);/* ADC in 15-bit mode*/codec_ain_

13、gain(hHandset, CODEC_AIN_6dB);/*6dB gain on analoginput to ADC */codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB);/* -6dB gain on analogoutput from DAC */codec_sample_rate(hHandset,SR_16000);/* 16KHz sampling rate */* Clear IFR */INTR_CLR_FLAG(DMAC2);/* Reset all DMA channels */dma_reset_all();/* Ini

14、tialize DMA channel 2 */dmsefc = (DSYNC_REVT1 <<12);dmmcr=(AUTOINIT_ENABLE<<15)|(DINM_ENABLE<<14)|(IMOD_HALFBLOCK<<13) | (CTMOD_DEC<<12) | (INDEXMODE_NOMOD<< 8) |(SPACE_DATA << 6) | (INDEXMODE_INC << 2) | (SPACE_DATA);dmctr = 0xFF;src_addr = DRR1_ADDR(

15、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 up global autoinit registers for DMA CH2 Input */dmgsa = src_addr;dmgda = dst_addr;dmgcr

16、 = 0xFF;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;dma_global_init(dmpre, dmsrcp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1, dm

17、gsa, 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 Global Interrupts */INTR_GLOBAL_ENABLE;/* Endless loop waiting for DMAC

18、2 interrupt */for(;);void delay(s16 period)int i, j;for(i=0; i<period; i+)for(j=0; j<period>>1; 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。

溫馨提示

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