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