Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Полосовой фильтр 50Гц +/- 1Гц
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Gerasimov
Здравствуйте!

Решил для уменьшения элементов на плате убрать ОУ не котором реализован полосовой фильтр 2-го порядка 50Гц +/- 1Гц, и завести эти данный напрямую на МК. АЦП 12Бит, частота ацэпирования 50КГц.

1/2-я напряжения это НОЛЬ сигнала (пришлось сместить НОЛЬ сигнала чтоб в МК засунуть)

В общем как перейти от аналогового фильтра к цифровому (как делать ПИД-регулятор в цифре я научился после того как расписал по формулам его работу как напряжения в точках схемы) имея его вид на приципиальной схеме, или это вообще не нужно?

Не пинайте, помогите дельным советом, а лучше чем-то из практики, ужо много книжкоф скачал и посмотрел, но что-то не догоняю help.gif

Вроде как подходит БИХ (о! я уже такие слова знаю!) но как его сделать полосовым и найти коэффициенты человеку ранее с "глубокой математикой" не связанному?

С уважением.
GDI
По-моему для любого ДСП процессора в комплекте со средой разработки идуп примеры фильтров, а уж коэфффициенты рассчитывайте в матлабе.
Vasiliy Rufitskiy
Как я понимаю, фильтр наверное нужен не полосовой, а режекторный (я подозреваю, что нужно фильтровать сигнал от сетевых наводок).
И потом, фильтр второго порядка при таком соотношении фильтруемой частоты и частоты дискретизации не получится даже БИХ при точности преобразований в 12 бит. Отсюда вопрос: какая разрядность процессора для выполнения вычислений?

В общем, действительно ли у Вас полосово

Как я понимаю, фильтр наверное нужен не полосовой, а режекторный (я подозреваю, что нужно фильтровать сигнал от сетевых наводок).
И потом, фильтр второго порядка при таком соотношении фильтруемой частоты и частоты дискретизации не получится даже БИХ при точности преобразований в 12 бит. Отсюда вопрос: какая разрядность процессора для выполнения вычислений?

В общем, действительно ли у Вас полосовой фильтр и какая разрядность МК?
Структуру и коэффициенты я посчитаю с помощью fdatool, и даже АЧХ приложу.
Gerasimov
В общем, действительно ли у Вас полосовой фильтр и какая разрядность МК?
Структуру и коэффициенты я посчитаю с помощью fdatool, и даже АЧХ приложу.
[/quote]

Благодарю за ответ!

Как раз полезный сигнал у меня сетевые 50Гц их нужно очисить с низу и сверху на 1 Гц (т.е. полоса 49-51Гц). Процесор 8-ми битка 50МГц MCS51 (в общем не DSP ;-) возможности ADC позволяют 100КГц 12бит для каждого канала.

Будет два зашумлённых сигнала из которых нужно выделить 50Гц и померить между ними фазу, (фазу я могу и компараторами с таймером померить)

Вот.
Vasiliy Rufitskiy
Вашу задачу ИМХО лучше решить немного иначе...
Чтобы не делать лишнюю работу по фильтрации предлагаю сделать следующее:

1. Сделать децимацию входного сигнала (см. приложениеНажмите для просмотра прикрепленного файла). Поскольку такой частоты дискретизации (50 кГц) не нужно для 50 Гц. Вполне достаточно 500 Гц. Т.е. нужно взять каждый сотый входной отсчёт (собственно, децимация). Просто так их брать нельзя, могут возникнуть "зеркальные" частоты благодаря эфекту "элайзинга" (aliasing). Чтобы от него избавится, нужно профильтровать антиэлайзинг фильтром. Этой фильтрацию можно свести к нахождению среднего (в нашем случае из 100 отсчётов).
В случае, если вы уверены в отсутствии во входном сигнале частот (аналоговый ФНЧ на 250 Гц стоит перед АЦП ), больше чем новая fs/2, то достаточно просто взять каждый 100-ый отсчёт.

Без децимации, ИМХО, здесь не обойтись: слишком много памяти и ресурсов потребуется для обработки.

2. Реализовать схему квадратурной обработки (см. приложениеНажмите для просмотра прикрепленного файла).
Все операции ведуться для окна длиной в 10 отсчётов (при частоте дискретизации 500 Гц), которое идёт с перекрытием (двигается по одному отсчёту вдоль входной последовательности). Хотя можно сделать и больше, всё зависит от "степени реалтайма обработки".

X на схеме обозначает поэлементное умножение.

Каждый из 2-ух сигналов проходит такую обработку, определяется начальная фаза, а затем тупо 2 числа вычитаются.
Нужно, конечно, сделать atan, но это затабличить можно.

В общем, пойдёт такая схема, или Вы настаиваете на полосовом фильтре? )


PS
*ой, кажись в расчёте длины окна обшибся для квадратурной обработки. T - количество отсчётов окна.
Оно должно равняться двум периодам опорной частоты, т.е. 2*fs/f0 = 200 отсчётов, при fs = 500 Гц.
Vasiliy Rufitskiy
> X на схеме обозначает поэлементное умножение.
Прошу меня простить, это свёртка.

И ещё приложения местами поменять нужно...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.