Почему этот код FFT не работает для извлечения частот из аудио WAV?

Я довольно новичок в обработке звука, и я пытаюсь извлечь частоты из файла WAV. Как отмечается в исследовательских работах, я поместил аудио wav в байтовый массив и сегментировал его, пытаясь применить FFT для получения частот от аудио. Однако проблема в том, что даже когда я вхожу в звуковую дорожку только с одной сыгранной нотой (без шума), я получаю много частот, в результате чего, как и должно быть, я получаю одну.

Я думаю, что-то не так с кодом FFT, потому что аудио сегментируется правильно.

Спасибо всем заранее,

Мой код FFT

  public void getFFT(double[] x, int a) {

    double amp[] = new double[512];

    double firstSum;
    double secSum;
    double twoPInjk;
    double[][] s = new double[512][2];
    for (int j = 0; j < 512; j++) {
        firstSum = 0;
        secSum = 0;
        FreqArr[j] = (j * sampleRate) / (512);
        for (int k = 0; k < 512; k++) {
            twoPInjk = ((2 * Math.PI) / 512) * (j * k);
            firstSum += x[k] * Math.cos(twoPInjk);
            secSum += x[k] * Math.sin(twoPInjk);
        }
        amp[j] = Math.abs(Math.sqrt(Math.pow(firstSum, 2) + Math.pow(secSum, 2)));
    }
    highest(amp, a);
}

public void highest(double[] amp, int a) {
    String note;
    double all = 0;
    double max_magnitude = -1;
    int max_index = -1;

    for (int i = 0; i < (512); i++) {

        all = all + amp[i];

        if (amp[i] > max_magnitude) {
            max_magnitude = amp[i];
            max_index = i;
        }
    }
    double freq = 0;
    int cnt = 0;

    freq = max_index * (sampleRate / 2) / (512);
    System.out.println("Maximum_index: " + max_index);
    System.out.println("Sample rate: " + sampleRate);

      System.out.println(freq + " is the frequnecy");
}

мой результат (для 1-секундного аудио только с одной сыгранной нотой)

Частота дискретизации 44100 Размер моих данных 70376 Мой myBitsPerSample 16 Мои каналы 2 My myByteRate 176400 Моя длина 0,7983219954648526 0,7983219954648526 44100,0 Макс. Индекс: 56 Частота выборки: 44100,0 2411,71875 частота: Макс. Индекс: 256 Макс. 11025.0 - частота Max_index: 129 Частота дискретизации: 44100.0 5555.56640625 - частота Max_index: 511 Частота выборки: 44100.0 22006.93359375 - частота Max_index: 256 Частота выборки: 44100.0 11025.0 - частота Макс. 422 Частота дискретизации: 44100,0 18174.0234375 - частота Макс. Индекс: 26 Частота дискретизации: 44100,0 1119,7265625 - частота Макс. Индекс: 462 Частота дискретизации: 44100,0 19896,6796875 - частота Макс. Макс. индекс: 383 Частота дискретизации: 44100,0 16494,43359375 Макс. частота индекс: 6 Частота дискретизации: 44100,0 258,3984375 - частота Max_index: 385 Частота дискретизации: 44100,0 16580.56640625 - частота Max_index: 100 Частота выборки: 44100,0 4306,640625 - частота Max_index: 15 Частота выборки: 44100,0 - 645,95x6093 44100.0 18130.95703125 - частота Max_index: 256 Частота выборки: 44100.0 11025.0 - частота Max_index: 0 Частота выборки: 44100.0 0.0 - частота Max_index: 483 Частота выборки: 44100.0 20801.07421875 - частота 0.0: Макс.: 134 Частота дискретизации: 44100,0 5770,8984375 - частота Макс. Индекс: 123 Частота дискретизации: 44100,0 5297,16796875 - частота Макс. Индекс: 2 Частота выборки: 44100,0 86,1328125 - частота Макс. Индекс: 378 Частота выборки: 44100,0 Макс. 21145.60546875 - частота Макс. Индекс: 125 Частота дискретизации: 44100,0 5383,30078125 - частота Макс. Индекс: 242 Частота дискретизации: 44100,0 104 22.0703125 - частота Max_index: 267 Частота выборки: 44100.0 11498.73046875 - частота Max_index: 257 Частота выборки: 44100.0 11068.06640625 - частота Max_index: 128 Частота выборки: 44100,0 5512,5 - частота Макс. 350 Частота дискретизации: 44100,0 15073.2421875 - частота Max_index: 75 Частота дискретизации: 44100,0 3229,98046875 - частота Max_index: 127 Частота выборки: 44100,0 5469,43359375 - частота Max_index: 473 Частота выборки: 44100,0 20370,40,056: 50: 50: 50: 50 - 50: 50: 50: 50: 50: 50: 50: 50: 50: 50; Макс. индекс: 420 Частота дискретизации: 44100,0 18087,890625 Частота Макс. индекс: 413 Частота дискретизации: 44100,0 17786,42578125 Макс. индекс: 136 Частота выборки: 44100,0 5857,03125 Макс. индекс Макс. Частота дискретизации: 44100,0 10809,66796875 - частота Макс. Индекс: 431 Частота дискретизации: 44100,0 18561,6210 9375 - частота Max_index: 490 - частота выборки: 44100,0 21102.5390625 - частота Max_index: 221 - частота выборки: 44100,0 9517.67578125 - частота Max_index: 364 - частота выборки: 44100,0 - 15676,171875 - частота 44 Макс. 487 Частота дискретизации: 44100,0 20973,33984375 - частота Макс. Индекс: 350 Частота дискретизации: 44100,0 15073.2421875 - частота Макс. Индекс: 243 Частота выборки: 44100,0 10465,13671875 - частота Макс. Макс. индекс: 56 Частота дискретизации: 44100.0. 2411.71875: Макс. индекс: 151 Частота дискретизации: 44100.0. 6503.02734375. Макс. индекс: 447. Частота выборки: 44100.0. 19250.68359375. Макс. индекс. Частота дискретизации: 44100,0 16236,03515625 - частота Макс. Индекс: 465 Частота дискретизации: 44100,0 20025,87890 625 - частота Max_index: 417 Частота дискретизации: 44100.0 17958.69140625 - частота Max_index: 259 Частота выборки: 44100.0 11154.19921875 - частота Max_index: 34 280 Частота дискретизации: 44100,0 12058,59375 - частота Max_index: 271 Частота дискретизации: 44100,0 11670.99609375 - частота Max_index: 92 Частота выборки: 44100,0 3962,109375 - частота Max_index: 141 Частота выборки: 44100,0 - 6072,36 032: 1717: 1715: 070: 1717: 070: 1717: 070: 1717: 070: 1717. Макс. индекс: 123 Частота выборки: 44100,0 5297,16796875 Частота Макс. индекс: 388 Частота выборки: 44100,0 16709,765625 Частота Max_index: 122 Частота выборки: 44100,0 5254,1015625 Частота Макс. Частота дискретизации: 44100,0 19982,8125 - частота Макс. Индекс: 231 Частота дискретизации: 44100,0 9948,3398437 5 - частота Max_index: 95 Частота дискретизации: 44100,0 4091,30859375 - частота Max_index: 112 Частота дискретизации: 44100,0 4823,4375 - частота Макс. Индекс: 260 Частота дискретизации: 44100,0 11197,265625 - частота Макс. 458 Частота дискретизации: 44100.0 19724.4140625 - частота Max_index: 17 Частота дискретизации: 44100.0 732.12890625 - частота Max_index: 129 Частота выборки: 44100.0 5555.56640625 - частота Max_index: 262 Частота выборки: 44100.0 11280: 053: 153: 053: 535: 53990: 53: 53: 0: 0: 11: 0990: 53: 0: 11: 53: 0: 11: 0, 15: 53, 0, 53, 0, 0, 53, 0, 0, 53, 0, 0, 53, 0, 0, 53, 0, 53, 0, 0, 53, 098: 53. Макс. индекс: 0: частота выборки: 44100,0. 0,0 Макс. индекс: 404. Частота выборки: 44100,0. 17398,828125. Макс. индекс: 471. Частота дискретизации: 44100,0. 20284,27734375 Макс. Частота дискретизации: 44100,0 10292,87109375 - частота Макс. Индекс: 385 Частота дискретизации: 44100,0 16580.56640625 - франц. Макс. индекс: 485 Частота дискретизации: 44100,0 20887.20703125 - частота Макс. индекс: 14 Частота выборки: 44100,0 602,9296875 - частота Макс. индекс: 384 Частота выборки: 44100,0 16537,5 - частота Макс.: 44100.0 14728.7109375 - частота Max_index: 369 Частота дискретизации: 44100.0 15891.50390625 - частота Max_index: 15 Частота выборки: 44100.0 645.99609375 - частота Макс_индекс: 22 Max_index: 26 Частота дискретизации: 44100.0 1119.7265625 - частота Макс. Индекс: 386 Частота дискретизации: 44100.0 16623.6328125 - частота

0 ответов

Другие вопросы по тегам