matlab中用fdatool设计的滤波器如何使用

我现在有个txt格式的数据,想用由fdatool工具设计的FIR滤波器对它进行滤波,请问该如何操作~
我会加分的
我的意思是能够得到滤波完了以后的波形~
能够把原始信号和滤波信号进行对比

step1:完成滤波器设计之后,点击文件-》export(导出),快捷键ctrl+e.弹出以下窗口:
step2:点击导出。这样滤波器系数就存到工作区workspace了。
以上是常用的fir型滤波器,系数只需要b,a=1. b为传递函数分子,a为分母。在fir情况a=1.
如果设计iir型滤波器,系数由b和a组成。这样同时需要a和b。按照同样步骤导出系数到workspace。默认的系数存储为sos和g。以下代码可以转换为b,a形式:
[b,a] = sos2tf(sos,g)
如何使用滤波器呢?假设输入为x,那么输出y的滤波结果为:
y=filter(b,a,x)
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-11
双线性法设计低通滤波器:
fp=1000;
fc=1200;
as=100;
ap=1;
fs=22000;
wp=2*fp/fs;
wc=2*fc/fs; %归一化截止频率
[n,wn]=ellipord(wp,wc,ap,as);%求数字滤波器的最小阶数和归一化截止频率
[b,a]=ellip(n,ap,as,wn);%求传递函数的分子分母系数
d=filter(b,a,y);%用设计的滤波器进行滤波
然后你把滤波前后的频谱画出来比较就好了.本回答被提问者采纳
第2个回答  2020-05-23
我们知道设计一个fir滤波器,首先要知道它的冲击函数,或者说它的系数,如何知道它的序数呢,那就要根据要求设计啦。matab中为我们提供了很多有用的窗函数,可以直接调用;不过从最优化的角度来说remez函数是最好的。其优点是,设计指标相同时,使滤波器阶数最低;或阶数相同时,使通带最平坦,阻带最小衰减最大;通带和阻带均为等波形形式。具体用法可以参考matalb中的帮助文件。同样matlab里面的toolbox中也有一个工具filterdesign是直接可以用来设计滤波器的,你只要直接输入设计要求既可以得出序数。
设计好了滤波器,我们下一步就是如何用vhdl实现它。由于我们用matalb得到的系数是浮点数,处理起来不方便。这就要求我们将其定点化,如何定点化呢,就是将它化为整数,乘以一个倍数即可。但是为了后面处理方便,一般是乘以2的n次方。定点化后就根据滤波器输入与输出的关系式进行编程,其实就是一个相乘累加的关系。最后结果我们要再缩小。还有一个问题就是结果用什么形式的数来表示,我觉得用补码表示比较好一点,因为很多AD或DA都是补码的,计算机内也是这样的。
第3个回答  2012-06-01
不还我也在用这个,现在用fdatool设计出了滤波器,仿真波形也很好,现在想要fdatool设计的滤波器输出的分子分母系数来在C语言中实现,不太懂,忘指教一下,谢谢。
相似回答