Tag: dft

离散傅立叶变换给出不正确的结果

我试图在C中进行离散傅立叶变换。 最初只是蛮力方法。 首先,我让程序打开一个数据文件(幅度)并将数据放入一个数组(只有一个,因为我限制自己使用实值输入)。 但是转换看起来不对,所以我尝试生成一个简单的波函数并检查它是否正确转换。 这是我的代码,剥夺了花里胡哨的声音: #include #include #include #include #define M_PI 3.14159265358979323846 //the test wavefunction double theoretical(double t) { double a = sin(M_PI * t) + 2 * sin(2 * M_PI * t) + 4 * sin(4 * M_PI * t); return a; } //————————————————————————- void dftreal(double inreal[], double outreal[], double outimag[], int linecount) { […]

如何以赫兹获得DFT / FFT输出频率?

我想开发音符探测器作为我的学位项目,我想从头开始。 我已经编写了“.wav”文件的代码,该文件从该音频音乐文件中提取所有信息,并为我提供振幅。 然后我为DFT编写了一个代码 – 它给出了一个复数的输出,其中一个轴(实/虚)是幅度/幅度,另一个是相位。 现在问题我想要频率的答案(赫兹不在矢量中)所以我可以检查我的DFT是否给了我正确的输出。 如何将DFT输出转换为频率? 我必须用C语言编写代码,我不想使用任何内置库