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

 Akzeptierte Antwort

Honglei Chen
Honglei Chen am 25 Feb. 2013
Do you mean something like this?
x = rand(1024,1);
y = buffer(x,256);

5 Kommentare

Anurag Pujari
Anurag Pujari am 25 Feb. 2013
Bearbeitet: Honglei Chen am 25 Feb. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

guada
guada am 16 Mär. 2014

0 Stimmen

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 am 23 Jul. 2018

0 Stimmen

how to decompose audio signal in transfered domain ?

Kategorien

Mehr zu Signal Processing Toolbox finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by