基于dsp的fir数字低通滤波器设计内容摘要:

(三) Chebyshev 逼近法 窗函数法和频率采样法设计出的滤波器的频率特性都是在不同意义 上对所给理想频率特性的逼近。 由数值逼近理论可知,对某个函数 f(x)的逼近一般有以下三种方法:插值法 (Interpolating Way) 最小平方逼近法 (Least Square Approaching Way) 一致逼近法 (Consistent Approaching Way) 切比雪夫最佳一致逼近的基本思想是,对于给定区间 [a, b]上的连续函数 xf,在所有 n 次多项式的集合 n 中,寻找一个多项式 p(x),使它在 [a, b]上对 xf的偏差和其它一切属于 n 的多项式 p(x)对 f(x)的偏差相比是最小的,即切 比雪夫逼近理论,这样的多项式是存在的,且是唯一的,并指出了构造这种最佳一致逼近多项式的方法,就是有名的“交错点组定理”。 三 用 MATLAB辅助 DSP设计 FIR 滤波器 在进行设计过程中首先利用 matlab 进行滤波器的设计,在这里运用了两种方法进行滤波器的设计,一种为利用 matlab 自带的 fir 函数进行设计,并利用matlab 自带的命令进行输入信号的编写并且输出输出信号的幅频曲线与相频曲线图。 第二种使用 matlab 的 FDATool 工具进行滤波器的设计得到的滤波器参数,同时使用 matlab 软件编写“ ”文件,具体内容为三个正弦函数叠加生成的含有高次谐波的正弦信号。 总流程图 6 (一)利用 fir 函数设计 FIR 滤波器并在在 MATLAB 环境仿真 MATLAB 辅助 DSP 实现 FIR ,其总体过程为在 DSP 中编写处理程序,在 MATLAB中利用滤波器设计、分析工具 ( FDATOOL) ,根据指定的滤波器性能快速设计一个FIR ,再把滤波器系数以头文件形式导入 CCS 中 ,头文件中 MATLAB 辅助 DSP 实现 FIR 数字滤波器含滤波器阶数和系数数组 ,在 MATLAB 中调试、运行 DSP 程序并显示、分析 处理后的数据。 使用该方法 ,便于采用汇编语言来实现程序。 头文件名不变 ,当 MATLAB 中设计的滤波器系数改变时 ,相应头文件中系数也改变 ,方便程序调试、仿真。 在 matlab 环境下进行设计与仿真 f1=10。 %第一个点频信号分量频率 f2=30。 %第二个点频信号分量频率 fs=100。 %采样率 T=2。 %时宽 B=20。 %带宽 n=round(T*fs)。 %采样点个数 t=linspace(0,T,n)。 y=cos(2*pi*f1*t)+cos(2*pi*f2*t)。 figure。 plot(t,y)。 7 title(39。 原始信号时域 39。 )。 xlabel(39。 t/s39。 )。 ylabel(39。 幅度 39。 )。 figure。 fft_y=fftshift(fft(y))。 f=linspace(fs/2,fs/2,n)。 plot(f,abs(fft_y))。 title(39。 原始信号频谱 39。 )。 xlabel(39。 f/Hz39。 )。 ylabel(39。 幅度 39。 )。 axis([ 0 50 0 100])。 b=fir1(40, B/(fs/2))。 %滤波产生指定带宽的噪声信号 figure。 freqz(b)。 %画滤波器频响 y_after_fir=filter(b,1,y)。 figure。 plot(t,y_after_fir)。 title(39。 滤波后 信号时域 39。 )。 xlabel(39。 t/s39。 )。 ylabel(39。 幅度 39。 )。 fft_y1=fftshift(fft(y_after_fir))。 f=linspace(fs/2,fs/2,n)。 figure。 plot(f,abs(fft_y1))。 title(39。 滤波后信号频谱 39。 )。 xlabel(39。 f/Hz39。 )。 ylabel(39。 幅度 39。 )。 axis([ 0 50 0 100])。 8 所设计的低通滤波器的幅频特性曲线与相频特性曲线 输入信号的 幅频曲线 9 输入信号的 相频曲线 经过滤波后的信号幅频曲线 10 经过滤波后的信号幅频曲线 (二) Matlab 中自带工具箱 FDATool 快速的实现滤波器的设计 若需要设计一个 16 阶的 FIR 滤波器( h(0)=0),给定的参数如下: (1) 低通滤波器 (2) 采样频率 Fs 为 48kHz,滤波器 Fc为 (3) 输入序列位宽为 9位(最高位为符号位) 在此利用 MATLAB 来完成 FIR 滤波器系数的确定。 MATLAB 的 FDATool MATLAB 集成了一套功能 强大的滤波器设计工具 FDATool( Filter Design amp。 Analysis Tool),可以完成多种滤波器的设计、分析和性能评估。 单击 MATLAB 主窗口下方的“ Start”按钮,选择菜单“ ToolBox” →“ Filter Design” →“ Filter Design amp。 Analysis Tool( FDATool)”命令 11 Design Filter FDATool 界面左下侧排列了一组工具按钮,其功能分别如下所述: ● 创建多速率滤波器( Create a Multirate Filter) ● 滤波器转换( TransForm Filter) ● 设置量化参数( Set Quantization Parameters) ● 实现模型( Realize Model) ● 零极点编辑器( Polezero Editor) ● 导入滤波器( Import Filter) ● 设计滤波器( Design Filter) 选择其中的按钮,进入设计滤波器界面 滤波器类型( Filer Type)为低通( Low Pass) ● 设计方法( Design Method)为 FIR,采用窗函数法( Window) ● 滤波 器阶数( Filter order)定制为 15 ● 窗口类型为 Kaiser, Beta 为 ● Fs为 48kHz, Fc为 最后单击 Design Filter 图标,让 MATLAB 计算 FIR 滤波器系数并作相关分析。 因为 FIR 滤波器的输出结果经过了一个单位延时单元,所以在 FDATool 中 ,把它看成 15阶 FIR 滤波器来计算参数。 因此,设置滤波器阶数时,要比要求的小 1。 计算完 FIR 滤波器系数以后,往往需要对设计好的 FIR滤波器进行相关的性能分析,以便了解该滤波器是否满足设计要求。 分析 操作步骤如下: 选择 FDATool 的菜单“ Analysis”→“ Magnitude Response”,启动幅频响应分析如图 所示, x轴为频率, y轴为幅度值(单位为 dB) 12 选择菜单“ Analysis”→“ Phase Response”,启动相频响应分析。 由该图可以看到设计的 FIR 滤波器在通带内其相位响应为线性的,即该滤波器是一个线性相位的滤波器。 求出的 FIR 滤波器的系数可以通过选择菜单“ Analysis”→“ Filter Coefficients”来观察。 图中列出了 FDATool 计算的 15阶直接 I型FIR 滤波器的部分系数。 13 为导出设计好的滤波器系数,选择 FDATool 菜单的“ File”→“ Export”命令,打开 Export(导出)对话框 (三)滤波 器设计总结 FIR 滤波器实现一般采用窗函数法和等纹波设计法。 窗函数法还包含两个分支,一种是用公式先手动算出 N 值和其他对应得窗函数参数值,再代入窗函数和fir1 实现,一种是用函数 *rord 估算出 N 和相应参数再用 fir1 实现。 不过要注意 *ror。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。