|
Режекторный фильтр на 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 22 2013, 20:12
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Ну вообще в моем случае видеосигнал - это сигнал с приемника РЛС, и он зебру никогда не показывает, особенно бегающую крупным крупом. И проблема в том, что приходится сопрягаться с множеством разных РЛС, а помеха в 50 Гц есть не у всех, а лишь у некоторых. Пинать чужих конструкторов дело неблагодарное, весь предыдущий опыт показывает, что с чужой конторой (и даже несколькими сразу) где сядешь, там и слезешь.
В общем, пока что принято решение попробовать исправить этот недуг при помощи режекторного фильтра. Было бы хорошо спроектировать его так, чтобы иметь возможность давить некий диапазон частот вокруг частоты 50 Гц, желательно без изменения алгоритма, а только заменой коэффициентов. Насчет гармоник пока неясно, может они и есть, но сами по себе слабые и в глаза не бросаются.
Особенности сигнала таковы, что ему нельзя удалять DC, иначе потом трудно восстанавливать уровень сигнала для выделения целей. Кроме этого, после приведения DC к нулю еще производится временная автоматическая регулировка усиления (ВАРУ), и поэтому наличие такой вот помехи перед ВАРУ приводит к ее усложнению после ВАРУ. И еще проблема в том, что разные РЛС имеют видеосигналы разной полярности и мы обычно выделяем сигнал только одной полярности, заменяя значения от другой полярности на нули. Ну и вот если сигнал начинает из-за помехи "проваливаться" в другую полярность, то приходится либо ему ложный сдвиг выдумывать, чтобы вытащить целиком в свою полярность, либо он просто обнуляется и портит выделение целей. И то, и другое плохо, лучше всего убрать 50 Гц до того, как отсекать нужную полярность. Фактически сейчас и так есть коррекция ошибки смещения АЦП (конвейерного типа), но она статическая, и если к ней добавить медленную динамическую составляющую, то в общем почти ничего сильно менять даже не надо. Но вот нужно выделить эту составляющую из видеосигнала.
|
|
|
|
|
Jun 22 2013, 21:53
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Цитата(Hoodwin @ Jun 22 2013, 23:12)  Ну вообще в моем случае видеосигнал - это сигнал с приемника РЛС, и он зебру никогда не показывает, особенно бегающую крупным крупом. И проблема в том, что приходится сопрягаться с множеством разных РЛС, а помеха в 50 Гц есть не у всех, а лишь у некоторых. Пинать чужих конструкторов дело неблагодарное, весь предыдущий опыт показывает, что с чужой конторой (и даже несколькими сразу) где сядешь, там и слезешь. А какая у вас частота следования зондирующих сигналов? Откуда взялась проблема с 50гц?
|
|
|
|
|
Jun 23 2013, 08:18
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(Hoodwin @ Jun 22 2013, 13:26)  Пока задачка стоит подавить составляющую на 50 Гц где-нибудь на 35-45 дБ. На данный момент амплитуда помехи оценена в 10% динамического диапазона АЦП. При реализации фильтра на ПЛИС вполне можно успеть делать КИХ на 128-256 порядков на одном блоке памяти. Но вот все же хотелось бы давить не только одну частоту в 50 Гц, но диапазон от 50 до 60. Возможно ли это? Может имеет смысл попробовать реализовать фильтр в виде IIR 32х битной точности ?
--------------------
ну не художники мы...
|
|
|
|
|
Jun 23 2013, 09:57
|

Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 26-05-06
Из: Воронеж
Пользователь №: 17 486

|
Похоже, нужен классический адаптивный компенсатор помех. Читайте Уидроу
Widrow.rar ( 3.61 мегабайт )
Кол-во скачиваний: 140Но обеспечить 40 дБ в Ваших условиях будет непросто.
|
|
|
|
|
Jun 23 2013, 11:49
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Methane
Насколько я понимаю, любой фильтр вносит задержку в сигнал. Если сигнал состоит из одной частоты, то можно так подобрать параметры фильтра, что задержка станет равна одному периоду, и сдвиг по фазе обнулится, так что сигнал станет пригоден для прямого вычитания. Если же фильтр выделяет совокупность частот, то период повторения совокупности уходит в бесконечность и подобрать параметрами фильтра нулевую задержку уже невозможно. Остается довольствоваться задержкой, какая есть. Так вот, даже если этот сдвиг будет, скажем, всего 5 градусов для 50 Гц, то это эквивалентно задержке на 15-18 тысяч отсчетов на основной частоте дискретизации видео. Мне вот жалко в ПЛИС столько памяти тратить на тупую задержку сигнала. То есть, вырезать спектр от 0 до 700 Гц не проще, чем от 50 до 60. Проще всего давить ровно одну частоту - 50 Гц. И так по одной и давить все неугодные помехи.
polyakovav Спасибо, попробую полистать на буднях. Хотя мне для начала нужно оценить, какие подходы есть и какова трудоемкость каждого. В общем то сейчас уже есть фильтры, которыми эта помеха давится, но они работают уже после ВАРУ и после выбора полярности сигнала, а это уже поздновато.
Еще вот такой вопрос. Если мне нужно выделить всего одну частоту 50 Гц из сигнала, оцифрованного на 50-60 МГц, то мне явно нужно где-то 5 порядков частоты сбросить. Во сколько ступеней лучше делать децимацию такого рода? Насколько я понимаю, чем более резкие перепады в АЧХ, тем больше нужен порядок фильтра и больше разрядность коэффициентов. А в данном вопросе интересно сократить частоту дискретизации во много раз, угробив на это минимум ресурсов ПЛИС.
Сообщение отредактировал Hoodwin - Jun 23 2013, 11:49
|
|
|
|
|
Jun 23 2013, 12:08
|

Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 26-05-06
Из: Воронеж
Пользователь №: 17 486

|
Цитата(Hoodwin @ Jun 23 2013, 15:49)  Еще вот такой вопрос. Если мне нужно выделить всего одну частоту 50 Гц из сигнала, оцифрованного на 50-60 МГц, то мне явно нужно где-то 5 порядков частоты сбросить. Во сколько ступеней лучше делать децимацию такого рода? Насколько я понимаю, чем более резкие перепады в АЧХ, тем больше нужен порядок фильтра и больше разрядность коэффициентов. А в данном вопросе интересно сократить частоту дискретизации во много раз, угробив на это минимум ресурсов ПЛИС. Если помеха действительно гармоническая, то адаптивный компенсатор не является фильтром в прямом смысле, и понижение частоты не требуется. Можно формировать цифровым синтезатором в ПЛИС копию помехи с подстройкой по амплитуде и частоте (фазе), и вычитать из входной смеси сигнала с помехой. Адаптация амплитуды и частоты (фазы) - по минимуму выходной энергии. Методы адаптации описаны в книжке. В молодости применял для фильтрации сетевой помехи в кардиографии. При стабильных характеристиках помехи работает хорошо. Если помеха меняется во времени, важно правильно выбрать коэффициент адаптации (скорость сходимости).
|
|
|
|
|
Jun 23 2013, 12:49
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 26-05-09
Пользователь №: 49 592

|
Цитата(polyakovav @ Jun 23 2013, 15:08)  Если помеха действительно гармоническая, то адаптивный компенсатор не является фильтром в прямом смысле, и понижение частоты не требуется. Можно формировать цифровым синтезатором в ПЛИС копию помехи с подстройкой по амплитуде и частоте (фазе), и вычитать из входной смеси сигнала с помехой. Адаптация амплитуды и частоты (фазы) - по минимуму выходной энергии. Методы адаптации описаны в книжке. В молодости применял для фильтрации сетевой помехи в кардиографии. При стабильных характеристиках помехи работает хорошо. Если помеха меняется во времени, важно правильно выбрать коэффициент адаптации (скорость сходимости). Поддерживаю такую идею. Была как-то такая задача и решена была именно таким способом. Вполне успешно
|
|
|
|
|
Jun 23 2013, 13:26
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Цитата(Hoodwin @ Jun 23 2013, 14:49)  Methane
Насколько я понимаю, любой фильтр вносит задержку в сигнал. Если сигнал состоит из одной частоты, то можно так подобрать параметры фильтра, что задержка станет равна одному периоду, и сдвиг по фазе обнулится, так что сигнал станет пригоден для прямого вычитания. Если же фильтр выделяет совокупность частот, то период повторения совокупности уходит в бесконечность и подобрать параметрами фильтра нулевую задержку уже невозможно. Остается довольствоваться задержкой, какая есть. Так вот, даже если этот сдвиг будет, скажем, всего 5 градусов для 50 Гц, то это эквивалентно задержке на 15-18 тысяч отсчетов на основной частоте дискретизации видео. Мне вот жалко в ПЛИС столько памяти тратить на тупую задержку сигнала. То есть, вырезать спектр от 0 до 700 Гц не проще, чем от 50 до 60. Проще всего давить ровно одну частоту - 50 Гц. И так по одной и давить все неугодные помехи. Судя по ващим ответам, эквалайзер, невозможен в принципе. И зачем делать в ПЛИС? Просто из результатов по дальности вычтите задержку. Одна операция. Цитата(NikSave @ Jun 23 2013, 15:49)  Поддерживаю такую идею. Была как-то такая задача и решена была именно таким способом. Вполне успешно Аккустические шумодавы так работают насколько я знаю. Из шума вычленяют повторяющиеся гармоники, и генерируют динамиком так чтобы в заданной точке пространства, они сложились в противофазе.
|
|
|
|
|
Jun 23 2013, 16:07
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(Hoodwin @ Jun 22 2013, 13:26)  Пока что в голову приходит такой способ.
1) ФНЧ, оставить полосу порядка 200-300 Гц. 2) децимация сигнала на частоту работы полосового фильтра. 3) Полосовой фильтр вокруг частоты 50 Гц. 4) ресемплинг на исходную частоту оцифровки 5) Вычитание из входного сигнала выделенной составляющей Вполне жизненный способ, только пункты 1 и 3 реализуются в пункте 2, и называться этот пункт будет просто «децимация сигнала». Цитата(Hoodwin @ Jun 22 2013, 13:26)  ...Однако вот попробовал синтезировать какие-то фильтры в MATLAB, смущает, что на шагах 1-3 составляющая приобретает сдвиг по фазе, и становится непригодна для простого вычитания из исходного сигнала. Причем если для одной частоты еще можно как-то подравнять ФЧХ на 0 именно для частоты фильтрации, то для полосы 50-60 Гц фаза довольно сильно изменяется в полосе пропускания... Цитата(Hoodwin @ Jun 23 2013, 15:49)  ...Насколько я понимаю, любой фильтр вносит задержку в сигнал. Если сигнал состоит из одной частоты, то можно так подобрать параметры фильтра, что задержка станет равна одному периоду, и сдвиг по фазе обнулится, так что сигнал станет пригоден для прямого вычитания. Если же фильтр выделяет совокупность частот, то период повторения совокупности уходит в бесконечность и подобрать параметрами фильтра нулевую задержку уже невозможно. Остается довольствоваться задержкой, какая есть... Используйте КИХ фильтры с линейной фазой и счастье Вам гарантировано. Вообще, Ваши трудности не совсем понятны и во многом надуманны. Вот для демонстрации Вашего же метода прикрепил картинку с моделью для немного упрощенной задачи. С фильтрами не заморачивался, для простоты взял все фильтры одного порядка (порядок честно взял от фонаря). В реальности это все можно и нужно оптимизировать и минимизировать.
Цитата(Hoodwin @ Jun 23 2013, 15:49)  … то это эквивалентно задержке на 15-18 тысяч отсчетов на основной частоте дискретизации видео. Мне вот жалко в ПЛИС столько памяти тратить на тупую задержку сигнала. То есть, вырезать спектр от 0 до 700 Гц не проще, чем от 50 до 60. Проще всего давить ровно одну частоту - 50 Гц. И так по одной и давить все неугодные помехи. Задержка все равно будет нужна, как минимум на половину порядка эквивалентного фильтра. Но ее легко реализовать на блочной памяти. И таки да, вырезать спектр от 0 до 700 Гц проще, чем от 50 до 60. Цитата(Hoodwin @ Jun 23 2013, 15:49)  Еще вот такой вопрос. Если мне нужно выделить всего одну частоту 50 Гц из сигнала, оцифрованного на 50-60 МГц, то мне явно нужно где-то 5 порядков частоты сбросить. Во сколько ступеней лучше делать децимацию такого рода? Наименее затратно (по ресурсам) делать децимацию (и интерполяцию), используя максимально возможное количество ступеней. Но зачастую можно пойти на компромиссы.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|