以前做了一个fir滤波器,虽然没有写到芯片里面测试,但是经过仿真自认为是没有什么问题。于是把我的一点经验拿出来供大家参考一下或者提供一些看法。
我们知道设计一个fir滤波器,首先要知道它的冲击函数,或者说它的系数,如何知道它的序数呢,那就要根据要求设计啦。matab中为我们提供了很多有用的窗函数,可以直接调用;不过从最优化的角度来说remez函数是最好的。其优点是,设计指标相同时,使滤波器阶数最低;或阶数相同时,使通带最平坦,阻带最小衰减最大;通带和阻带均为等波形形式。具体用法可以参考matalb中的帮助文件。同样matlab里面的toolbox中也有一个工具filterdesign是直接可以用来设计滤波器的,你只要直接输入设计要求既可以得出序数。
设计好了滤波器,我们下一步就是如何用vhdl实现它。由于我们用matalb得到的系数是浮点数,处理起来不方便。这就要求我们将其定点化,如何定点化呢,就是将它化为整数,乘以一个倍数即可。但是为了后面处理方便,一般是乘以2的n次方。定点化后就根据滤波器输入与输出的关系式进行编程,其实就是一个相乘累加的关系。最后结果我们要再缩小。还有一个问题就是结果用什么形式的数来表示,我觉得用补码表示比较好一点,因为很多AD或DA都是补码的,计算机内也是这样的。
以上就是一点经验,不知有没有什么不对的地方,请大家不吝赐教。谢谢
xuchenglong1992_538604882 2015-6-15 16:56
dgqq 2015-3-16 11:34
不错,正是所需要的资料,多谢!
用户1775291 2014-7-29 16:35
用户1771596 2014-6-30 15:42
不错的资料
用户1736311 2014-2-11 09:42
用户874593 2009-9-5 20:03
用户563037 2009-2-22 16:31
用户91583 2007-8-20 17:35
请求源代码帮助.
wangshicheng001@yahoo.com.cn
用户83740 2007-6-11 10:59
你好,我们老是布置让我们用VHDL设计低通滤波器,先交的人将有可能参加一个比赛,而这个比赛对我很重要,我不是不想自己编偷懒,而是时间特别紧,我必须先闯过第一关然后才能接受培训进行系统学习自己设计,所以真的希望你能给我发一份,太感谢了!!!
xiaoxiancai2007@yahoo.com.cn
用户389863 2007-5-5 22:01
请求源代码帮助.
如果您方便的话把您写的VHDL源代码给我发一份吧,我的邮箱是tianlang258@163.com
我现在在写一段16阶的低通滤波器的代码,无奈的是在QUARTUS II中怎么也编译不过去.,比较郁闷.
请求帮助,万分感谢!!!!!!