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

TAutomatic

Участник
  • Постов

    65
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о TAutomatic

  • Звание
    Участник
    Участник

Посетители профиля

609 просмотров профиля
  1. Видится как модуляция низкочастотным сигналом. Задебажил значения за несколько десятков секунд, построил график в экселе, правильная красивая синусоида. Почему КИХ- фильтр низких частот с одной стороны красиво режет все на частоте среза, но в тоже время вносит искажение в исходный сигнал... Вот в чем вопрос да,
  2. Спасибо. Ну а все таки по первичному вопросу. БПФ сигнала от образцового источника дает постоянную магнитуду нужной частоты, при использовании КИХ начинает модулироваться синусоидальным сигналом очень низкой частоты?
  3. Так в этом же и загвоздка, как я сделаю один аналоговый фильтр для всех полос? Если у меня максимальная частота 2кГц, то нужен фильтр на частоте среза 4кГц, что явно плохо для полосы 0,01-20Гц Либо я не понимаю пока нюанса.
  4. Так то оно правильно, попробовать ничего не мешает. Но я пока не совсем понимаю цель. Само по себе без предварительного КИХ БПФ выполняется правильно. С генератора 1Гц четко опознается познается с правильным индексом в массиве, никаких побочны гармоник существенной магнитуды нет, тоже самое для других частот и диапазонов: 100Гц, 1кГц например. Если я применю окно любого вида, какой результат я должен получить, что бы я понимал? КИХ, окно, БПФ - так?
  5. Не то что бы забыл, не знал 🙂 Я так понимаю, что оконную функцию стоит применять тогда, когда периодов сеплировано немного, что бы обрывки синусоиды не вносили искажения. если поделитесь советом, тем не менее буду признателен. Я делаю так. Для трех каналов буферы одинакового размера что бы проще укладывать в одну подпрограмму. Для нижней части диапазона у меня частота выборок 40,96Гц, на буфере в 4096 семплов имею разрешающую способность 0,01Гц и 20Гц верх диапазона. В средней части аналогично 2048Гц, 0,5Гц и 1кГц Для верхней части 4096Гц, 1Гц и максимальная частот 2кГц А что обозначает - склеить
  6. Привет сообществу. Не знал, как описать в заголовке темы проблему в двух словах.... Честно говоря, как лаконично выкрутиться, не знаю. Подробнее. Есть задача - анализировать спектр частот от датчиков, полоса от долей герца до нескольких килогерц. Примерно 0,5Гц - 2кГц. Таких 8 каналов хотелось бы обрабатывать одним камнем чем-то из серии STM32F4xx. Для целей "попробовать", поскольку с ЦОС не приходилось сталкиваться наяву, завел сигнал на одну ногу контроллера, выполняю АЦП сразу тремя доступными каналами ADC1-ADC3 с одной ноги, первый канал с медленным семплирование, но с разрешением 0,01Гц, второй побыстрее, третий совсем быстро ну это разумеется "быстро" относительно максимальной частоты. Все работает неплохо, с генератора четко определяется спектр, магнитуда сигнала правильная. Но есть одно но. Разумеется, когда подается сигнал на вход ближе к верхнему пределу, в первой полосе с невысокой максимальной частотой выборки возникает наложение спектра. На самом деле, можно логически решить задачу и не брать в расчет первую полосу, если в третьей да и либо во второй есть четкое значение. Но хочется сделать красиво. Заводить сигнал на 3 разные ножки с целью установки на каждом своего аналогового анти-алиазингового фильтра не хочется, тогда я не смогу в одном камне разместить 8 каналов. Тогда я предварительно погнал массив сырых значений через КИХ- фильтр. ЗдОрово! Это решение, фильтр работает. Но появилось еще одно но. Теперь магнитуда после FFT стала медленно плавать с частотой 0,06-0,07Гц., немного, но ощутимо для измерительного прибора, что есть недопустимо. Видимо, что то еще "не докрутил" как нужно. Коллеги, помогите если не трудно, код прикреплю "по требованию".
  7. Продам упаковку 1000 шт. автомотивных полевиков STB43N65M5 производства STMicroelectronics. Только всю сразу упаковку, поштучно продажи нет. Цена за штуку 5$ по курсу на день продажи.
  8. Спасибо за совет. С указателями я работаю плотно и дружественно уже давно, лет 15 :rolleyes: Но казусы с неинициализированными указателями бывают у всех...
  9. Да, Кеил. :rolleyes: Дока не помешает в любом случае, спасибо. Причину уже нашел. Люблю указатели, но стоит иной раз "поработать" с неиницализированным указателем... Вот, вызывало исключение HardFault....
  10. Как-то замудренно сильно. У Пиков гораздо понятнее и более нагляднее. Жаль, что разработчики ARM не позаботились о пользователях. Все это можно сделать аппаратно и показать наглядную инфу например в отладчике.
  11. Как определить причину вызова этого исключения? Столкнулся с проблемой возникновения этого исключения, хотя версия этого проекта трехдневной давности работает нормально. Причем и текущий проект работает нормально, если одну из ножек замкнуть на корпус. Непонятная ситуация.....
  12. Я использую другой камень, но я сталкнулся с аналогичной ситуацией: после приема нужного количества байт прерывание генерируется, но более не принимаются данные. Решил проблему путем частичной переинициализации DMA после приема. Тоесть там где я обработал очередной блок данных, снова устанавливаею в DMA нужное количество данных для приема и начальный адрес буфера приемника. Может это не совсем красиво, но работает. Другого способа я не нашел.
  13. Судя по всему у топикстартера именно так и оказалось, по адресу 0х001С нули. Хотя мне это странно, я был уверен, что Кеил должен приготовить файл для прошивки с учетом сигнатуры работоспособности. Значит FM генерирует нужную контрольную сумму и вносит ее в нужное место. Осталось только в понедельник опробовать. Но тут меня одно не понятно. Я же описывал, что сканил обмен FM и контроллера и моей программы и контрллера. Я не увидел разницы в этом месте в нулевом секторе. Плохо что ли смотрел, где мои глаза были.... Ну понедельник все расставит на свои места, отпишусь... Топикстартеру так не терпелось, что съездил в офис проверить... :rolleyes: Просто очень нужен был этот самодельный прошивальщик. Жму руки всем за участие, особая благодарность KRS и mempfis_. Дествительно, кеил генерит хексфайл без сигнатуры валидности программного кода, маджик на лету правит и вписывает что нужно. Странно, как я не заметил это сканером сличая свой обмен и меджика. В общем, прощивальщик заработал, что и нужно было. Еще раз всем спасибо. Тема закрыта.
  14. Я с Вами согласился бы безоговорочно в других условиях, но не этих. Смотрите, я же описывал. гружу hex файл в FM, он принимает по-моему только hex файлы, сейчас утверждать не буду, посколько дома, проверить не могу. Так вот этот файл он защивает в проц и тот начинает работать. Можно предположить, что сам FM высчитывает сумму векторов и вписывает ее в адрес 0х001С. Так нет же, я проверяю сканером, 0 сектор он записал таким, какой он в исходном hex файле. Причем, я тоже никаких сумм не высчитываю, записываю "как есть" , сравнение дампа 0 сектора, полученнго сканером и дампа сектора 0 полученнго тоже сканером от FM показывают их идентичность.
×
×
  • Создать...