gpt4 book ai didi

c++ 将 FFT 应用于 wav 文件数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:04 25 4
gpt4 key购买 nike

这是我第一次使用类似的 wav 文件和 fft 文件。给定以下代码:

    char* loadWAV(const char* fn, int& chan, int& samplerate, int& bps, int& size){
char buffer[4];
ifstream in(fn, ios::binary);
in.read(buffer, 4); //ChunkID "RIFF"
if(strncmp(buffer, "RIFF", 4) != 0){
cerr << "this is not a valid wave file";
return NULL;
}
in.read(buffer,4); //ChunkSize
in.read(buffer,4); //Format "WAVE"
in.read(buffer,4); // "fmt "
in.read(buffer,4); // 16
in.read(buffer,2); // 1
in.read(buffer,2); // NUMBER OF CHANNELS
chan = convertToInt(buffer,2);
in.read(buffer,4); // SAMPLE RATE
samplerate = convertToInt(buffer,4);
in.read(buffer,4); // ByteRate
in.read(buffer,2); // BlockAlign
in.read(buffer,2); // bits per sample
bps = convertToInt(buffer,2);
in.read(buffer,4); // "data"
in.read(buffer,4);
size = convertToInt(buffer,4);
char * data = new char[size];
in.read(data,size);
return data;
}

我假设数据指针包含我需要的信息,但我不知道如何辨别这些信息。我正在使用 this作为引用,但我不知道“右声道左声道”方面的内容以及如何准备要在 FFT 中使用的数据。如果您对此有任何好的文档引用,我将不胜感激,到目前为止,我的搜索工作结果为 NILL。

编辑:另外,如果有人能给我指点一个很好的指南来操作这个级别的 wav 格式文件,我将不胜感激。提前谢谢你。

最佳答案

您拥有的数据在PCM中数据包。

尝试将这些问题作为起点:

对于问题的 FFT 部分,您可能需要考虑 https://dsp.stackexchange.com/ .

关于c++ 将 FFT 应用于 wav 文件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21823333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com