打印
[AVR单片机]

数字滤波器设计

[复制链接]
2520|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yidou|  楼主 | 2010-6-22 23:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
yidou|  楼主 | 2010-6-23 21:41 | 只看该作者
怎么没人回答呢?

使用特权

评论回复
板凳
yidou|  楼主 | 2010-6-24 22:32 | 只看该作者
:'(

使用特权

评论回复
地板
aresc| | 2010-6-26 23:03 | 只看该作者
void iir_notch_filter_design(int Fs, int Fc, double Q, double *iir_coeffs)
{
        double omega, sinw, cosw, alpha, a0;

        omega = 2. * M_PI * Fc / Fs;    // M_PI = 3.1415926
        sinw  = sin(omega);
        cosw  = cos(omega);
        alpha = sinw / (2. * Q);             // Q value of filter.

        // DIRECT FORM I:
        // a0 * y(n) = b0 * x(n) + b1 * x(n-1) + b2 * x(n-2) - a1 * y(n-1) - a2 * y(n-2)

        iir_coeffs[0] = 1. + alpha;                        // a0: denominator, -> y(n): output
        iir_coeffs[1] = -2. * cosw;                        // a1
        iir_coeffs[2] = 1. - alpha;                        // a2
        iir_coeffs[3] = 1.;                                        // b0:        numerator, -> x(n): input
        iir_coeffs[4] = -2. * cosw;                        // b1
        iir_coeffs[5] = 1.;                                        // b2

        // normalize a0 to 1.0
        a0 = iir_coeffs[0];
        iir_coeffs[1] /= a0;        // a1
        iir_coeffs[2] /= a0;        // a2
        iir_coeffs[3] /= a0;        // b0: numerator, -> x(n): input
        iir_coeffs[4] /= a0;        // b1
        iir_coeffs[5] /= a0;        // b2
        iir_coeffs[0] = 1.;                // a0
}

使用特权

评论回复
5
xiaomifan| | 2010-6-27 20:48 | 只看该作者
截止掉50hz的信号的陷波器?

使用特权

评论回复
6
xiaomifan| | 2010-6-27 20:49 | 只看该作者
陷波器就是带阻滤波器

使用特权

评论回复
7
longus| | 2010-6-27 22:00 | 只看该作者
一直怀疑,所谓的50Hz陷波器,真的需要吗?
不知道到底什么NB的场合需要这东西。如果你的信号回路处理得当,很难想象所谓的“工频”会影响到你。

使用特权

评论回复
8
麻辣鸭脖子| | 2010-6-27 22:54 | 只看该作者
用DSP里面的滤波功能达不到要求么?

使用特权

评论回复
9
wuzhaolie| | 2010-6-27 23:12 | 只看该作者
50Hz频率不高啊,有什么特殊的?

使用特权

评论回复
10
lpydidi| | 2010-6-28 22:39 | 只看该作者
DSP的滤波功能就挺好用的,基本上程序也是现成的

使用特权

评论回复
11
wuzhaolie| | 2010-6-28 22:47 | 只看该作者
4楼有低通滤波器的程序吗?

使用特权

评论回复
12
aresc| | 2010-6-29 18:17 | 只看该作者
void iir_lowpass_filter_design(int Fs, int Fc, double Q, double *iir_coeffs)
{
        double omega, sinw, cosw, alpha, a0;

        omega = 2. * M_PI * Fc / Fs;
        sinw  = sin(omega);
        cosw  = cos(omega);
        alpha = sinw / (2. * Q);

        // DIRECT FORM I:
        // a0 * y(n) = b0 * x(n) + b1 * x(n-1) + b2 * x(n-2) - a1 * y(n-1) - a2 * y(n-2)

        iir_coeffs[0] = 1. + alpha;                        // a0: denominator, -> y(n): output
        iir_coeffs[1] = -2. * cosw;                        // a1
        iir_coeffs[2] = 1. - alpha;                        // a2
        iir_coeffs[3] = (1. - cosw) / 2.0;        // b0:        numerator, -> x(n): input
        iir_coeffs[4] = 1. - cosw;                        // b1
        iir_coeffs[5] = (1. - cosw) / 2.0;        // b2

        // normalize a0 to 1.0
        a0 = iir_coeffs[0];
        iir_coeffs[1] /= a0;        // a1
        iir_coeffs[2] /= a0;        // a2
        iir_coeffs[3] /= a0;        // b0: numerator, -> x(n): input
        iir_coeffs[4] /= a0;        // b1
        iir_coeffs[5] /= a0;        // b2
        iir_coeffs[0] = 1.;                // a0
}

使用特权

评论回复
13
guita| | 2010-6-30 13:50 | 只看该作者
什么程序?也不介绍一下

使用特权

评论回复
14
twlkyao| | 2010-8-6 19:22 | 只看该作者
看不懂

使用特权

评论回复
15
潜艇8421| | 2010-8-7 01:02 | 只看该作者
掌门人做过,滤单频50HZ不用这么复杂。
师祖有门规,不是本门弟子不得修练此门武功。

使用特权

评论回复
16
jack_shine| | 2010-11-27 13:11 | 只看该作者
mark

使用特权

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

本版积分规则

0

主题

391

帖子

1

粉丝