Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

how to extract data from a sound file and do calculations with the data?

Asked by Passband Modulation on 5 Oct 2012

I have a sound file named “message.txt” containing the waveform of a voice message embedded in a sinusoid with frequency of 220 Hz, and the sampling frequency is 22000 Hz.

file content consisting of 65120 rows of item as following shows

file source: http://www.2shared.com/document/LCmLelLW/message.html

load the file, and the speech heard

 load message.txt
 soundsc(message, 22000)

Now what I want to do is do some mathematical calculations of these data.

where r[k] corresponds to message. say for example: r[k] corresponds to the floating point number in first row of the file for k=0. r[k] corresponds to the floating point number in second row of the file for k=1. r[k] corresponds to the floating point number in third row of the file for k=2. and so on. finally, r[k] corresponds to the floating point number in last row of the file for k=65119.

(the lenght of the message/signal length is 65120, obtained using length(message))

how to do that? does anyone get what i mean?

3 Comments

Walter Roberson on 5 Oct 2012

(file is a column list of floating point numbers in text representation.)

Walter Roberson on 5 Oct 2012

I am not sure what you mean about r[k] ?

Once you have loaded the data into the array "message" it will just be a numeric array and you can do any mathematical processing you want on it.

Passband Modulation on 5 Oct 2012

r[k] corresponds to file massage. Say, r[k] corresponds to the floating point number in first row of the file for k=1.

i really dun know how to do the mathematical processing with matlab, could u write down the code? (plz note sin(3.6k) should be in degree)

Passband  Modulation

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson on 5 Oct 2012
Accepted answer
sum( message .* sind(3.6 * (0:length(message)-1))

7 Comments

Passband Modulation on 5 Oct 2012

last question, sry for bother u again. i want to plot s[k] using the following equation, where r[k] again corresponds to message.

s[k]=r[k]-56.97cos(3.6k)-31.98sin(3.6k)

for k=0:length(message)-1

i tried, but again failed.

 load message.txt
 N=65120;                         
 k=0:N-1;                         
 s = message - 56.97*cosd(3.6*k)-31.98*sind(3.6*k);              
 s
 k=0:N-1;                       
 plot(k,s)                       
 xlabel('k');    

could u fit it, if u dun mind and are available. ylabel('s[k]');

Walter Roberson on 5 Oct 2012

Already answered in the Question you created for this.

Walter Roberson

Contact us