MATLAB Answers

How to extract samples from audio and hamming window?

70 views (last 30 days)
Peter
Peter on 7 Oct 2016
Commented: Peter on 7 Oct 2016
fs = 16000;
r = audiorecorder(fs, 16, 1);
recordblocking(r,3);
x = getaudiodata(r, 'double');
plot(x);
t = [1/fs: 1/fs: length(x)/fs ];
I have got a 3 sec audio with the code above, how can I extract 160samples from it?
And I am not quite sure about how to hamming window the speech frame (20ms) from an audio using the hamming().
Thanks

  0 Comments

Sign in to comment.

Accepted Answer

Wayne King
Wayne King on 7 Oct 2016
x is just a double precision vector that should have 48000 samples. These elements are just indexed from 1 to 48000. So you can just do
y = x(1:160);
20 msec of data with a sampling rate of 16 kHz is 320 samples. So you just have to create a hamming window of length 320 and multiply that element-by-element by a signal segment of the equal length.
y = x(1:320).*hamming(320);
Since both 160 and 320 divide 48000, you can simply reshape your data into matrix with 160 or 320 rows
y = reshape(x,[320 150]);
Then you can multiply each column by a hamming window
y = y.*repmat(hamming(320),1,150);

  1 Comment

Sign in to comment.

More Answers (0)

Sign in to answer this question.


Translated by