[英]Signal Processing Data to Live Plotting(FFT and GNUPLOT in c++)
我正在处理一个项目,我从 0 到 255 获取数据,如果此数据符合特定条件,无论它是否遵循特定字符串,它都会使用Gnuplot
直接绘图,否则它只会存储在 data.txt 文件中。
我面临的问题:
我绘制的图形不平滑,而是锯齿状。 我想通过使用FFTW3
或类似的程序处理数据来平滑数据。 我需要这样做,以便我可以分析数据以供进一步参考。
我阅读了快速傅立叶变换,但不确定如何将傅立叶应用于我收到的数字串。
请帮助我使用我应该使用的代码。
结论:
我以连续数字串的形式获取数据,我需要有效地平滑这些数据并将其绘制在实时图中。
快速傅立叶对您的应用来说是一种矫枉过正,您只需要对样本进行低通滤波以减少噪声。
我假设您的样本输入具有恒定速率,因此:
1)确定您感兴趣的最大频率。(您的样本的频谱图或傅立叶图可能有助于在这里识别它,使用数学软件(octave,matlab,numpy等))。
2) 设计一个中断频率高于目标最大值的数字低通滤波器(处理所有样本,而不仅仅是您想要打印的样本)。
3)打印你想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.