实时绘图的信号处理数据(c++中的FFT和GNUPLOT)

Signal Processing Data to Live Plotting(FFT and GNUPLOT in c++)

本文关键字:FFT 中的 GNUPLOT c++ 绘图 信号处理 数据 实时      更新时间:2023-10-16

我正在处理一个项目,在该项目中,我获得从0到255的数据。如果该数据符合某些条件,无论它是否遵循某个字符串,它都是使用Gnuplot直接绘制的,否则它只会存储在data.txt文件中。

我面临的问题:

  1. 我画的图不是平滑的,而是锯齿状的。我想使用FFTW3或某些程序对数据进行平滑处理就像那样。我需要这样做,以便进一步分析数据参考

  2. 我读过关于快速傅立叶变换的文章,我不确定如何将傅立叶应用于我收到的一串数字。

请帮我制定我应该使用的代码。

结论:

我以连续的数字串的形式获得数据,我需要有效地将其平滑并绘制在实时图中。

快速傅立叶对您的应用程序来说是一种过度处理,您只需要对样本进行低通滤波即可降低噪声。

我假设你的样本输入有一个恒定的速率,所以:

1) 识别你感兴趣的最大频率。(你的样本的频谱图或傅立叶图可能有助于识别它,使用数学软件(倍频程、matlab、numpy等))。

2) 设计一个中断频率高于目标最大值的数字低通滤波器(处理所有样本,而不仅仅是要打印的样本)。

3) 打印您想要的。