我正在尝试编写一个 .m 文件以从音轨中提取能量特征,但我似乎在其实现中遇到了麻烦:
% Formula for calculating RMS
[f, fs, nb] = wavread('Three.wav');
frameWidth=441; %10ms
numSamples=length(x);
numFrames=(numSamples/1);
energy(frame)=0;
for frame=1:numFrames,
startSample=(frame-1)*frameWidth+1;
endSample=startSample+frameWidth-1;
% Calculate frame energy
for i=startSample:endSample
energy(frame)=energy(frame)+x(i)^2;
end
end
我在 MATLAB 中运行该文件并收到以下错误:
???试图访问 x(2);索引超出范围,因为 numel(x)=1。==> myrms 在 12 能量(帧)=能量(帧)+x(i)^2 处的错误;
任何帮助将非常感激。