硬汉嵌入式论坛

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

[DSP] FIR 高通滤波器测试与matlab仿真有明显出入

[复制链接]

2

主题

16

回帖

22

积分

新手上路

积分
22
发表于 2023-8-11 19:22:56 | 显示全部楼层 |阅读模式
1、硬件平台是M33核的EFR32bg22;

2、项目中ADC信号采集一直存在低频干扰,目前想通过FIR的高通滤波器进行滤除,Matlab仿真是可以改善信号的,现在打算移植到嵌入式软件中,发现滤波后的结果与Matlab的前面几十个点明显对不上,看了DSP教程,也没发现问题,
     想请教各位大神给予指点?数据为1024点,采样率为1199.652Hz,滤波器为截止频率为10Hz的63阶高通滤波器。



#define BLOCK_SIZE            1
#define FIR_ORDER             63



void TestFilter(FLOAT *sVTXDataArray)
{
  UINT16 usIndex;
  UINT16 usXLoop;

  
  arm_fir_instance_f32 S;
  float  *inputF32, *outputF32;
  
  float firStateF32[BLOCK_SIZE + FIR_ORDER - 1];
   
  inputF32 = (FLOAT *)sVTXDataArray;

  
  outputF32 = (FLOAT *)OutTest;

  /* Call FIR init function to initialize the instance structure. */
  arm_fir_init_f32(&S, FIR_ORDER, (float32_t *)&HPFfirCoeffs[0] /*滤波器系数*/, &firStateF32[0] /*临时数组*/, BLOCK_SIZE);

  /* ----------------------------------------------------------------------
  ** Call the FIR process function for every blockSize samples
  ** ------------------------------------------------------------------- */

  for(usIndex = 0; usIndex < 1024/BLOCK_SIZE; usIndex++)
  {

    arm_fir_f32(&S, inputF32 + (usIndex * BLOCK_SIZE), outputF32+ (usIndex * BLOCK_SIZE), BLOCK_SIZE);

   
  }
  

}


IAR 测试数据

IAR 测试数据

matlab滤波后波形

matlab滤波后波形

matlab输出数据

matlab输出数据

iar 原始数据与滤波器系数.txt

8.26 KB, 下载次数: 3

原始数据与滤波器系数

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-8-12 08:34:03 | 显示全部楼层
10Hz截至频率太小了,小于1%的截止,效果一般。
回复

使用道具 举报

2

主题

16

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2023-8-12 09:27:50 | 显示全部楼层
我现在关注的不是效果,而是前面一些点的问题,我想这个问题是不是滤波器的时延造成的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-8-12 09:36:47 | 显示全部楼层
fengzhishengzhu 发表于 2023-8-12 09:27
我现在关注的不是效果,而是前面一些点的问题,我想这个问题是不是滤波器的时延造成的?

学习下什么是群延迟

下载 (2).png
回复

使用道具 举报

2

主题

16

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2023-8-12 09:46:57 | 显示全部楼层
eric2013 发表于 2023-8-12 09:36
学习下什么是群延迟

谢谢eric,刚看了这个文档。FIR存在群延迟,以文档为例,当群延迟为14时,那滤波后最开始的前14个点是不是没有意义?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106731
QQ
发表于 2023-8-12 12:01:22 | 显示全部楼层
fengzhishengzhu 发表于 2023-8-12 09:46
谢谢eric,刚看了这个文档。FIR存在群延迟,以文档为例,当群延迟为14时,那滤波后最开始的前14个点是不 ...

对。
回复

使用道具 举报

2

主题

16

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2023-8-12 13:56:52 | 显示全部楼层
谢谢eric的指导
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 23:02 , Processed in 0.263742 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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