硬汉嵌入式论坛

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

[DSP] ARM DSP库IIR滤波效果跟MATLAB相差大

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2016-11-17 11:25:08 | 显示全部楼层 |阅读模式
按照安富莱老师的DSP教程进行IIR高通滤波器设计,单片机滤波之后的效果和matlab做IIR滤波后的效果是一致的
1.png


但是从外部采集回来的数据用单片机做IIR滤波之后的效果和matlab做IIR之后的效果相差很大,如下图:
2.png


所以请假下各位,为什么官方DSP对标准的软件生成的波形数据做出来的效果很好,但是采集外部不怎么规则的数据进行IIR滤波相差这么大?

附上外部数据参数:
外部数据的采样频率为100KHZ,采样2048个点,IIR高通滤波器截止频率为120hz,高通滤波器阶数为4阶
外部采样回来的原始数据如下:
      AD采样数据.txt (26 KB, 下载次数: 120)

fdatool高通滤波器设计参数:
3.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2016-11-17 11:55:10 | 显示全部楼层
把你实际采集波形数据的频谱成份分析下,实际采集的频谱成份比较复杂。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2016-11-17 13:53:02 | 显示全部楼层
谢谢你的回答,下图是我分别对原始信号、matlab IIR之后的信号、单片机IIR之后的信号进行的FFT变化频谱图: 4.png


实际采样的信号里面直流成分比较多,所以才通过高通把低频给滤掉的,用电脑进行IIR然后再进行FFT确实达到了我想要的效果,但是用单片机做了IIR之后然后再用电脑做FFT结果和电脑FFT的结果都不正确。
应该是单片机做的IIR波形和电脑的波形本来就不对所以才使得FFT之后的结果不对。
像这种原始信号的话应该不是很难处理吧?因为毕竟除了直流分量,频谱最大值还是非常清晰的。请问怎么单片机IIR处理出来的效果偏差这么大呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2016-11-17 14:05:06 | 显示全部楼层
相对你的Fs采样率,你的Fc截止频率太低了,看幅频响应基本是一个直角了,所以滤波效果一般。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2016-11-17 15:38:20 | 显示全部楼层
那有没有办法把直流分量过滤掉呢?matlab为什么可以做到
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2016-11-17 16:20:37 | 显示全部楼层

回 水煮鱼 的帖子

水煮鱼:那有没有办法把直流分量过滤掉呢?matlab为什么可以做到 (2016-11-17 15:38) 
仅仅是滤除直流分量很简单的,所有的数值都减去一个直流数值就行了,直流数值即使所有数据求平均(FFT求出的直流分量其实就是所有数据求平均),或者你的信号接个电容,电容就是割去直流用的。
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2016-11-17 16:55:26 | 显示全部楼层
好的,我试下,谢谢你
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 07:20 , Processed in 0.192523 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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