在我的應用程序中,我正在從手機sdCard中讀取一個PCM文件,然後我嘗試將fft應用到它。 我的問題是它不斷給我ArrayIndexOutOfBoundsException我不知道爲什麼!我不知道如何解決它。如果有人可以請告訴我如何擺脫這個例外,我真的很感激它!ArrayIndexOutOfBoundsException是什麼意思
這裏是日誌貓:
java.lang.ArrayIndexOutOfBoundsException: length=80; index=80
at edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D.bluestein_complex(DoubleFFT_1D.java:1222)
at edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D.complexForward(DoubleFFT_1D.java:192)
這裏是我的代碼:
//FFT will start here
int size2;
File file = new File(filePath2);
size2 = (int) file.length();
audioDataDoubles1 = new double[(int)(size2/2)];
audioDataDoubles1 =convertFloatsToDoubles (silenceRemovedSignal);
fft.complexForward(audioDataDoubles1);
// calculate power spectrum (magnitude) values from fft[]
magnitude1 = new double[(int)(size2/2)];
for(int i = 0 ;i<magnitude1.length; i++)
{
re1 = audioDataDoubles1[2*i];
im1 = audioDataDoubles1[2*i+1];
magnitude1[i]= Math.sqrt(re1*re1+im1*im1);
}
這意味着你應該只能訪問你所承諾的邊界。不僅僅如此。 –
長度爲80.記住索引從0開始。 – Raghunandan
要了解異常的含義,請閱讀其文檔:http://docs.oracle.com/javase/6/docs/api/java/lang/ArrayIndexOutOfBoundsException.html –