How to Convert .wav file into binary?

조회 수: 94 (최근 30일)
Asra Khalid
Asra Khalid 2018년 3월 7일
댓글: Jan 2021년 5월 31일
load handel.mat
filename = 'handel.wav';
audiowrite(filename,y,Fs);
clear y Fs
[y,Fs] = audioread('handel.wav');
sound(y,Fs)
I want to use the following code to convert the .wav audio file into binary. Which MATLAB command should be used for converting .wav file in to binary?
TIA.
  댓글 수: 4
Jan
Jan 2018년 3월 7일
편집: Jan 2018년 3월 7일
@Asra: Please try to explain the problem clearly. A binary stream of what? The signal or the contents of the file? If the data are stored in floating point format, do you want to convert the data to int8/16/32 at first or is is sufficient to interpret the binary representation of the IEEE754 doubles? Do you want a char vector or UINT8?
The less the readers have to guess, the easier and more likely matching is the answer.
Jan
Jan 2018년 3월 7일
편집: Jan 2018년 3월 7일
[MOVED from section for answers]
I have to transmit sound file (.wav file) through LED's. For that I have to convert the .wav file in binary digits (0's & 1's) to turn LED's ON and OFF. I need the contents of the file to be converted into binary digits.
I hope it is more clear to you now.
[Please post comments in the section for comments]

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

채택된 답변

Jan
Jan 2018년 3월 7일
편집: Jan 2018년 3월 7일
If you simply want to get a bit-stream representation, it does not matter in any way, if the data are a wav file or a jpeg. A WAV file contains additional header information compared to the pure signal. Getting a bit-stream from it:
fid = fopen(FileName, 'r');
data = fread(fid, [1, Inf], 'uint8');
fclose(fid);
bit = uint8(rem(floor((1 ./ [128, 64, 32, 16, 8, 4, 2, 1].') * data), 2));
bit = bit(:);
Now you have a bit stream of 1s and 0s stored in an UINT8 vector. This contains the complete data of the file and does not care in any way about the contents or format.
  댓글 수: 10
Rashika Raina
Rashika Raina 2021년 5월 31일
fid = fopen(FileName, 'r');
what is 'r'?
Jan
Jan 2021년 5월 31일
Whenever you have a question to a specific command, start with reading the documentation:
doc fopen
If you do not have a local Matlab installation, serach online for "Matlab fopen" to find: https://www.mathworks.com/help/matlab/ref/fopen.html#btrnibn-1-permission . Here you see:
'r' Open file for reading.

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

추가 답변 (1개)

Omar Longoria
Omar Longoria 2019년 4월 12일
Very good explanation. Thanks.

카테고리

Help CenterFile Exchange에서 Audio I/O and Waveform Generation에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by