Я не очень понимаю FFT и частоты дискретизации

Я действительно смущен здесь. Я - программист, работающий над игрой, которая предназначена для обнаружения ударов в песнях и некоторых других. У меня нет никаких предыдущих знаний об аудио и просто читаю любой материал, который я могу найти. В то время как я получил работу и все такое, я просто не понимаю, как сэмплы передаются на разные частоты. Вопрос 1, что означает каждая частота. За алгоритм я получил. Я могу передать, например, 1024 образца в 512 результатов. Так они описывают силу каждого спектра в текущую секунду? в действительности это не имеет смысла, поскольку я помню, что в аудиозаписи 44,1 кГц есть частота 20000 Гц. Так как же 512 образцов спектра объясняют, что происходит в этот момент? Вопрос 2, из того, что я прочитал, это число, которое представляет звуковую волну в данный момент. Однако я прочитал это, возведя в квадрат как левый, так и правый канал, и сложив их вместе, и вы получите текущий уровень мощности. И то, и другое кажется мне непонятным, и я действительно вежливый, так что, пожалуйста, объясните.

1 ответ

  1. DFT выход

    на выходе получается комплексное представление вектора (Re,Im,Frequency) базисной функции (обычно синусоидальной). Первый элемент - смещение по постоянному току, поэтому пропустите его. Все остальные кратны одной основной частоте (sampling rate/N). Вывод является симметричным (если ввод является действительным только), поэтому используйте только первую половину результатов. Часто используется спектр мощности

    Amplitude=sqrt(Re^2+Im^2)
    

    которая является амплитудой базисной функции. Если фаза нужна, то

    phase=atan2(Im,Re)
    

    Будьте осторожны, результаты DFT сильно зависят от формы входного сигнала, частоты и фазового сдвига для ваших базовых функций. Это приводит к тому, что выходной сигнал вибрирует / колеблется вокруг правильного значения и создает широкие пики вместо резких для сингулярных частот, не говоря уже о наложении.

  2. частоты

    если ты получил 44100Hz тогда максимальная выходная частота равна половине, что означает, что самая большая частота, присутствующая в данных 22050Hz, Однако DFFT не содержит эту частоту, поэтому, если вы проигнорируете зеркальную вторую половину результатов, тогда:

    • для 4 образцов DFT выходов частоты { -,11025 } Гц
    • для 8 образцов частоты являются: { -,5512.5,11025,16537.5 } Гц

    Выходная частота линейна по своему адресу от начала, так что если вы получили N=512 образцы

    1. сделать DFFT на нем
    2. получить первым N/2=256 Результаты
    3. i-й образец представляет частоту f=i*samplerate/N Гц

      где i={ 1,...,(N/2)-1}... пропуская i=0

    пример сигналов

    изображение показывает одно из моих служебных приложений, связанных с

    • 2-канальный генератор звука (вверху слева)
    • 2-канальный осциллограф (вверху справа)
    • 2-канальный спектральный анализатор (внизу) ... переключен на линейную частотную шкалу, чтобы понять, что я имею в виду в тексте выше

    увеличить изображение, чтобы увидеть настройки... Я сделал его как можно ближе к реальным устройствам.

    Вот сравнение DCT и DFT:

    DFFT против DCT

    Здесь зависимость выхода DFT от частотного искажения входного сигнала по частоте дискретизации

    DFFT и псевдоним частоты дискретизации

  3. больше каналов

    Суммирование мощности каналов более безопасно. Если вы просто добавите каналы, то можете пропустить некоторые данные. Например, пусть левый канал воспроизводит синусоидальную волну с частотой 1 кГц, а прямо противоположную, поэтому, если вы просто сложите их, то результат будет нулевым, но вы сможете услышать звук.... (если вы находитесь не совсем посередине между динамиками). Если вы анализируете каждый канал независимо, тогда вам нужно рассчитать DFFT для каждого канала, но если вы используете суммарную мощность каналов (или абсолютную сумму), то вы можете получить частоты для всех каналов одновременно, или, грубо говоря, вам нужно масштабировать амплитуды.,

[Заметки]

Больше N более хороший результат (меньше искажения артефактов и ближе к максимальной частоте). Для детектирования определенных частот детекторы FIR- фильтра более точные и быстрые.

Настоятельно рекомендуем прочитать DFT и все подссылки там, а также эту графику в режиме реального времени Данные на (qwt) Осциллограф

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