TAutomatic
Участник-
Постов
65 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о TAutomatic
-
Звание
Участник
Посетители профиля
-
FFT + FIR на ядре CORTEX M4
TAutomatic ответил TAutomatic тема в Алгоритмы ЦОС (DSP)
Видится как модуляция низкочастотным сигналом. Задебажил значения за несколько десятков секунд, построил график в экселе, правильная красивая синусоида. Почему КИХ- фильтр низких частот с одной стороны красиво режет все на частоте среза, но в тоже время вносит искажение в исходный сигнал... Вот в чем вопрос да, -
FFT + FIR на ядре CORTEX M4
TAutomatic ответил TAutomatic тема в Алгоритмы ЦОС (DSP)
Спасибо. Ну а все таки по первичному вопросу. БПФ сигнала от образцового источника дает постоянную магнитуду нужной частоты, при использовании КИХ начинает модулироваться синусоидальным сигналом очень низкой частоты? -
FFT + FIR на ядре CORTEX M4
TAutomatic ответил TAutomatic тема в Алгоритмы ЦОС (DSP)
Так в этом же и загвоздка, как я сделаю один аналоговый фильтр для всех полос? Если у меня максимальная частота 2кГц, то нужен фильтр на частоте среза 4кГц, что явно плохо для полосы 0,01-20Гц Либо я не понимаю пока нюанса. -
FFT + FIR на ядре CORTEX M4
TAutomatic ответил TAutomatic тема в Алгоритмы ЦОС (DSP)
Так то оно правильно, попробовать ничего не мешает. Но я пока не совсем понимаю цель. Само по себе без предварительного КИХ БПФ выполняется правильно. С генератора 1Гц четко опознается познается с правильным индексом в массиве, никаких побочны гармоник существенной магнитуды нет, тоже самое для других частот и диапазонов: 100Гц, 1кГц например. Если я применю окно любого вида, какой результат я должен получить, что бы я понимал? КИХ, окно, БПФ - так? -
FFT + FIR на ядре CORTEX M4
TAutomatic ответил TAutomatic тема в Алгоритмы ЦОС (DSP)
Не то что бы забыл, не знал 🙂 Я так понимаю, что оконную функцию стоит применять тогда, когда периодов сеплировано немного, что бы обрывки синусоиды не вносили искажения. если поделитесь советом, тем не менее буду признателен. Я делаю так. Для трех каналов буферы одинакового размера что бы проще укладывать в одну подпрограмму. Для нижней части диапазона у меня частота выборок 40,96Гц, на буфере в 4096 семплов имею разрешающую способность 0,01Гц и 20Гц верх диапазона. В средней части аналогично 2048Гц, 0,5Гц и 1кГц Для верхней части 4096Гц, 1Гц и максимальная частот 2кГц А что обозначает - склеить -
TAutomatic подписался на FFT + FIR на ядре CORTEX M4
-
FFT + FIR на ядре CORTEX M4
TAutomatic опубликовал тема в Алгоритмы ЦОС (DSP)
Привет сообществу. Не знал, как описать в заголовке темы проблему в двух словах.... Честно говоря, как лаконично выкрутиться, не знаю. Подробнее. Есть задача - анализировать спектр частот от датчиков, полоса от долей герца до нескольких килогерц. Примерно 0,5Гц - 2кГц. Таких 8 каналов хотелось бы обрабатывать одним камнем чем-то из серии STM32F4xx. Для целей "попробовать", поскольку с ЦОС не приходилось сталкиваться наяву, завел сигнал на одну ногу контроллера, выполняю АЦП сразу тремя доступными каналами ADC1-ADC3 с одной ноги, первый канал с медленным семплирование, но с разрешением 0,01Гц, второй побыстрее, третий совсем быстро ну это разумеется "быстро" относительно максимальной частоты. Все работает неплохо, с генератора четко определяется спектр, магнитуда сигнала правильная. Но есть одно но. Разумеется, когда подается сигнал на вход ближе к верхнему пределу, в первой полосе с невысокой максимальной частотой выборки возникает наложение спектра. На самом деле, можно логически решить задачу и не брать в расчет первую полосу, если в третьей да и либо во второй есть четкое значение. Но хочется сделать красиво. Заводить сигнал на 3 разные ножки с целью установки на каждом своего аналогового анти-алиазингового фильтра не хочется, тогда я не смогу в одном камне разместить 8 каналов. Тогда я предварительно погнал массив сырых значений через КИХ- фильтр. ЗдОрово! Это решение, фильтр работает. Но появилось еще одно но. Теперь магнитуда после FFT стала медленно плавать с частотой 0,06-0,07Гц., немного, но ощутимо для измерительного прибора, что есть недопустимо. Видимо, что то еще "не докрутил" как нужно. Коллеги, помогите если не трудно, код прикреплю "по требованию". -
Продам MOSFETs STB43N65M5 1000 шт.
TAutomatic опубликовал тема в Продам
Продам упаковку 1000 шт. автомотивных полевиков STB43N65M5 производства STMicroelectronics. Только всю сразу упаковку, поштучно продажи нет. Цена за штуку 5$ по курсу на день продажи. -
Источник исключени HardFault в LPC1768
TAutomatic ответил TAutomatic тема в ARM
Спасибо, посмотрим. -
Источник исключени HardFault в LPC1768
TAutomatic ответил TAutomatic тема в ARM
Спасибо за совет. С указателями я работаю плотно и дружественно уже давно, лет 15 :rolleyes: Но казусы с неинициализированными указателями бывают у всех... -
Источник исключени HardFault в LPC1768
TAutomatic ответил TAutomatic тема в ARM
Да, Кеил. :rolleyes: Дока не помешает в любом случае, спасибо. Причину уже нашел. Люблю указатели, но стоит иной раз "поработать" с неиницализированным указателем... Вот, вызывало исключение HardFault.... -
Источник исключени HardFault в LPC1768
TAutomatic ответил TAutomatic тема в ARM
Как-то замудренно сильно. У Пиков гораздо понятнее и более нагляднее. Жаль, что разработчики ARM не позаботились о пользователях. Все это можно сделать аппаратно и показать наглядную инфу например в отладчике. -
Источник исключени HardFault в LPC1768
TAutomatic опубликовал тема в ARM
Как определить причину вызова этого исключения? Столкнулся с проблемой возникновения этого исключения, хотя версия этого проекта трехдневной давности работает нормально. Причем и текущий проект работает нормально, если одну из ножек замкнуть на корпус. Непонятная ситуация..... -
Прием по USART1 через DMA1
TAutomatic ответил MK2 тема в ARM
Я использую другой камень, но я сталкнулся с аналогичной ситуацией: после приема нужного количества байт прерывание генерируется, но более не принимаются данные. Решил проблему путем частичной переинициализации DMA после приема. Тоесть там где я обработал очередной блок данных, снова устанавливаею в DMA нужное количество данных для приема и начальный адрес буфера приемника. Может это не совсем красиво, но работает. Другого способа я не нашел. -
Протокол программирования ISP
TAutomatic ответил TAutomatic тема в ARM
Судя по всему у топикстартера именно так и оказалось, по адресу 0х001С нули. Хотя мне это странно, я был уверен, что Кеил должен приготовить файл для прошивки с учетом сигнатуры работоспособности. Значит FM генерирует нужную контрольную сумму и вносит ее в нужное место. Осталось только в понедельник опробовать. Но тут меня одно не понятно. Я же описывал, что сканил обмен FM и контроллера и моей программы и контрллера. Я не увидел разницы в этом месте в нулевом секторе. Плохо что ли смотрел, где мои глаза были.... Ну понедельник все расставит на свои места, отпишусь... Топикстартеру так не терпелось, что съездил в офис проверить... :rolleyes: Просто очень нужен был этот самодельный прошивальщик. Жму руки всем за участие, особая благодарность KRS и mempfis_. Дествительно, кеил генерит хексфайл без сигнатуры валидности программного кода, маджик на лету правит и вписывает что нужно. Странно, как я не заметил это сканером сличая свой обмен и меджика. В общем, прощивальщик заработал, что и нужно было. Еще раз всем спасибо. Тема закрыта. -
Протокол программирования ISP
TAutomatic ответил TAutomatic тема в ARM
Я с Вами согласился бы безоговорочно в других условиях, но не этих. Смотрите, я же описывал. гружу hex файл в FM, он принимает по-моему только hex файлы, сейчас утверждать не буду, посколько дома, проверить не могу. Так вот этот файл он защивает в проц и тот начинает работать. Можно предположить, что сам FM высчитывает сумму векторов и вписывает ее в адрес 0х001С. Так нет же, я проверяю сканером, 0 сектор он записал таким, какой он в исходном hex файле. Причем, я тоже никаких сумм не высчитываю, записываю "как есть" , сравнение дампа 0 сектора, полученнго сканером и дампа сектора 0 полученнго тоже сканером от FM показывают их идентичность.