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

 채택된 답변

Honglei Chen
Honglei Chen 2013년 2월 25일
Do you mean something like this?
x = rand(1024,1);
y = buffer(x,256);

댓글 수: 5

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.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

guada
guada 2014년 3월 16일

0 개 추천

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 2018년 7월 23일

0 개 추천

how to decompose audio signal in transfered domain ?

카테고리

질문:

2013년 2월 25일

댓글:

2019년 9월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by