|
Режекторный фильтр на 50 Гц для видеосигнала, как удалить наводку от цепей питания на видеосигнал |
|
|
|
Jun 22 2013, 09:26
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Собственно возникла вот какая задача. Имеем видеосигнал АЦП с частотой 66.(6) МГц, но вообще частота может программно меняться, от 25 до 80 МГц. Но некоторые приемники выдают сигнал с замешиванием в него частоты 50 Гц. И вот требуется эту помеху из сигнала убрать, однако DC нужно оставить. Обработка делается на ПЛИС и основная частота обработки в ней - 100 МГц.
Пока что в голову приходит такой способ. 1) ФНЧ, оставить полосу порядка 200-300 Гц. 2) децимация сигнала на частоту работы полосового фильтра. 3) Полосовой фильтр вокруг частоты 50 Гц. 4) ресемплинг на исходную частоту оцифровки 5) Вычитание из входного сигнала выделенной составляющей
Однако вот попробовал синтезировать какие-то фильтры в MATLAB, смущает, что на шагах 1-3 составляющая приобретает сдвиг по фазе, и становится непригодна для простого вычитания из исходного сигнала. Причем если для одной частоты еще можно как-то подравнять ФЧХ на 0 именно для частоты фильтрации, то для полосы 50-60 Гц фаза довольно сильно изменяется в полосе пропускания.
Пока задачка стоит подавить составляющую на 50 Гц где-нибудь на 35-45 дБ. На данный момент амплитуда помехи оценена в 10% динамического диапазона АЦП. При реализации фильтра на ПЛИС вполне можно успеть делать КИХ на 128-256 порядков на одном блоке памяти. Но вот все же хотелось бы давить не только одну частоту в 50 Гц, но диапазон от 50 до 60. Возможно ли это?
|
|
|
|
|
 |
Ответов
|
Jun 28 2013, 17:13
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Как-то у вас все сложно с вашими фильтрами. А нельзя проще, примерно так.
Берем счетчик, который циклично работает и задает нужную нам частоту, равную, например 50 Гц * 32 точки=1600 Гц. Для 80 МГц это будет 50000 - всего 16 разрядов. Берем сумматор, который суммирует все отсчеты сигнала в пределах периода счетчика. Если разрядность АЦП 10 - то разрядность сумматора будет порядка 36 (51200000) 26. В каждом периоде запихиваем старшие 10 бит сумматора в кольцевой буфер из 32 10-разрядных регистров или в 32 ячейки памяти.
В результате в буфере образуется 32-х точечный образ 50-герцовой помехи произвольной формы рассчитанный для предыдущих 32 точек. Его можно использовать для вычитания помехи в следующих 32 точках. Т.е.там будет не только синус помехи 50 Гц, но и ее гармоники, но с меньшей "точечностью", т.е. гармоника 100 Гц будет представлена 16 точками, зато дважды, и т.д. Небольшие отклонения частоты будут мешать, но немного. Можно не просто "вычислять" образ помехи, но и делать это с усреднением - новое значение в точке равно старому + разность нового и старого помноженная на некий коэффициент (или сдвинутая на несколько бит) (экспоненциальное усреднение). При сдвиге нам вообще не нужен перемножитель.
Далее вычитаем из сигнала в следующем периоде нашей тактовой частоты сигнал из регистра буфера, с адресом равным (текущему+1) - это сосчитанное в предыдущем "большом" периоде (32 точки) значение помехи 50 Гц для следующего такта.
При реализации на ПЛИС это гораздо проще, чем куча перемножителей или Фурье. Да и при реализации на процессоре, в общем, тоже. Особенно, если в основной задаче фурье не нужно.
P.S. пардон, по невнимательности наврал в разрядности сумматора - она будет 80 Мгц * 20 мсек / 32 точки *1024 = 51200000, т.е. всего 26 разрядов.
|
|
|
|
Сообщений в этой теме
Hoodwin Режекторный фильтр на 50 Гц для видеосигнала Jun 22 2013, 09:26 SSerge А теперь представьте себе что по телевизору показы... Jun 22 2013, 15:02 _pv Цитата(SSerge @ Jun 22 2013, 22:02) А теп... Jun 22 2013, 19:53 polyakovav С помехой лучше бороться там, где она возникает. П... Jun 22 2013, 15:38 Hoodwin Ну вообще в моем случае видеосигнал - это сигнал с... Jun 22 2013, 20:12 Methane Цитата(Hoodwin @ Jun 22 2013, 23:12) Ну в... Jun 22 2013, 21:53 Hoodwin Частота в зависимости от станции и ее режима может... Jun 23 2013, 07:17 Methane Цитата(Hoodwin @ Jun 23 2013, 10:17) Част... Jun 23 2013, 09:31 alex_os Цитата(Hoodwin @ Jun 22 2013, 13:26) Пока... Jun 23 2013, 08:18 polyakovav Похоже, нужен классический адаптивный компенсатор ... Jun 23 2013, 09:57 Hoodwin Methane
Насколько я понимаю, любой фильтр вносит ... Jun 23 2013, 11:49 polyakovav Цитата(Hoodwin @ Jun 23 2013, 15:49) Еще ... Jun 23 2013, 12:08  NikSave Цитата(polyakovav @ Jun 23 2013, 15:08) Е... Jun 23 2013, 12:49 Methane Цитата(Hoodwin @ Jun 23 2013, 14:49) Meth... Jun 23 2013, 13:26 Самурай Цитата(Hoodwin @ Jun 22 2013, 13:26) Пока... Jun 23 2013, 16:07 _pv Цитата(Hoodwin @ Jun 22 2013, 16:26) Пока... Jun 24 2013, 09:04 Hoodwin Так вот в том то и дело, что на какой частоте диск... Jun 24 2013, 09:25 alex_os Цитата(Hoodwin @ Jun 24 2013, 13:25) Так ... Jun 24 2013, 10:03 анатолий Можно использовать режекторный фильтр на основе вс... Jun 24 2013, 19:09 EvgenyNik Не всегда удобно вырезать из сигнала какую-то комп... Jun 25 2013, 04:18 Hoodwin А вот я еще спрошу.
Мне вот понравилась идея, выт... Jun 28 2013, 10:43 alex_os Цитата(Hoodwin @ Jun 28 2013, 14:43) А во... Jun 28 2013, 13:06 _pv ну или не фапч, а просто посчитать интегралы Фурье... Jun 28 2013, 13:56 Hoodwin alex_os
Так если делать ФАПЧ, то проблема с частот... Jun 28 2013, 14:02 alex_os Цитата(Hoodwin @ Jun 28 2013, 18:02) alex... Jun 28 2013, 14:36  _pv Цитата(alex_os @ Jun 28 2013, 20:36) Напр... Jun 28 2013, 15:18 EvgenyNik Цитата(Hoodwin @ Jun 22 2013, 13:26) Собс... Jul 1 2013, 10:27 Hoodwin alex_os
Что-то меня идея с дециматором и классичес... Jul 1 2013, 10:34 _pv значение фазы прямо вычисляется из интегралов Фурь... Jul 1 2013, 11:06 Hoodwin pv
Интегралы Фурье на конечном отрезке времени раб... Jul 1 2013, 11:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|