打印

求FIR算**??

[复制链接]
2039|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liaozhihua|  楼主 | 2009-1-15 19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
李冬发| | 2009-1-18 21:49 | 只看该作者

这东西的C代码很简单的啊,难得是系数的计算

使用特权

评论回复
板凳
liaozhihua|  楼主 | 2009-1-19 16:58 | 只看该作者

麻烦贴一下代码

使用特权

评论回复
地板
李冬发| | 2009-1-19 23:12 | 只看该作者

看看FIR滤波器的z变换就知道怎么写的了。

这是FIR滤波器的z变换式:
H(z)=h(0)z-0 + h(1)z-1 + h(2)z-2 + ... h(N-1)z-(N-1)

看着有点晕,其实表达的意思就是:
输入的当前采样值,前一个的采样值,再前一个的采样值...,前n个的采样值,分别乘以相应的系数的结果。累加在一起就是当前输出值。

这下你自己能写了吧。

使用特权

评论回复
5
宇宙飞船| | 2009-1-20 21:32 | 只看该作者

很久没看过这东东了,依稀记得是

用硬件电路推导出来的,例如对于一阶滞后滤波实际上是这条公式
U=U(1-E^(-t/τ))的计算机模以.
书上的公式都是别人经过变形的了,同硬件早已面目全非.

使用特权

评论回复
6
宇宙飞船| | 2009-1-20 21:45 | 只看该作者

书上的一阶滞后滤波公式:Y(k)=(1-Q)Y(K-1)+QX(K)

滤波系数Q=T/(T+τ).
//---------------
把Q代回上式,再对比硬件公式 U = U(1-E^(-t/τ))就能明白个中玄机.

使用特权

评论回复
7
宇宙飞船| | 2009-1-20 22:06 | 只看该作者

以下是代回的步骤过程,

Y(k)=(1-Q)Y(K-1)+QX(K)  //1
Y(k)=Y(K-1)-QY(K-1)+QX(K) //2
Y(k)=Y(K-1)+QX(K)-QY(K-1) //3  其中X(K)是当前的输入电压

Y(k)=Y(K-1)+[X(K)-Y(K-1)]Q //4 

对比硬件公式:
U(出)= U(1-E^(-t/τ)) 
去括号得:U(出) == U- U*E^(-t/τ) //U是当前的输入电压.
Y(k)=Y(K-1)+[X(K)-Y(K-1)]Q   //4 现在看出Q是啥东西了.
                //Q 其实就是:E^(-t/τ))

使用特权

评论回复
8
angelguard| | 2009-1-27 21:11 | 只看该作者

我有,找我吧

我有,angelguardstar@sina.com
找我吧。
PS:楼上说的对的,关键是系数的确定,这就需要用到matlab

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

35

帖子

0

粉丝