필터 지우기
필터 지우기

Convert the wave file to a 16 bit signed binary format

조회 수: 29 (최근 30일)
Nishant Prakash
Nishant Prakash 2014년 8월 13일
편집: dpb 2014년 8월 17일
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.

채택된 답변

dpb
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.
  댓글 수: 2
Nishant Prakash
Nishant Prakash 2014년 8월 15일
Just a quick question: You are correct and I have tried it too and my wave file is 16 bit so if I use 'native' argument in the wavread then it will automatically store it as 16 bit signed integer or do I need to scale it in that range.
dpb
dpb 2014년 8월 17일
편집: dpb 2014년 8월 17일
Then should be 16-bit automagically. You can check by the result of
whos
at the command line on the variable when you read a file just to be certain -- or programmatically by
isa('int16',varname)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Standard File Formats에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by