DSP的FIR设计

5星(超过95%的资源)
所需积分/C币:9 2014-01-02 09:01:49 1MB PDF
12
收藏 收藏
举报

DSP的FIR低通滤波器C语言编写,可以借鉴
b AN XUI 南京研旭电气科技有限公司 切比雪夫最佳一致過近的基本思想是,对于给定区间[a,b]上的连续函数 (x),在所有次多项式的集合p中,寻找一个多项式p(x),使它在[,b上 对/(x)的偏差和其它一切属于的多项式p(x)对f(x)的偏差相比是最小的,即 maxp(r)-fo)=min max(p(r)-ffr) 切比雪夫逼近理论,这样的多项式是存在的,且是唯的,并指出了构造这种最 佳一致逼近多项式的方法,就是有名的“交错点组定理”。 切比雪夫逼近理论解决了p(x)的存在性、唯一性和如何构造等问题。 J.H. McClellan、T.W. Parks、L.R. Rabiner等人应用切比雪大逼近理论提出了 种设计FR滤波器的计算机辅助算法。这种算法由于是在一致意义上对(^)作 最佳逼近,因而获得了较好的通带和阻揹性能,并能准确地指定通甍和阻带的边 缘。但它的效率依赖于初始极值频率点的佔计,且通带和阻带内波纹数较多,这 是 Chebysherⅴ方法的两个主要缺点。 FIR滤波器的 MATLAB实现 MATLAB辅助DSP实现FIR,其总体过程为在DSP中编写处理程序,在 MATLAB中利用滤波器设计、分析工貝( FDATOOL)根据指定的滤波器性能快速 设计一个FIR,再把滤波器系数以头文件形式导入CCS中,头文件屮 MATLAB辅 助DSP实现FIR数字滤波器含滤波器阶数和系数数组,在 MATLAB中调试、运行 DSP程序并显示、分析处理后的数据。使用该方法,便于采用汇编语言米实现程 序。头文件名不变,当 MATLAB中设计的滤波器系数改变时,相应头文件中系数也 改变,方便程序调试、仿真 (1)输入信号的产生 首先利用 Matlab产生导入CCS的dat文件,具体实现如下代码所示 sl=500;%有效信号 ns1-300;%高频噪声 ns2-8000;%高频噪声 fs=20000;%采样频率 N=1000: T=1/fs =0:N; signal-sin(2* pi*sl* n*T) noise1=0.7*sin(2 pi*ns1*n*T) noise2-0 4 sin(2*pi*ns2*n*T) x=( signalnoise+ noisc2);%待滤波信号 figure(1) plot(x b AN XUI 南京研旭电气科技有限公司 y=abs(f(x);%待滤波频谱 n*(fs/N) plot(df,y) plot(signal) figure(4) signal-abs(f( signal);%滤波后频谱 df=n (fs/N) plot(df, signal) 滤波数据导出 xout=x/max(x) %归一化 xto css==round(32767*xout);%数据取整 xoutcss-xto css fid- fopen( input. dat;w);%打开文件 fprintf(fd,16511000in);%输出文件头 print(fid,%dn' xoutcss);%输出 fclose(fid) 生的时域波形如图所示: 图输入信号波形 频谱如图所示: b AN XUI 南京研旭电气科技有限公司 图输入频谱 经过滤波器后的预期时域波形如图 图输出时域波形 频谱如图所刁 b AN XUI 南京研旭电气科技有限公司 图输出频谱 (2)滤波器的设计 MATLAB集成了一套功能强大的滤波器设计工具 FDATooL( Filter design& Analysis Tool),可以完成多种滤波器的设计、分析和性能评估。 a打开 Filter Design& Analysis Tool 单击 MATLAB主窗凵下方的“ Start”按钮,选择菜单“ ToolBox”→“ Filter Design”→“ Filter design& Analysis Tool( FDATool)”侖令,打开 FDATooL 如图所小。 MATLAB ere if yo u do not want to see this message aa Toolbox 如 Simulink 噢 Bioinformatics 4 Communications H Links and Targets ,a Cortrol System Curve Fitting Shortcuts sT Desktop ToOls di Database Web 4 Datafeed Get Product rials prometrIc Check for Updates Filter Desi Filter Builder(filterbuilder su Preferences 4A hilter Design HDL Coder+ E Hilter Design Analysis lozl (fdatool) Morr Hclp Demos ③ Product Page (Web) Strr 图 adatool的启动 b AN XUI 南京研旭电气科技有限公司 b.产生滤波器 阶数为8阶,这里应填80,比阶数少1。窗函数选择切比雪夫型( chebyshev) 采样频率为20000H,通带截止频率为750Hz。 A Fillet Design a Analysis Tuul- lunLiuled [ua l File Edit Ana ysis Targets view Window Help B争曾圆國回國类团厂剧自区国? I rEnt F liter ntorrFtln arde 100 Scre Flit”∴ Frequency(EHZ Filter Manager… Magnitude specifi=3. ittO Highpass Minimum order 20000 The attenuation at cutoff 回 SaMe P+shallu Butterworth 0 o rIR Wlinw 图滤波器的幅频特性 E「kD=n9 Analysis Tool(untitled. fda 四尋徵 出b国出厂醋圳國凵e CLr ent Fitar Inicr-nati Ctruct rc Dircct-FoNm R -5 stabler Fiter MErεger… 「rGa」sncy(h|z Magnitude =pec lOwpass oSpecl'y order:80 O Win imum order uULU ○ Bands:op Design Method heb 图团rct o+lk Window Computing Response .. done 图滤波器的相位特性 b AN XUI 南京研旭电气科技有限公司 c产生滤波器系数和头文件 Numerator n 0000000n0000aan0aaaa11014785547353801 .000116384218651587 了.000口04946145045吕70212 .0口125119907口474 .自00口259吕3日63632359正 .00值4aT510293吕236 .00口7日507128422E909 .0011AEg9日9g841g .Q1710E4403E137 0.0019gs943001445417 口,口E275424074424897 了,00E282311474口2221 图滤波器系数 esign a Analysis Too eEit△nysi" argets View window山e 今区凹囚国回游四厂國回回 occ0435932656153014752547631 Stable ource: Desicned-verletole names in c reae'fle Numerator:D 口se: yEo to use in export Q)1w月s C Export auggastcd: fl]tinc -poir ② Bandpass Ko Export an ing le-pracrion acti al lengthl ⊙ Harston close[ Help the passband galn Desan Methot 于FRw 图头文件的产生 最后将产生的头文件中的滤波器系数数组放入编写好的滤波器数中,并在 进行CCS屮进行调试与测试 四、FIR滤波器的 Simulink仿真 通过 Matlab的FDAT○OL设计滤波器后,为了确认该滤波器是否有效,现 通过 simulink进行建模仿真观察该滤波器是否有效 把三个信号通过加法器相加后,再通过 FDATOOL设计的滤波器即可。注意 此处设计的是数字滤波器,需要把三个输入信号数字化。 具体仿真模型建立如下: b AN XUI 南京研旭电气科技有限公司 Sine50oHz SCDET FDATool Sine3000Hz Add SCoDE Digital Filter Design sine8000Hz 分别观察滤波前后的时域波形图 +Scope1 舀当的區昌晶 9m4 40K:∝B后 图滤波前时域波形 b AN XUI 南京研旭电气科技有限公司 画閨A四A圖因图晶 图滤波后时域波形 五、FIR滤波器的DSP实现 (1)DSP中滤波器的z算法实现 IIR滤波器的输出表达式为 N-1 N/2-1 (m)=∑1(n-=∑(n(n- 式中,为滤波器系数:x(n)表示滤波器在n时刻的输入;y(n)为n时刻的输出 它的基本算法是一种乘法-荼加运算,即不断地输入样本x(n),经过延时后, 再进行乘法累加,最后输岀滤波结果y(n) 1)线性缓冲区法:线性缓冲区法又称延迟线法,其特点 a)对」N级的FR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑 窗),用来存放最新的N个输入样本; (b)从最老样本开始取数,每取一个样本后,将此样本向下移位; c)读完最后一个样本后,输入最新样本存入缓冲区的顶部。 2)循环缓冲区法:循环缓冲区法的特点如下: a)对于N级FIR滤波器,在数据储器中开辟一个N单元的缓冲区(滑 窗),用来存放最新的N个输入样本; (b)从最新样本开始取数: (c)读完最后一个样本(最老样本)后,输入最新样本来代替最老样本 而其他数据位置不变; (d)用片内BK(循环缓冲区长度)寄存器对缓冲区进行间接寻址,使循环 缓冲区地址首尾相邻。本次设计的FIR滤波器所采用的就是循环缓冲区法。

...展开详情
试读 15P DSP的FIR设计
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
aixinjueluoaixin 一篇PDF文档,介绍怎么使用matlab和CCS进行FIR滤波器编程,过程很详细,很不错,而且这是低通的,网上也找的到带通的
2014-05-06
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚钱or赚积分
最新推荐
DSP的FIR设计 9积分/C币 立即下载
1/15
DSP的FIR设计第1页
DSP的FIR设计第2页
DSP的FIR设计第3页

试读结束, 可继续读2页

9积分/C币 立即下载