How to open a headerless wav file?

5 views (last 30 days)
Hi!
I have some files here, which have a special file format, but are actually just headerless wav files with a sample rate of 16000.
I wanted to do some fft plotting of the wav file like so
plot(abs(fft(audioread(wav_file))));
However, I get the The file type is not supported message.
Is there a way to open those files or do I have to save them was wav files first?
EDIT:
To clearify, the files mentioned are indeed raw binaries. As I haven't recorded those datas myself, I can only guess about the internal structure. I can analyze the file just fine with these import settings in Wavesurfer:
Sample rate: 16kHz
Encoding: Lin16
Channels: Mono
Byte Order: Little Endian
Read Offset: 0
Frequency: It will probably be something between 0-8kHz, since I was suppose to sample with 16kHz (right?)

Accepted Answer

Walter Roberson
Walter Roberson on 2 Oct 2013
Edited: Walter Roberson on 2 Oct 2013
You use fopen() to open them, and fread() to read them, and you apply your knowledge of the internal structure of .wav files to decode what you read in.
But you will likely find it to be much less coding to write out a temporary copy of the file with the missing header pre-pended and use audioread() on the result.
Your you sure they are in .wav format, and not raw binary data ?
  12 Comments
Jan
Jan on 7 Oct 2013
Edited: Jan on 7 Oct 2013
The FOR loop is meaningless here, because no element of channels can equal zero and ADC is not defined. But if this is possible, this is nicer:
ADC = ADC(channels~=0, :)
Martin
Martin on 7 Oct 2013
Yeah, sorry. It was a function file with way more error checking. I just shortened it a bit, but was obviously not very thorough. Thanks for the tip!

Sign in to comment.

More Answers (2)

Jan
Jan on 2 Oct 2013
As far as I know, there are no "headerless WAV files". The header is mandatory for the WAV format.
Most likely you have simple binary files with raw data. But now you have to know the number of channels, the format of the single values (single, double, int16?), the frequency and for multiple channels, if the signal is stored in time or channel order. If you provide the required information, we can suggest a method to import the file.
  1 Comment
Martin
Martin on 2 Oct 2013
I just edit some more information in the original question. I'm very new in the speech analysis department, thus, are not quite sure which information is required, and if the provided ones are correct or not.

Sign in to comment.


Prernna Bhatnagar
Prernna Bhatnagar on 23 Feb 2017
Can anyone tell me how to open .adc files in matlan and then plot them? These filescontain EMG Signals.

Categories

Find more on Audio I/O and Waveform Generation in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!