Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 实时绘图的信号处理数据(c+;+;中的FFT和GNUPLOT)_C++_Plot_Gnuplot_Signal Processing_Fft - Fatal编程技术网

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

C++ 实时绘图的信号处理数据(c+;+;中的FFT和GNUPLOT),c++,plot,gnuplot,signal-processing,fft,C++,Plot,Gnuplot,Signal Processing,Fft,我正在处理一个项目,在这个项目中,我获得了从0到255的数据,如果这个数据符合某些标准,无论它是否遵循某个字符串,它都是使用Gnuplot直接打印的,否则它只会存储在data.txt文件中 我面临的问题是: 我正在绘制的图形不是平滑的,而是参差不齐的。我想 使用FFTW3或某些程序处理数据,使其平滑 像那样。我需要这样做,以便进一步分析数据 参考资料 我读过关于快速傅里叶变换的书,但我不确定如何将傅里叶变换应用到我收到的数字串中 请帮助我使用的代码 结论: 我以连续数字串的形式获取数据,需要对其

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

我面临的问题是:

  • 我正在绘制的图形不是平滑的,而是参差不齐的。我想 使用
    FFTW3
    或某些程序处理数据,使其平滑 像那样。我需要这样做,以便进一步分析数据 参考资料

  • 我读过关于快速傅里叶变换的书,但我不确定如何将傅里叶变换应用到我收到的数字串中

  • 请帮助我使用的代码

    结论:


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

    快速傅里叶变换对于您的应用程序来说是一种过度的操作,您只需要对样本进行低通滤波以减少噪声

    我假设您的样本输入具有恒定速率,因此:

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

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


    3) 打印您想要的内容。

    您的问题格式不正确、不清楚,通常显示您对正在处理的问题缺乏理解。正如你问题的弱点的一个例子:你的数据来自哪里?它是连续到达还是以离散的、可识别的片段出现?即使有人愿意帮助你,他们也不能,因为他们完全缺乏细节。我建议你删除这个问题,开始解决你的问题,然后回来问一些有答案的问题……FFT滤波器非常快(O(n logn))。你的时域低通必须平均只有很少几个点才能比FFT方法快。@roadrunner66我说的是过多,而不是更快。实现时域FIR比较容易,而且速度可能足够快<编码>时域必须平均很少的点,这将取决于采样率、目标响应和抽取率,所有这些我们都不知道。