教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

DSP课程设计报告--基于TMS320F2812 DSP处理器的FIR滤波器的设计(3)

来源:网络收集 时间:2026-07-31
导读: { fInput=InputWave(); fIn[nIn]=fInput; nIn++; nIn%=256; fOutput=FIR(); fOut[nOut]=fOutput; nOut++; if ( nOut>=256 ) { nOut=0; /* 请在此句上设置软件断点 */ } } } float InputWave() { for ( i=FIRNUMBER-

{ fInput=InputWave(); fIn[nIn]=fInput; nIn++; nIn%=256; fOutput=FIR(); fOut[nOut]=fOutput; nOut++; if ( nOut>=256 ) { nOut=0; /* 请在此句上设置软件断点 */ } } }

float InputWave() { for ( i=FIRNUMBER-1;i>0;i-- ) fXn[i]=fXn[i-1]; fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0; fSignal1+=fStepSignal1; if ( fSignal1>=f2PI ) fSignal1-=f2PI; fSignal2+=fStepSignal2; if ( fSignal2>=f2PI ) fSignal2-=f2PI; return(fXn[0]); }

float FIR() { float fSum; fSum=0; for ( i=0;i

4.3 对实时采样信号进行滤波的FIR滤波器的实现 4.3.1 程序清单

#include \ #include \ #include #define pi 3.1415927 int px[256]; int py[256];

double npass,h[51], x, y, xmid[51]; int m=50; int n=256;

interrupt void adc_isr(void); Uint16 LoopCount;

Uint16 ConversionCount;

void firdes(int m, double npass) {

int t;

for (t=0; t<=m; t++) { h[t] = sin((t-m/2.0)*npass*pi)/(pi*(t-m/2.0)); }

if (t=m/2) h[t]=npass; }

void main(void) {

int xm,ym;

double fs,fstop,r,rm; int i,j,p,k; InitSysCtrl(); EALLOW;

SysCtrlRegs.HISPCP.all = 0x3; // HSPCLK = SYSCLKOUT/6 EDIS; DINT;

InitPieCtrl(); IER = 0x0000; IFR = 0x0000;

InitPieVectTable(); EALLOW;

PieVectTable.ADCINT = &adc_isr; EDIS; InitAdc();

PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; EINT; ERTM; LoopCount = 0;

ConversionCount = 0;

AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;

AdcRegs.ADCMAXCONV.all=0x0000;

AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x4; AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1; AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;

EvaRegs.T1CMPR=0x0380;

EvaRegs.T1PR=0x07FF; EvaRegs.GPTCONA.bit.T1TOADC = 1; EvaRegs.T1CON.all = 0x1042; k=0; fs = 250000; fstop = 20000; npass = fstop/fs; for (i=0; i<=m; i++) { xmid[i]=0; } for(;;) {

firdes(m, npass); for (i=0; i<=n-1; i++) { xm = px[i]; x = xm/1023.0; for (p=0; p<=m; p++) { xmid[m-p] = xmid[m-p-1]; } xmid[0] = x; r = 0; rm= 0; for (j=0; j<=m; j++) { r = xmid[j] * h[j]; rm = rm + r; } y = rm; ym = (int)(1023.0 * y); py[i] = ym; }

k++; //加断点,观察波形 } }

interrupt void adc_isr(void) {

px[ConversionCount] = AdcRegs.ADCRESULT0 >>4; if(ConversionCount == 256) {

ConversionCount = 0; }

else ConversionCount++;

AdcRegs.ADCTRL2.bit.RST_SEQ1=1;

AdcRegs.ADCST.bit.INT_SEQ1_CLR=1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

return; }

4.3.2 测试效果

如图所示

靠上的是滤波前时域波形,下面的是滤波后时域波形

DSP课程设计报告--基于TMS320F2812 DSP处理器的FIR滤波器的设计(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/564215.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)