硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5681|回复: 5
收起左侧

[DSP] ARM官方的FIR滤波器,IIR滤波器函数边计算边添加数据的方法,计算大量数据时有效降

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
发表于 2015-2-13 21:40:06 | 显示全部楼层 |阅读模式
具体实现参考DSP教程的: 第37章 FIR滤波器实现配套例子即可,这个例子在教程中有简单讲解。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=3886
************************************************************************************************
比如我们要求解320点数据的FIR滤波,可以通过下面这种方式分多次进行,从而节省RAM空间。

#define TEST_LENGTH_SAMPLES  320    /* 采样点数 */
#define BLOCK_SIZE           32                /* 这里是调用一次arm_fir_f32处理的采样点个数 */

uint32_t numBlocks = TEST_LENGTH_SAMPLES/BLOCK_SIZE;           /* 需要调用arm_fir_f32的次数 */

实际调用函数的时候采用下面的方式即可:

/* 实现FIR滤波,共调用numBlocks次  */
for(i=0; i < numBlocks; i++)
{      arm_fir_f32(&S, inputF32 + (i * blockSize), outputF32 + (i * blockSize), blockSize);
}

详细的实现可以看第37章配套的例子。
回复

使用道具 举报

1

主题

33

回帖

36

积分

新手上路

积分
36
发表于 2015-2-14 08:15:25 | 显示全部楼层
支持[s:151] [s:151]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
 楼主| 发表于 2015-2-14 21:49:58 | 显示全部楼层
已经整理好。
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
发表于 2015-2-15 09:29:32 | 显示全部楼层
越来越高深了。。。

一个周期320个点,也是很高的采样速率了。如果一个周期16个点,不知道数字滤波器的效果如何?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107122
QQ
 楼主| 发表于 2015-2-15 09:49:51 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:越来越高深了。。。

一个周期320个点,也是很高的采样速率了。如果一个周期16个点,不知道数字滤波器的效果如何? (2015-02-15 09:29) 
16个点太少,线性相位的FIR滤波有个群延迟的,延迟的点数由滤波器的阶数确定。
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2015-3-2 10:28:43 | 显示全部楼层
1进1出怎么实现?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 23:04 , Processed in 0.162429 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表