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

 Akzeptierte Antwort

CS Researcher
CS Researcher am 3 Mai 2016
Bearbeitet: CS Researcher am 3 Mai 2016

0 Stimmen

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

Weitere Antworten (0)

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