0
我正在使用fftw库对从视频录制中收到的音频信号执行DFT。离散傅里叶变换C++ - 下一步做什么?
这是我第一次使用这种数学和分析信号,但我相信我已经从计算后的数据中得到了正确的值。
但是,现在我不确定如何处理复数数组以及如何将它绘制到图中。
请会有人建议对下一步该怎么做,这里是之前的一个例子/数据后...
(in, out(real;im))
(-12190, (real:-3103; im:0))
(-16316, (real:-3108.465666587691; im:49.512823501357843))
(-10005, (real:-3096.7767811251124; im:99.645004992013128))
(first 3 from a sample of 512)
而且,这里是我使用来获得这些结果的代码...
int n = 512;
double in[512];
fftw_complex out[512];
fftw_plan p;
ifstream rFile ("audioswap.csv");
string line;
if (rFile.is_open())
{
for (int i = 0; i < n; i++)
{
if (getline (rFile, line))
{
in[i] = ::atof(line.c_str());
}
else
{
break;
}
}
}
p = fftw_plan_dft_r2c_1d(n, in, out, FFTW_ESTIMATE);
fftw_execute(p);
fftw_destroy_plan(p);
如果我在获取结果时做了任何错误,请有人能够提供建议。
在此先感谢任何帮助! :)
如果你解释了这个目的,这将有所帮助,即你想达到什么目的? – 2014-09-12 12:43:40
对不起,迟到了,已经出国工作了。我将其用作分析软件的一部分,以确定加密/压缩和恢复过程后视频失真的程度。将使用FFT绘制音频分析图 – bd99 2014-09-23 12:26:35