О библиотеке FFT на Arduino

Из выходных результатов я вижу, что arduinoFFT возвращает только положительные частоты, поэтому я думаю, что он сам удаляет отрицательные значения и компенсирует потерянную энергию путем умножения на 2. Правильно ли это?Ar

, 👍0

Обсуждение

Что такое "отрицательная" частота?, @Majenko


1 ответ


Лучший ответ:

1

Я не знаю, что вы подразумеваете под "отрицательной" частотой.

БПФ берет набор выборок и возвращает группу "сегментов", количество сегментов которых равно половине количества выборок. Эти сегменты охватывают частоты от 0 Гц до F / 2, где F - частота дискретизации.

Каждый сегмент содержит величину мощности блока частот как по действительной, так и по мнимой "оси" (фактически это пара координат, изображающих вектор).

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

Это значение "абсолютной мощности" является величиной вектора. Вектор никогда не может иметь величину <0. В конце концов, если у вас есть вектор (1,1) и один из (-1, -1), они оба имеют одинаковую величину, просто с разным углом (в данном примере разность фаз составляет 180 градусов).

,

спасибо за ответ, господин Маенко. Хотя я только что узнал, что в библиотеке arduinoFFT параметр "FFT_FORWARD" выполняет всю работу (возвращает односторонний энергетический спектр, а также нормализует амплитуды)., @أيمن الفحصي

Я не знаком ни с этой конкретной библиотекой, ни с тем, какие возможности она предоставляет., @Majenko

Последний вопрос, сэр: повлияет ли постоянная составляющая сигнала на амплитуды других гармоник (компонентов) БПФ (для какой-то цели БПФ применяется к выходному сигналу усиленного электронного микрофона)., @أيمن الفحصي

Нет, компонент постоянного тока должен влиять только на сегмент постоянного тока, если вообще влияет, @Majenko

Да благословит вас Бог. Спасибо за помощь ;), @أيمن الفحصي

Пожалуйста, еще один вопрос, сэр: я попытался отфильтровать отобранные данные, используя текущее среднее значение, прежде чем запускать на нем БПФ, чтобы уменьшить шум в выходном сигнале датчика. Однако я не уверен, подходит ли он для аудиосигнала, поскольку результирующий вектор БПФ совсем не похож на нефильтрованный., @أيمن الفحصي

Я имею в виду, что амплитуды, которые я получаю для определенной ячейки, сильно отличаются от тех, где фильтрация не применялась., @أيمن الفحصي

@أيمنالححي: в этом весь смысл фильтрации: изменять амплитуду некоторых частотных составляющих. В случае бегущей медианы вы будете сильно ослаблять более высокие частоты., @Edgar Bonet

На самом деле меня просто интересует диапазон 1-8 кГц. Кроме того, частота дискретизации, которую я считаю наиболее многообещающей, составляет 20480 Гц (с использованием коэффициента 1,28 и теоремы Найквиста). Кроме того, я фильтрую не данные БПФ, а выборочные данные (среднеквадратичное звуковое давление в зависимости от времени). Пожалуйста, что вы думаете по этому поводу?, @أيمن الفحصي

Или, может быть, это действительно связано со временем, которое занимает вычисление медианы?? Однако я не понимаю, почему амплитуды БПФ будут меняться, как вы упомянули, еще до запуска БПФ., @أيمن الفحصي

Видите ли, если бы мы говорили о непрерывном времени, то все было бы проще понять. Но с дискретизированными вычислениями для меня все не так очевидно: (, @أيمن الفحصي