云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > FIR数字滤波器的DSP课程设计

FIR数字滤波器的DSP课程设计

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 23:48:15

StartCpuTimer2(); /*开中断*/

IER |= M_INT14; EINT; InitAdc(); for(;;){

if (adconvover==1){

/*fir滤波处理*/ for(i=0;i

Ad_data_signed[i]=(short)(Ad_data[i]-0x5300);

fir_filter(Ad_data_signed,hfir,filter_result,ORDER_FIR,DataLong,ROUND_FIR);

}

}

adconvover=0;

}

interrupt void ad(void) {

IFR=0x0000;

PieCtrl.PIEACK.all=0xffff; if(adconvover==0){

Ad_data[convcount] = AdcRegs.RESULT0;

convcount++;

7

}

if (convcount==DataLong){

convcount=0;

adconvover=1;//接满标志

}

}

interrupt void ISRTimer2(void) { }

FIR_filter.c代码:

//const short x[]:输入信号的缓冲数组,short类型 //const short h[]:滤波器的系数数组,short类型 //short y[]:输出信号的缓冲数组,short类型 //n:滤波器长度

//m:输入信号的长度,即x[]的长度

//s:生成整型的滤波器系数时使用的移位数目

void fir_filter(const short x[],const short h[],short y[],int n,int m,int s) {

int i,j; long y0; long acc;

_nassert(m>=16);

AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1; AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;

_nassert(n>=16); for(j=0;j

for(i=0;i

if(i+j>=m) break; else {

y0=(long)x[i+j]*(long)h[i]; acc=acc+y0; } }

*y++=(short)(acc>>s); } }

五、系统仿真

5.1 仿真设置

1.fir_filter(Ad_data_signed,hfir,filter_result,ORDER_FIR,DataLong,ROUND_FIR)和adconvover=0处设置断点

2.在Graph Property Dialog中设置Start Address和Display Type如图5.1、图5.2、图5.3、图5.4

9

图 5.1 Graph Property Dialog

图 5.2 Graph Property Dialog

搜索更多关于: FIR数字滤波器的DSP课程设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

StartCpuTimer2(); /*开中断*/ IER |= M_INT14; EINT; InitAdc(); for(;;){ if (adconvover==1){ /*fir滤波处理*/ for(i=0;i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com