[an error occurred while processing this directive]
|
В устройстве необходимо обрабатывать сигнал с датчика в диапазоне 10-500Гц.
Обработка сигнала с датчика требует спектрального анализа. С этим особенных проблем нет. Применятся БПФ с результирующим спектром 0-1024Гц, дискретностью 1Гц.
Но в задаче требуется еще получить полный размах сигнала (от минимума до максимума) в диапазоне частот 20-F Гц. Вторая граница диапазона F плавает где-то 40 – 80Гц, в зависимости от режима работы датчика.
Для решения этой задачи можно из полученного спектра удалить ненужные гармонические составляющие, сделать обратное БПФ и определить размах сигнала.
В общем-то сейчас так и сделано, ресурсов процессора вполне достаточно для такой операции. Результаты измерений попадают в требуемые погрешности и т.д. Но все это справедливо, когда основные гармоники сигнала попадают на спектральную сетку в 1Гц. В алгоритме работы устройства предусмотрена незначительная коррекция периода выборок, чтобы точно попадать спектром на основные гармоники сигнала.
Но вот, когда частота входного сигнала у меня равна, скажем, 22.5Гц, то результаты измерений несколько (3%)завышаются за счет растекания спектра.
Другим решением данной задачи видится применение цифрового фильтра. Но честно говоря не очень хочется выполнить расчет коэффициентов фильтра в процессоре или хранить N наборов коэффициентов для разных частот.
В БФП окон взвешивания не применяю.
Какое может быть еще решение ?
С уважением, Александр.
E-mail: info@telesys.ru