专栏名称: 安费诺传感器学堂
Amphenol Sensors为更安全,智能和健康的生活提供定制化的传感器解决方案
目录
今天看啥  ›  专栏  ›  安费诺传感器学堂

数字滤波器(6)—FIR频域连续滤波“重叠相加法”C++源码

安费诺传感器学堂  · 公众号  ·  · 2024-06-18 12:00
    

主要观点总结

本文介绍了一种基于频域重叠相加法的滤波模拟程序,使用了FFT和IFFT进行数据处理。文章详细描述了代码的主要流程和功能,包括生成模拟信号、调整滤波器系数、数据分段处理、FFT和IFFT变换以及结果保存等步骤。

关键观点总结

关键观点1: 信号和数据处理流程

文章首先生成模拟信号,然后调整滤波器系数,接着对数据进行分段处理。每个数据段都经过FFT变换,然后与频域滤波器系数相乘,再进行IFFT变换,最后保存原始信号和滤波后的结果。

关键观点2: FFT和IFFT的应用

文章中使用了基于库利-图基算法的FFT和IFFT。这种算法在数字信号处理中广泛应用,用于快速计算离散傅里叶变换和其逆变换。

关键观点3: 代码的功能和细节

代码首先生成模拟信号,然后将滤波器系数调整为复数形式并填充到特定长度。接着对模拟信号进行分段并对其进行FFT变换,然后与频域滤波器相乘,再经过IFFT变换得到滤波后的信号。

关键观点4: 代码的优化点

文章中提到FFT/IFFT可以使用其他算法进行优化替代,如快速傅里叶变换(FFT)的其他算法或优化库等。


文章预览

[ 编者按 ] 传感器和信号处理仅一线之隔,信号的前后端合理搭配,是我们更准确地感知这个世界的一种基本态度和方式。 FIR 频域重叠相加法 还记得我们(此处有重复之嫌)之前的发文《 FIR连续采样分段卷积时域重叠相加法 》 ?不过那是在 时域 处理的模拟和仿真。这次我们的内容是用C++在 频域 实现的滤波卷积法,仍然是重叠相加法,届时大家可以比较一下两种方式的差异。 基本是通过两个处理过程。 (1)频域的重叠相加法示意图再拿来用一下。如下图所示[1]。 (2)再借用一下的时域卷积经傅里叶FFT变换后,在频域成为对应的相乘;然后再通过IFFT将中间结果转换回时域时序结果。 让我们直接跳进话题,先看模拟测试结果,后看C++源码。 模拟情节设定 50Hz选频滤波,信号中混有110Hz和210H在的干扰信号和幅值为1的直流DC。 模拟信号及其频谱 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览