How to segment a voice signal into frames of 256 samples?

 Respuesta aceptada

Do you mean something like this?
x = rand(1024,1);
y = buffer(x,256);

5 comentarios

Anurag Pujari
Anurag Pujari el 25 de Feb. de 2013
Editada: Honglei Chen el 25 de Feb. de 2013
windowsize = Fs/10;
trailingsamples = mod(length(YourSignal), windowsize);
sampleframes = reshape( YourSignal(1:end-trailingsamples), windowsize, []);
Is it the way to do so?
You can do that too. Your command there (I edited it to show the format) requires only MATLAB. But you can use buffer command if you have Signal Processing Toolbox and you can achieve the same by simply say
sampleframes = buffer(YourSignal(:),windowsize)
Then if you really don't want the tail, you can remove the last column.
See the reference of buffer at
Please, can you tell me how to recover the original signal after using 'buffer'?
Saad Rehman comments to Honglei Chen:
for matlab 2016a version FRAMING is done via BUFFER function. Thumbs up!
To recover the original signal after using buffer, use the (:) operator
buffered_signal = buffer(inputsignal, length_of_buffer);
reconstructed_signal = buffered_signal(:);
This assumes that no padding was needed and that there was no overlap used. If padding was needed then to reconstruct the original you would need to know the length of the original.

Iniciar sesión para comentar.

Más respuestas (2)

guada
guada el 16 de Mzo. de 2014
i think i also have a similar problem, could you also please help me with this: given a with 7.238 second duration and fs=16000, i need 25 msec per frame and overlaps 10 msec every succesive frame.
sufyan masood
sufyan masood el 23 de Jul. de 2018
how to decompose audio signal in transfered domain ?

Categorías

Más información sobre Signal Processing Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 25 de Feb. de 2013

Comentada:

el 9 de Sept. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by