【发布时间】:2022-01-07 11:34:26
【问题描述】:
我正在处理基于 FFT 的 wav 文件处理。我已经开发/复制了用于 wav 读取和 fft 处理的功能。
问题是我的wav读取函数返回一个vector,而我的FFT需要complex<double>[N],我不知道如何将vector<double>或vector<complex<double>>连接到complex<double>[N]。如何转换我的数据?
我很抱歉我的菜鸟,这是我关于 SO 的第一个问题。
void FFT(Complex f[], Complex ftilde[], int log2N);
vector<double> amplitudes;
WavReader("../Projects/Project4/input.wav", amplitudes);
size_t size = amplitudes.size();
const int new_size = resize(size); // Finding nearest number power of 2
int log2N = log2(new_size);
using Complex = complex<double>;
amplitudes.resize(new_size);
std::vector<double> imag{ 0.0 };
imag.resize(new_size);
vector<complex<double>> cvec(amplitudes.size());
transform(amplitudes.begin(), amplitudes.end(), imag.begin(), cvec.begin(), [](double da, double db)
{
return complex<double>(da, db);
});
Complex f[N]; // The input of FFT
【问题讨论】:
-
需要
complex<double>[N]的函数原型是什么? -
void FFT(复数 f[], 复数 ftilde[], int log2N);