Normlalizacja danych z pliku WAV
Unsolved
Polish
-
Cześć,
Próbuję wyciągnąć dane z pliku WAV i przekonwertować je na vector. Zupełnie tak jak działa funkcja wavread w MATLABIE.
Korzystam z Qt. Mam już cały nagłówek pliku WAV po jego otwarciu. Plik otwierałem przez QFile.char* result = new char[sizeWAV]; // tablica rozmiaru pliku WAV short* result_raw = (short*)result; // rzutowanie na short, ponieważ rozmiar próbki to 2 bajty double vector = new double[sizeWAV / 2]; .... // przypisanie danych z nagłówka??? for(int i = 0; i < sizeWAV / 2; i++) { vector[i] = result_raw[i] / 32768.0; // dzielę przez zakres 16bit (taki mam WAV), żeby orzymać vector liczb w zakresie -1 do 1 }
I mój problem polega na tym jak przypisać dane z nagłówka, żeby póżniej je normalizować w pętli.
Mój nagłówek ma taką strukturę:
char RIFF[4]; qint32 dlugoscWbajtach; char WAVE[4]; char fmt_[4]; qint32 dlugoscBloku; qint16 format; qint16 kanaly; qint32 czestotliwoscProbkowania; qint32 bajtySek; qint16 bajtyProb; qint16 bitProb; char data[4]; qint16 waveRozmiar;
Format = 1, więc PCM.
Ktoś zajmował się operacjami na WAV i potrafi pomóc? :)