自相关开始时的噪音

时间:2012-03-12 16:52:04

标签: java android signal-processing fft audio-analysis

所以基本上我在高E吉他弦的漂亮声波上运行我的自相关算法(100英寸44100 Hz单声道声音样本)。我得到的是: http://imageshack.us/photo/my-images/534/chartzf.png/

这一切看起来都不错,完全可以用来确定声波的频率,这就是我想做的事情,但问题仍然是为什么那里的噪音。根据理论,它不应该存在。我使用以下java代码来计算频率:

    // sq(a) = a*a.
private void computeAutocorrelation2() {
    // Fourier Transform to calculate autocorrelation.

    // TODO: Change it so that it acts on Complex data? - concurrent execution?.
    fft_method = new DoubleFFT_1D(elementsRead);

    for(int i=elementsRead-1; i>=0; i--) 
        audioDataAnalyzis[2*i]=audioDataAnalyzis[i];
    for(int i=2*elementsRead-1; i<audioDataAnalyzis.length; ++i) 
        audioDataAnalyzis[i]=0;

    fft_method.complexForward(audioDataAnalyzis);

    for(int i=0; i<elementsRead; ++i) 
        audioDataAnalyzis[2*i] = sq(audioDataAnalyzis[2*i]) 
            + sq(audioDataAnalyzis[2*i+1]);
    for(int i=2*elementsRead-1; i<audioDataAnalyzis.length; ++i) 
        audioDataAnalyzis[i]=0;

    fft_method.complexInverse(audioDataAnalyzis, false);

    for(int i=0; i<elementsRead; ++i) 
        audioDataAnalyzis[i] = audioDataAnalyzis[2*i];
    for(int i=elementsRead; i<audioDataAnalyzis.length; ++i) 
        audioDataAnalyzis[i]=0;
}

我使用的傅里叶变换代码来自java library jtransforms。任何人都可以想到这个原因吗?

我使用的声音数据快照如下所示:http://imageshack.us/photo/my-images/546/chartv.png/

0 个答案:

没有答案