资源描述
北京交通大学 国家电工电子教学基地,利用DSP实现信号滤波,1.利用DSP进行实时信号滤波,利用DSP实现对模拟信号滤波的框图,函数调用格式: oflag = short fir(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nh, ushort nx) 功能 用FIR滤波器对信号滤波 调用参数说明: xnx 表示含有nx个实数的实输入信号向量; hnh 表示含有nh个实数的系数向量,按自然顺序 排列,即滤波器的单位脉冲响应。 rnx 表示含有nx个实数的输出向量; 允许原位运算,即r=x。,2. 滤波器函数fir()说明:,dbuffernh 延迟缓冲区;对存储器的要求同hnh。 nx 向量x中实数的个数; nh 向量h中系数的个数; oflag=1 有溢出 ; oflag=0 无溢出 对数组h和dbuffer的特殊要求: 输入数组首地址最低log2(nx)位为必须为0。,2.滤波器函数fir()说明,oflag = short fir(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nh, ushort nx),滤波器函数使用的例,(a)一次调用处理一个数据 #pragma DATA_SECTION(h,coe_buf) DATA hN; #pragma DATA_SECTION(db,delay_buf) DATA dbN; DATA dbN=0; DATA *dbp = ,滤波器函数使用的例,(b)一次调用处理L个数据 #pragma DATA_SECTION(h,coe_buf) DATA hN; #pragma DATA_SECTION(db,delay_buf) DATA dbN; DATA dbN=0; DATA *dbp = ,利用codec对信号实时,i=0; while(1) while (!MCBSP_XRDY(HANDSET_CODEC) ) ; x = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC); inp_datai=x; fir( ,利用Matlab进行滤波器设计 滤波器设计工具箱 fdatool工具箱 (Filter Design and Analysis Tool) 此工具箱提供常用的各种滤波器的设计,并将设计 的滤波器参数提取出来。 调用方法:在Matlab命令窗口键入fdatool,3.滤波器设计,4.直接存储器访问控制器(DMA)的使用,直接存储器访问(Direct Memory Access,简称DMA) 是C54x DSP非常重要的片上外设。 DMA特性: 完成数据传输而不影响CPU,因此数据传输速度快。 应用场合:在要求信号实时采集和处理的系统中常采 用DMA方式进行信号采集与传输。,DMA和DSP内核访问存储器的框图,信号采集和滤波的流程图,利用DMA进行FIR滤波的中断服务程序,interrupt void DMAC2ISR(void) int *p_inp,*p_out; int i; p_inp=inp_buffer+frame*0 x100; p_out=out_buffer+frame*0 x100; fir(p_inp,coeffs,p_out, ,
展开阅读全文