Перейти к содержанию

FFT-спектральный анализатор avr


Q-ti

Рекомендуемые сообщения

Доброй ночи .
Как реализовать вывод на lcd в цифрах , частоты с максимальной амплитудой на промежутке от 0 до 120Гц. С частотой дискретизации 240 Гц .
Прошу помочь в написании кода , потому что в математике 0 .

 

 

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Оно и понятно. По таким исходным данным построить спектр будет весьма сложно, выборок маловато - у вас максимальная частота упирается прямо в предел теоретических возможностей, на практике это очень ресурсоёмкая вычислительная задача.

Дискретизацию надо поднять хотябы раз в 10 - до 2400Гц. тогда уже можно применять математику не упираясь в теоретический предел. Но всеравно конечность выборки даст о себе знать, точность будет так себе.

Суть метода проста - умножаем исходную выборку на синус интересующей нас частоты - это элементарная операция сдвига сигнала по частоте! Потом надо высчитать DC(постоянную) составляющую результирующего сигнала и у вас в кармане численная характеристика составляющей исходного сигнала выбранной частоты - ведь в результате сдвига выбранная частота сдвигается в постоянный ток(частота = 0).

Если не ошибаюсь, реализация такого алгоритма и называется ДПФ.

Только на практике из-за дискретности функции и конечности интервала выборки(объёма памяти) результат будет так себе, и для остроты пиков желательно перед применением ДПФ на входную выборку применить функцию "окна" - плавно свести начало и конец выборки к нулю, чтобы небыло разрыва.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

На пк я нашел похожую программу , но нужно на микроконтроллере  похожее сделать только вывод частоты с максимальной амплитудой на промежутке от 0 до 120Гц.

t.JPG

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

То что я и описал. Только учти, матиматика там ресурсоёмкая, контроллер нужен с достаточно большим объёмом памяти. Во-первых, чтобы поместить сам буффер(в программе это 256 семплов - если 16-битная выборка то 512 байт памяти нужно минимум) и во вторых, результат - это уже несколько больше, поскольку числа будут уже не целые... вобщем на дешёвых и широко распространённых контроллерах(типа меги 8-й) это реализовать НЕРЕАЛЬНО, нужны DSP-контроллеры иначе считать такую выборку как в программе будешь минуту.

Да, вижу в программе к выборке применяется окно Ханнинга.

И советую, сначала реализовать алгоритм на более человеческих условиях - делать всю математику на ПК на любом языке(хоть на бейсике в экселе, или на паскале), а уже ПОТОМ после того как получишь вменяемый результат переносить в МК ибо камней найдёшь массу, граблей насобираешь а делать это сразу на МК в сотню раз больнее.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Q-ti сказал:

Прошу помочь в написании кода

Могу написать код за деньги. Если интересует - пишите в л.с.

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

16 часов назад, MagicianT сказал:

Похоже я и мои посты здесь невидимы.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
    • А что нить из ассортимента активных щупов производства СССР..))
    • Типа такого: https://aliexpress.ru/item/2044864227.html?sku_id=58855020183
    • поняли неправильно. У ТЛ494 никакой защиты нет, усилители ошибки не защита, они не должны приводить к ложным импульсам. Причем тут "микруха" ?  надо нагружать ВСЁ. До сих пор вообще непонятно о каком ИИП идет речь и сколько у него каналов. Бесполезно схему рисовать? - Помогать так бесполезно. Картина кривая по самое "немогу" продолжаются картинки, снятые через ногу и без цены деления.
×
×
  • Создать...