ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
21 января
1487660 Топик полностью
IBAH (30.12.2024 15:37, просмотров: 188) ответил Mty1 на Помогите идеей - как детектить наличие-пропадание меандра 80Гц в течении 0.3 секунды на ноге проца (stm32f4)? Есть FreeRTOS с тиком 1ms и прерывания на ноге. Точность +-10гц подойдет. В голову приходит кольцевой буфер с замерами и скользящее окно. Как то все не то.
Одноточечное Фурье. Причем по меандру. Практически так. Заготавливаешь табличку 
 x  y
-1 -1
 1 -1
 1  1
-1  1

в прерывании 1мс считаешь ДДС по модулю степени двойки на 80Гц

Два старший разряда ДДС используешь как индекс таблицы i


В каждом прерывании считаешь 300 раз (0.3с), это

Signal= ((!!PIN)<<1)-1;

Result= Result+ (x[i]* Signal)* (x[i]* Signal) + (y[i]* Signal)* (y[i]* Signal) ;

если больше порога, например ResultMax/2, это искомый сигнал

потом Result=0, и заново


Недостаток, обновление каждые 0.3 секунды

Если не устраивает, тогда тогда не интегрируем за 300 отсчетов, а используем ФНЧ с постоянной времени 0.3 секунды.