Возвращает данные Numpys FFT и находит амплитуду и частоты в секунду в аудиофайле - PullRequest
1 голос
/ 26 апреля 2020

Последние несколько дней я изучал чтение wav-файлов для проекта аудио-визуализатора, который я делаю в python. Проект идет хорошо, но у меня есть несколько вопросов о данных, которые возвращаются при чтении wavfile и возвращении массива комплексных чисел из np.fft.fft ()

Так что просто начните с того, что комплексное число представляет? Реальная и мнимая часть?

Мой реальный вопрос здесь: мне также сказали, что частота является индексной позицией комплексного числа, это правда?

После загрузки аудиофайла и запуска его через FFT, я для Например, можно получить массив с длиной 10591232, действительно большое число, мой мыслительный процесс состоит в том, чтобы взять это число и разделить его на частоту дискретизации aud ios, чтобы получить список частот, используемых в секунду

Это неправильное мышление? если так, что должно быть сделано вместо? Я опубликую свой код ниже, чтобы также показать свое мышление. Извините за такой загруженный вопрос, который я искал в бесчисленных сообщениях StackOverflow и получил много разных ответов. Еще раз спасибо за чтение!

sample_rate, data = wavfile.read(sound_file)

channel_num = data.shape[1]
audio_length = data.shape[0] / sample_rate
time = np.linspace(0., audio_length, data.shape[0])

frequencies = np.fft.fft(time)
frequencies_per_second = np.array_split(frequencies, len(frequencies) / sample_rate)

pprint(len(frequencies_per_second[1]))
print(len(frequencies))

1 Ответ

0 голосов
/ 27 апреля 2020

A комплексное число используется потому, что это математически элегантный способ представления величины и фазы каждого результата DFT.

Индекс бина или элемента вектора результата FFT коррелирует с частотой базисного вектора преобразования. Обычно для первой половины вектора результата БПФ:

basis_vector_frequency = index * sample_rate / FFT_length

Однако частота каждого базисного вектора преобразования может или не может точно соответствовать частоте некоторой составляющей входного сигнала из-за эффектов оконного действия.

...