Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Register Log in

matlab convertion from .wav to binary

Status
Not open for further replies.

kimo77

Newbie level 3
Joined
Apr 24, 2010
Messages
4
Helped
2
Reputation
4
Reaction score
2
Trophy points
1,283
Location
egypt
Activity points
1,307
hi all,
I want to convert an audio or a wav file into binary form like y=[100110111].. i found the fun wavread but it give me result from -1 to 1 and not a a form of vector... so can any one help me how to convert the wave file to the binary
thank u
 

mowgli

Full Member level 2
Joined
Apr 5, 2002
Messages
149
Helped
34
Reputation
68
Reaction score
11
Trophy points
1,298
Activity points
1,348
Hello kimo77

I don't know the function wavread but from what you wrote ("... result from -1 to 1 ") I suppose that it returns the numeric values of the audio samples encoded in the .wav file. The range (-1,1) is normal if you are considering a stream of fixed point values in Q1.xx format, where xx stands for the bits used to represent the decimals digits (e.g. Q1.15 for 16 bit numbers)
If you want a binary stream you have to convert the numeric array obtained by the wavread function from decimal to binary format (check in Mlab the usage of functions num2hex, num2bin, hex2bin or similar, sorry but I don't remember the exact names).
Be careful in specifying the quantizer when using those functions, to represent correctly the format used to acquire the samples.

Regards
Mowgli
 

Jack// ani

Advanced Member level 3
Joined
Dec 2, 2004
Messages
759
Helped
106
Reputation
220
Reaction score
58
Trophy points
1,308
Activity points
5,018
mowgli said:
The range (-1,1) is normal if you are considering a stream of fixed point values in Q1.xx format, where xx stands for the bits used to represent the decimals digits (e.g. Q1.15 for 16 bit numbers)
Sorry if this is going off topic, but according to Wikipedia Q1.15 will be 17bit, here is an example provided, can you please explain how?

For example, a Q14.1 format number:

* requires 14+1+1 = 16 bits
* its range is [-2^14, 2^14 - 2^-1] = [-16384.0, +16383.5] = [0x8000, 0x8001 … 0xFFFF, 0x0000, 0x0001 … 0x7FFE, 0x7FFF]
* its resolution is 2^-1 = 0.5

http://en.wikipedia.org/wiki/Q_(number_format)
 

mowgli

Full Member level 2
Joined
Apr 5, 2002
Messages
149
Helped
34
Reputation
68
Reaction score
11
Trophy points
1,298
Activity points
1,348
Sorry for the disguise: Q1.15 is equal to Q15 definition found in Wikipedia
It defines 16 bit fixed point format with one sign bit and 15-bits fractional part
-1^B15 x Sum(2^-Bn)
where B15 is MSB and B0 is LSB

So the range for this format is [-1, 0.99996948242188] or which is represented by hex coded numbers in the range [0x8000, ox7FFF]. For simplicity this range is typically referred to as -1 to 1.

If you are curious try this in Matlab
q = quantizer([16,15])
hex2num(q,'7FFF')
hex2num(q,'8000')
num2hex(q,1)
num2hex(q,-1)
num2hex(q,2)
num2hex(q,-2)

Regards
Mowgli
 
Status
Not open for further replies.
Toggle Sidebar

Part and Inventory Search


Welcome to EDABoard.com

Sponsor

Sponsor

Design Fast


×
Top