Обычно, когда вы выполняете вызов fft, вы предоставляете одномерный массив, который представляет кривую во временной области, часто это ваша звуковая кривая, однако fft преобразует любую кривую временного ряда ... когда вы начинаете с аудиофайла,скажем, файл WAV, вы должны преобразовать двоичные данные в этот массив 1D с плавающей запятой ... если его WAV, то файл будет начинаться с 44-байтового заголовка, который детализирует такие важные атрибуты, как частота дискретизации, битовая глубина и порядковый номер ... остальныеwav-файла - это полезная нагрузка ... в зависимости от разрядности вам потребуется проанализировать набор байтов, а затем преобразовать данные из обычно 16-битных данных, которые будут занимать два байта в целое число, выполняя некоторое битовое смещение ... для выполнениячто вам необходимо знать понятие порядка байтов (big или little endian), а также обрабатывать чередование многоканального сигнала, такого как стерео ... как только вы получите сгенерированное представление массива с плавающей запятой, просто вставьте его в ваш вызов fft... для начала игнорируйте использование файла wavи просто синтезировать вашу собственную кривую греха и передать ее в вызов fft только для того, чтобы подтвердить, что известная частота приведет к тому, что эта частота, представленная в его частотной области, выйдет из вызова fft
Ответ от вызова fft(или DFT) будет одномерным массивом комплексных чисел ... есть простая формула для вычисления величины и фазы каждой частоты в этом наборе результатов FFT ... знать, что такое предел Найквиста и как сложитьмассив freq domain сверху на себя, чтобы удвоить величину, при этом используя только половину элементов этого массива домена freq ... элемент 0 этого массива домена freq - это ваше смещение постоянного тока, и каждый последующий элемент называется частотным бином, который отделен отдруг друга с помощью постоянного приращения частоты, также вычисляемого по простой формуле ... вернемся назад, если вас интересует, что это за формулы
Теперь вы можете оценить людей, которые проводят всю свою карьеру, раздвигая границы работы над алгоритмами зазанавес на этиВызовы API ... Слух Чоп хлопает вместе 30 линий API-вызовов для выполнения всего вышеперечисленного, вероятно, доступны, однако гораздо более благородно написать код для выполнения всего вышеизложенного вручную, поскольку я знаю, что это откроет новые горизонты дляПозволяет вам задавать более тонкие вопросы
Очень интересный аспект преобразования кривой во временной области в ее аналог в частотной области с помощью вызова FFT заключается в том, что вы сохранили всю информацию своего исходного сигнала ...чтобы доказать это, я настоятельно рекомендую вам сделать следующий шаг и выполнить симметричную операцию, преобразовав выходные данные вашего вызова fft обратно во временную область
звуковую кривую во временной области -> fft -> представление в домене freq -> inverse fft -> назад к исходной аудио кривой во временной области
этот цикл трансформации является мощным, так как это хороший способ позволить вам подтвердить вашу аудио кривую до частотыдомен работает