第5章-数字信号处理算法的DSP实现-《DSP原理及实践应用》电子课件.ppt
第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现内容提要内容提要内容提要 本章本章本章 结结结 合数字信号合数字信号合数字信号 处处处 理和通信中最常理和通信中最常理和通信中最常 见见见、最具有、最具有、最具有代表性的代表性的代表性的 应应应 用,介用,介用,介 绍绍绍 通用数字信号通用数字信号通用数字信号 处处处 理算法的理算法的理算法的DSPDSPDSP 实实实现现现 方法。方法。方法。其内容有:其内容有:其内容有:数字数字数字 滤滤滤 波器的波器的波器的 实现实现实现 LMS LMS LMS 自适自适自适 应滤应滤应滤 波算法的波算法的波算法的 实现实现实现 快速傅立叶(快速傅立叶(快速傅立叶(FFTFFTFFT)变换变换变换第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 数字信号处理主要面向密集型的运算,包括乘法-累加、数字滤波和快速傅里叶变换等。C54x 器件具备了高速完成上述运算的能力,并具有体积小、功耗低、功能强、软硬件资源丰富等优点,现已在通信等许多领域得到了广泛应用。本章结合数字信号处理和通信中最常见、最具有代表性的应用,介绍通用数字信号处理算法的DSP 实现方法。第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 数字滤波是DSP 最基本的应用,它是图像处理,模式识别,语音处理,频谱分析等应用的基本处理算法。本节主要介绍最常用的数字滤波器-FIR(有限冲激响应滤波器)的编程实现方法。5.1 数字滤波器的实现第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现5.1.1 FIR 滤波器的基本结构图5-1 是FIR 滤波器的结构图,它的差分方程表达式为:式中,为输入序列,为输出序列,为滤波器系数,N为滤波器的阶数。第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现FIR 滤波器的最主要特点是没有反馈回路,因此它是无条件稳定系统。它的单位冲激响应 是一个有限长序列。如果 是实数,且满足偶对称或奇对称的条件,即 或,则FIR 滤波器具有线性相位特性。第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 5.1.2 FIR 滤波器系数的MATLAB 设计 MATLAB 是美国Mathworks 公司于1984 年正式推出的一套高性能的数值计算和可视化软件,适用于工程应用各领域的分析设计和复杂计算。MATLAB 中的工具箱包含了许多实用程序,如数值分析、矩阵运算、数字信息处理、建模和系统控制等。滤波器的设计就包含在该工具箱的信号处理工具箱中,它提供了多种FIR 滤波器设计方法。FIR 滤波器分为低通滤波、高通滤波、带通滤波和带阻滤波。下面以fir1 为例说明FIR 滤波器的设计方法。第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现(1)fir1 函数fir1 用来实现经典的加窗线性相位FIR 数字滤波器。语法格式如下:b=fir1(n,Wn)b=fir1(n,Wn,ftype)b=fir1(n,Wn,window)b=fir1(n,Wn,ftype,window)式中,n 为滤波器的阶数;Wn 为滤波器的截止频率,Wn 介于0 和1 之间,1 对应于Nyquist 频率,即0.5 倍的采样频率,若Wn 是一个二维失量,表示为Wn=w1 w2,则滤波器为带通或带阻滤波器;ftype 参数表示滤波器的类型,为 high 时表示截止频率为Wn 的高通滤波器,为stop 时表示带阻滤波器;window 参数用来指定滤波器采用的窗函数类型,其默认值为汉明(Hamming)窗。第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 采用汉明窗设计低通FIR 滤波器b=fir1(n,Wn)采用汉明窗设计高通FIR 滤波器b=fir1(n,Wn,high)采用汉明窗设计带通FIR 滤波器b=fir1(n,w1 w2)采用汉明窗设计带阻FIR 滤波器b=fir1(n,w1 w2,stop)采用其他窗口函数设计FIR 滤波器第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 使用window 参数,可以用其他窗口函数设计出各种加窗滤波器。可采用的窗口函数有Boxcar,Hamming,Bartlett,Blackman,Kasier 和Chebwin 等,未指定窗口参数时默认为汉明窗。例如,采用Bartlett 窗设计带通FIR 滤波器,语法格式为b=fir1(n,w1 w2,Bartlett(n+1)第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现源代码程序如下:n=10;b=fir1(n,0.4);f1=8;f2=20;fs=50;pi=3.14159;M=200 x=zeros(M);y=zeros(M);for i=1:M x(i,1)=sin(2.0*pi*i*f1/fs)+sin(2.0*pi*i*f2/fs);%输入信号end;subplot(2,1,1),plot(x);%显示输入信号for i=1:M for j=1:n+1 if(i-j+1)0 y(i,1)=y(i,1)+b(1,j)*x(i-j+1);%输出信号 end;end;end;subplot(2,1,2),plot(y);%显示输出信号程序接右边第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 5.1.3FIR 滤波器的C 语言程序设计及仿真 滤波器的单位冲激响应可通过下列公式进行计算。低通滤波器:高通滤波器:式中,第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 带通滤波器:带阻滤波器:第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现第五章第五章 数字信号数字信号处处理算法的理算法的DSPDSP实现实现 编写C 语言源代码文件FirExam.c,程序清单如下:#include math.hfloat h31;/*冲击响应系数序列*/float sine500;/*输入序列*/float y500;/*输出序列*/main()float pi;/*圆周率pi*/float wc=0.2;/*(截止频率/采样频率)*/int n=31;/*滤波器的阶数*/int k,i;int a,b;