How to extract samples from audio and hamming window?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Wayne King
le 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);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Hamming dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!