下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人財(cái)產(chǎn)抵押借款簡(jiǎn)易協(xié)議文本版A版
- 二零二四全新石灰石環(huán)保綜合利用合同3篇
- 2024版特種設(shè)備吊裝運(yùn)輸合同3篇
- 個(gè)人房產(chǎn)買賣規(guī)范協(xié)議2024版A版
- 2024年04月中國(guó)建設(shè)銀行北京市分行度社會(huì)招考專業(yè)人才筆試歷年參考題庫(kù)附帶答案詳解
- 2025年農(nóng)業(yè)科技推廣合同會(huì)簽紀(jì)要3篇
- 2024版輪胎承包合同協(xié)議書
- 二零二五年度物流并購(gòu)保密及市場(chǎng)共享協(xié)議2篇
- 專業(yè)節(jié)電器產(chǎn)品銷售協(xié)議規(guī)范2024版A版
- 2024年03月貴州貴州銀行六盤水分行招考筆試歷年參考題庫(kù)附帶答案詳解
- GB/T 12914-2008紙和紙板抗張強(qiáng)度的測(cè)定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動(dòng)化系統(tǒng)用戶操作及問(wèn)題處理培訓(xùn)
- 家庭教養(yǎng)方式問(wèn)卷(含評(píng)分標(biāo)準(zhǔn))
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計(jì)和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級(jí)語(yǔ)文下冊(cè)《蜘蛛開(kāi)店》
- 鍋爐升降平臺(tái)管理
- 200m3╱h凈化水處理站設(shè)計(jì)方案
- 個(gè)體化健康教育記錄表格模板1
評(píng)論
0/150
提交評(píng)論