Convert the wave file to a 16 bit signed binary format
조회 수: 29 (최근 30일)
이전 댓글 표시
Hi, I am working with the audio codecs and I need to give an input to the encoder which mentions that the input should be 16 bit signed binary files. I have the wave files with me and am using wavread function to read it into an array. Once I read it into the array I am not sure how to convert it into signed 16 bit binary file.
댓글 수: 0
채택된 답변
dpb
2014년 8월 13일
편집: dpb
2014년 8월 17일
Would seem simplest to just use the optional FMT input argument to wavread and set the format of the returned values...
[Y,...]=wavread(...,FMT) specifies the data type format of Y used
to represent samples read from the file.
If FMT='double', Y contains double-precision normalized samples.
If FMT='native', Y contains samples in the native data type
found in the file. Interpretation of FMT is case-insensitive,
and partial matching is supported. If omitted, FMT='double'.
...
Output Scaling
The range of values in Y depends on the data format FMT specified.
Some examples of output scaling based on typical bit-widths found
in a WAV file are given below for both 'double' and 'native' formats.
FMT='native'
#Bits MATLAB data type Data range
----- ------------------------- -------------------
8 uint8 (unsigned integer) 0 <= Y <= 255
16 int16 (signed integer) -32768 <= Y <= +32767
Presumes, of course, your .wav file is 16-bit.
Otherwise,
doc int16
which also presumes the data will fit into a 16-bit integer.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Standard File Formats에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!