Целочисленное проектирование фильтров

Все что касается фильтрации
Vlad27
Сообщения: 92
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

Santik писал(а):Вот такой "красивый" целочисленный режекторный фильтр 50 Гц можно легко получить из "классической"формулы:

Fd=2048 Гц
Fr=50 Гц
Кто бы спорил - такую простую задачу, как режекция в заданной
точке, конечно можно и, видимо, проще решать прямо по формуле.
Но ведь ЦНП-метод не для "стреляния по воробьям" разработан.
Вот в своё время, в процессе "ходовых испытаний" ЦНП-синтеза
один известный и строгий оппонент наш по методикам
проектирования ЦФ (полно его статей в области ЦФ) предложил
нам в качестве испытания на вш.. на дееспособность решить
тестовую задачу синтеза сложноселективного рекурсивного
фильтра тракта УПЧИ телеприёмника.
АЧХ фильтра тракта УПЧИ имеет, как известно, весьма сложную
форму (на рис_11 вверху) с линейным правым спадом в области
несущей изображения и плоской площадкой по уровню 0,1 слева
под несущую звука.
ЦНП-синтез в реальном частотном диапазоне (Fд=75 МГц)
осуществлялся в стиле (по сценарию) динамического
программирования при фрагментации этой сложной АЧХ в восемь
частотных окон и занял около 40 мин на стандартном ПК.
Так как в нашем распоряжении нет высокочастотной ПЛИС, то
практическая реализация решения осуществлялась на стандартной
Spartan 3AN FPGA от Xilinx с разнормировкой под Fд=100 кГц и
ручным измерением АЧХ методом генератора – вольтметра.
Как видно из приведённых графиков измерений, требования по функциональным характеристикам рекурсивного фильтра тракта
УПЧИ были выполнены с хорошей точностью.
Очень хотелось бы увидеть решение данной задачи, данного теста нашего уважаемого коллеги альтернативными подходами, по вашим формулам, например, или в MATLABе.
Слабо :?: Вот тогда и поговорим, что студентам стоит изучать... ;)
Вложения
Рис. 11  ЦНП-синтез УПЧИ
Рис. 11 ЦНП-синтез УПЧИ
Последний раз редактировалось Vlad27 26 окт 2015, 12:48, всего редактировалось 4 раза.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Целочисленное проектирование фильтров

Сообщение Santik »

Ваши рассуждения мне напоминают: "А зачем учить таблицу умножения? У меня калькулятор есть!"
Вы забыли, что такое элементарный режекторный фильтр (преподнесли своё ЦНП-решение, как некое достижение :D ). Хорошо ещё, что оно к "классическому" скатилось.
Вы не знаете, что такое фильтр Гильберта...
Такое впечатление, что у Вас ярко выраженный "синдром студента, прочитавшего одну книгу". Конкретно- по ЦНП-синтезу. :D
Слава Богу, ЦНП-метод всех проблем не решает, и это надо себе чётко представлять.
Картинки АЧХ УПЧИ - хороши, чтобы поразить воображение впечатлительных студенток.
Мне вот не видно, например, обеспечивает ли разработанный УПЧИ линейность фазы в области цветовых поднесущих.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1116
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Целочисленное проектирование фильтров

Сообщение Бахурин Сергей »

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

Код: Выделить всё

   1
     0
     0
     1
    -1
     1
     0
    -1
     3
    -5
     6
    -6
     4
    -1
    -2
     3
    -2
    -1
     4
    -5
     2
     4
   -10
    15
   -17
    16
   -12
     6
     0
    -4
     5
    -2
    -3
     8
    -8
     0
    15
   -33
    46
   -49
    38
   -20
     0
    12
   -13
     4
     9
   -18
    16
     1
   -35
    82
  -131
   170
  -179
   145
   -63
   -54
   176
  -270
   305
  -270
   176
   -54
   -63
   145
  -179
   170
  -131
    82
   -35
     1
    16
   -18
     9
     4
   -13
    12
     0
   -20
    38
   -49
    46
   -33
    15
     0
    -8
     8
    -3
    -2
     5
    -4
     0
     6
   -12
    16
   -17
    15
   -10
     4
     2
    -5
     4
    -1
    -2
     3
    -2
    -1
     4
    -6
     6
    -5
     3
    -1
     0
     1
    -1
     1
     0
     0
     1
Этот фильтр имеет 120 коэффициентов, но это симметричный фильтр, значит всего 61 уникальный коэффициент против ваших 72. Фаза идеально линейная (вытекает из симметричности фильтр). Кроме того это ких а значит его реализуемость в FPGA гораздо проще чем вашего БИХ (не надо заботится о рекурсивной части фильтра). Кроме того динамический диапазон коэффициентов ниже чем ваш БИХ, т.е. разрядность умножителей ниже со всеми вытекающими последствиями.

А вот фильтр с 72 уникальными к-тами (как в вашем решении)

Код: Выделить всё

    -1
     1
     0
    -1
     1
    -1
     1
     0
     0
     1
    -2
     3
    -3
     1
     1
    -2
     2
     1
    -5
     7
    -5
     0
     6
    -8
     5
     1
    -7
    10
    -9
     4
     2
    -6
     6
    -1
    -8
    16
   -19
    14
     0
   -16
    26
   -21
     4
    18
   -30
    23
     1
   -28
    40
   -28
    -4
    40
   -59
    50
   -14
   -32
    69
   -80
    61
   -23
   -11
    12
    42
  -151
   282
  -375
   363
  -208
   -72
   399
  -662
   763
  -662
   399
   -72
  -208
   363
  -375
   282
  -151
    42
    12
   -11
   -23
    61
   -80
    69
   -32
   -14
    50
   -59
    40
    -4
   -28
    40
   -28
     1
    23
   -30
    18
     4
   -21
    26
   -16
     0
    14
   -19
    16
    -8
    -1
     6
    -6
     2
     4
    -9
    10
    -7
     1
     5
    -8
     6
     0
    -5
     7
    -5
     1
     2
    -2
     1
     1
    -3
     3
    -2
     1
     0
     0
     1
    -1
     1
    -1
     0
     1
    -1
Кстати умножения на 0, 2, 4, 8 и +- 1 можно вообще не считать, так что реально вычислительная эффективность все равно выше вашего фильтра. АЧХ его не хуже вашего фильтра.

Кроме того я построил АЧХ каскада из 12 звеньев согласно ваших коэффициентов и получил вот такую картину
Безымянный.png
Может конечно я что-то делаю не так. Не могли бы вы показать рассчитанную согласно ваших к-тов АЧХ результирующего фильтра .

Мой ких фильтр в этом плане смотрится лучше
Безымянный1.png

Vlad27
Сообщения: 92
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

Прекрасный результат по КИХ-фильтру УПЧИ. Надеюсь, что и в железе
он подтвердится - возбуждаться то здесь нечему.
Но всё же тестовая задача эта дана была именно по БИХ-фильтру,
на возможность применения метода билинейного преобразования в
данном случае при классическом расчёте. Можно ли в МАТЛАБе
реализовать БИХ-фильтр УПЧИ? Чтобы корректно было сравнивать.
А мы попробуем насчёт ЦЦФ КИХ-УПЧИ, хотя очевидно он получится
при примерно утроенном порядке (относительно нашего БИХ).
Относительно ошибке в нашей АЧХ - думаю это ошибка во вводе
коэффициентов, ведь на эксперименте вершинка АЧХ у нас нормальная,
и по ЦНП-синтезу также (см.рис). Высылаю также и наш протокол
решения данной задачи - там то все коэффициенты истинные.
Проверьте свои при вводе.
Вот и давайте посоревнуемся методологиями на тестовых примерах -
весьма большая польза будет.
Вложения
АЧХ УПЧИ по синтезу
АЧХ УПЧИ по синтезу
Ris_9b.gif (6.62 КБ) 3985 просмотров
TEMP.rar
Протокол решения и файл топологии
(8.71 КБ) 195 скачиваний
Последний раз редактировалось Vlad27 26 окт 2015, 12:51, всего редактировалось 1 раз.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1116
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Целочисленное проектирование фильтров

Сообщение Бахурин Сергей »

да была ошибка в коэффициентах. Сейчас ачх совпадает. Однако надо сказать что групповое запаздывание вашего фильтра далеко от идеального. КИХ в этом плане выглядит более привлекательного ввиду линейной фазы. По суммарным ресурсам думаю что КИХ фильтру нет нормальной альтернативы при реализации в FPGA. БИХ фильтр в FPGA реализуется только при понижении частоты поскольку необходимо рассчитать рекурсивную ветвь за такт, что нереально при высокой частоте. В вашем случае частота дискретизации 75 МГц, а какая частота FPGA?

Vlad27
Сообщения: 92
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

Бахурин Сергей писал(а):По суммарным ресурсам думаю что КИХ фильтру нет нормальной альтернативы при реализации в FPGA. БИХ фильтр в FPGA реализуется только при понижении частоты поскольку необходимо рассчитать рекурсивную ветвь за такт, что нереально при высокой частоте. В вашем случае частота дискретизации 75 МГц, а какая частота FPGA?
Лично я реализацией в FPGA не занимаюсь и на VHDL не программирую
(а только на С). Ваш вопрос поэтому я переадресовал нашему специалисту
по ПЛИС, который и реализовывал БИХ и КИХ ЦНП-фильтры в FPGA. Вопрос
этот очень своевременный - синтез ЦЦФ с учётом требуемых ресурсов ПЛИС
и на максимальное быстродействие очень актуален. Сейчас как раз его активно обсуждаем, анализируем все факторы, определяющие реализацию
высокоскоростных ЦЦФ на кристале с введением дополнительных критериев
по ресурсам ПЛИС в проектирование ЦФ методами ЦНП.
А сейчас, без оптимизации частота нашего FPGA не превышает 50 МГц.
Поэтому реализацию на ПЛИС мы стандартно сделали под Fд=100 кГц просто
чтобы проверить форму АЧХ и устойчивость работы БИХ-фильтра.
А реализовывать синтезированный УПЧИ в реальном диапазоне частот задачи
и не стояло - ведь это был просто тест на нахождение коэффициентов
рекурсивного ЦЦФ, максимально удовлетворяющих данную сложную форму
АЧХ при минимальном порядке и разрядности представления данных.
Но может быть такой цифровой УПЧИ и действительно кому-то нужен
на практике :?:
Последний раз редактировалось Vlad27 26 окт 2015, 12:55, всего редактировалось 1 раз.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Целочисленное проектирование фильтров

Сообщение Santik »

Но может быть такой цифровой УПЧИ и действительно кому-то нужен на практике :?:
Нет, не нужен. Поэтому и предлагалась более актуальная задача - фильтр Гильберта. Решение в виде КИХ хорошо известно.

Vlad27
Сообщения: 92
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

Вот когда нам придёт ТЗ (заказ) по Гильбертову фильтру, то оно и будет
выполнено наилучшим образом методами ЦНП. А пока для нас гораздо
более актуально выполнение частных ТЗ по ЦНП-синтезу, где, повторяю,
ПГ не просматриваются пока. Делу - время, потехе - час...
Последний раз редактировалось Vlad27 26 окт 2015, 12:56, всего редактировалось 3 раза.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: Целочисленное проектирование фильтров

Сообщение Santik »

Вот с таким отношением Ваша фирма была бы самой последней в списке разработчиков... Вы даже уровень проблемы не способны оценить, не говоря уже о конкретной разработке.

Delphist52
Сообщения: 2
Зарегистрирован: 13 окт 2015, 15:11

Re: Целочисленное проектирование фильтров

Сообщение Delphist52 »

Всем доброго дня!
Бахурин Сергей писал(а):да была ошибка в коэффициентах. Сейчас ачх совпадает. Однако надо сказать что групповое запаздывание вашего фильтра далеко от идеального. КИХ в этом плане выглядит более привлекательного ввиду линейной фазы. По суммарным ресурсам думаю что КИХ фильтру нет нормальной альтернативы при реализации в FPGA. БИХ фильтр в FPGA реализуется только при понижении частоты поскольку необходимо рассчитать рекурсивную ветвь за такт, что нереально при высокой частоте. В вашем случае частота дискретизации 75 МГц, а какая частота FPGA?
Тактовая частота ПЛИС зависит от вида применяемой ПЛИС. Например для Spartan-3AN фирмы Xilinx, она составляет ~50 МГц, а для ПЛИС семейства Cyclone IV уже ~75 МГц. Причем эти частоты получены без какой либо дополнительной настройки/оптимизации компоновщика и трассировщика. Стоит также отметить, что семейство ПЛИС Spartan-3AN фирмы Xilinx уже считается достаточно устаревшим, но для учебных целей его вполне хватает.
Бахурин Сергей писал(а):Этот фильтр имеет 120 коэффициентов, но это симметричный фильтр, значит всего 61 уникальный коэффициент против ваших 72. Фаза идеально линейная (вытекает из симметричности фильтр). Кроме того это ких а значит его реализуемость в FPGA гораздо проще чем вашего БИХ (не надо заботится о рекурсивной части фильтра). Кроме того динамический диапазон коэффициентов ниже чем ваш БИХ, т.е. разрядность умножителей ниже со всеми вытекающими последствиями.
Конечно рекурсивная часть заметно снижает производительность в ПЛИС, но тут надо сравнивать все факторы. Синтез цифрового фильтра методом-ЦНП может быть осуществлен и на меньшем динамическом диапазоне коэффициентов. Для ЦНП-метода это исходный параметр, а при классическом подходе это получаемый параметр. Например Ваш фильтр с 61 уникальным коэффициентом имеет разрядность - 10 (9 значимая часть + 1 на знак), а фильтр с 72 коэффициентами разрядность - 11. Методом ЦНП можно получить меньшую разрядность коэффициентов фильтра например 8. Конечно это получиться путем некоторого ухудшения характеристик фильтра, но в итоге с разрядностью входных данных 8 бит,при реализации(без оптимизаций) на ПЛИС семейства Cyclone IV фирмы Altera, где есть встроенные блоки умножителей 9 х 9, Ваш КИХ фильтр займет больше ресурсов, чем БИХ, поскольку на один его (КИХ фильтра) умножитель нужно будет использовать 2 встроенных блока ПЛИС, против одного для БИХ.
Я думаю это отдельная тема для обсуждения...

Ответить