我是FFT的新手,我被要求找到一种方法来分析/处理石油钻机收集的一组特定数据。在收集的数据中有很多噪音是由于钻机的移动(例如,随着潮汐和波浪的升降)。我被要求用FFT=>filtering=>IFFT清理收集到的数据。
我使用C++和FFTW3.3.3库。
一个例子比其他任何东西都好,所以:
我有一个数据库,例如,泥石流(每分钟升)。每5秒收集一次泥石流,在DB中为每一个度量(例如)有一个时间戳。1387411235)。
所以我的IN_data是几个时间戳/泥流(例如。( 1387456630/3955.94、1387456635/3954.92等)
显示这些数据看起来真的像一个有噪音的声音信号,相关的事件可能被噪声掩盖。
使用在互联网上找到的例子,我可以设法执行FFT,但我缺乏知识和理解是一个大问题,因为我从来没有工作过信号处理和傅立叶变换。
我真的不知道如何开始这项工作,如果有任何数据前处理和/或后处理要做的话,使用哪个版本的FFTW例程(c2c、r2c等)。我在互联网上读过很多例子和教程,但我是法国人(很抱歉我在这里犯了错),这对我来说并不总是有意义的,特别是对于OUT_data单元,OUT_data类型,数据数组大小,窗口(顺便提一句),简单地说,我迷路了……
我想我的问题对那些曾经是自由工联的人来说是非常直接的,但对我来说,现在是非常复杂的。
所以我的问题是:
就目前而言,我所做的一个简短的例子是:
fftw_plan p;
p = (fftw_plan)fftw_plan_dft_1d(size,in,out,FFTW_FORWARD,FFTW_ESTIMATE);
fftw_execute(p);
fftw_destroy_plan(p);使用"in“和"out”作为fftw_complex (对于每个数据,我的In_data数组的复杂元素设置为1,不知道为什么,但教程说要这样做)。
这段代码是基于一个在互联网上发现的例子,但我缺乏知识/理解是一个很大的阻力,我想知道这里是否有人能给我解释/工作流/洞察力/链接,如何把它拉出来。
我正在试用我的新工作,我真的想为我的老板实施这个功能,即使它意味着寻求帮助,我已经看到很多FFTW的技术职位在这里.
发布于 2013-12-24 13:47:57
对于那些对DSP完全陌生的人来说,这是一个非常雄心勃勃的项目,但是你可以从阅读重叠-添加方法开始,这是你清理这些数据所需要的方法。您还应该查看DSP StackExchange站点dsp.stackexchange.com,在该站点中,频域滤波的理论背景和应用包含了几个类似的问题/答案。
https://stackoverflow.com/questions/20761715
复制相似问题