How to unfold (spread) vector?

Hello I have a problem while analysing speech. I am trying to detect pauses. I have calculated envelope of the energy of the signal and autocorrelation of the signal. I have two borders - f and 500 that I am comparing them in code below:
for i = 1:length(speech)
if env_energy(i) == f && corr(i) < 500
%do something
end
end
The problem is that env_energy has 1557230 samples and corr only 648 samples. Can you tell me how to spread corr vector so that it doesn´t exceed matrix dimensions in for loop? Thank you

 Respuesta aceptada

CS Researcher
CS Researcher el 3 de Mayo de 2016
Editada: CS Researcher el 3 de Mayo de 2016

0 votos

You can use interp1. Try this:
newRange = linspace(1, numel(corr), numel(env_energy));
newCorr = interp1(1:numel(corr),corr,newRange);
Hope this helps!

Más respuestas (0)

Categorías

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

Preguntada:

el 3 de Mayo de 2016

Comentada:

el 3 de Mayo de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by