|
|
  |
FIR 8000-20000 taps (коэффициентов), DSP или FPGA? |
|
|
|
Sep 3 2010, 17:53
|
Местный
  
Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859

|
Немного добавлю ко всему вышеизложенному.
1. КИХ-фильтр надо рассчитывать как оптимальный по Чебышеву. Он обладает наименьшим порядком.
2. Скорее всего, MatLab не подойдет для рассчета КИХ-фильтра такой длины. Результат не будет дотягивать до оптимального. Длинные фильтры лучше считать в специализированной программе. Раньше была FD (Filter Designer), сделанная в Питере в коллективе А.А. Ланне.
3. Считать фильтр, чтобы имп. характеристика получилась четной длины. Тогда она будет полностью симметричной и можно вычислять свертку по приведенной схеме. Тогда, например, за 10 тактов на одном умножителе можно вычислить свертку длиной 20 коэффициентов. При симметричной имп. характеристике достаточно хранить только половину коэффициентов - существенная экономия при таких порядках.
4. В Вашем случае Fs = 200 кГц, Ft = 200 МГц. Значит на каждый поступающий отсчет сигнала есть 1000 тактов для умножения. Если взять 8 умножителей и воспользоваться приведенной схемой, то можно реализовать фильтр длиной 16000 коэффициентов.
5. Реализовать в FPGA. Единственная проблема - хранение отсчетов сигнала, может быть понадобится внешняя память. Делал подобные фильтры, но не длиннее 8192 коэффициентов, на Stratix, Stratix II, Cyclone II.
|
|
|
|
|
Sep 3 2010, 18:10
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984

|
Цитата(soldat_shveyk @ Sep 3 2010, 21:53)  Немного добавлю ко всему вышеизложенному.
1. КИХ-фильтр надо рассчитывать как оптимальный по Чебышеву. Он обладает наименьшим порядком.
2. Скорее всего, MatLab не подойдет для рассчета КИХ-фильтра такой длины. Результат не будет дотягивать до оптимального. Длинные фильтры лучше считать в специализированной программе. Раньше была FD (Filter Designer), сделанная в Питере в коллективе А.А. Ланне.
3. Считать фильтр, чтобы имп. характеристика получилась четной длины. Тогда она будет полностью симметричной и можно вычислять свертку по приведенной схеме. Тогда, например, за 10 тактов на одном умножителе можно вычислить свертку длиной 20 коэффициентов. При симметричной имп. характеристике достаточно хранить только половину коэффициентов - существенная экономия при таких порядках.
4. В Вашем случае Fs = 200 кГц, Ft = 200 МГц. Значит на каждый поступающий отсчет сигнала есть 1000 тактов для умножения. Если взять 8 умножителей и воспользоваться приведенной схемой, то можно реализовать фильтр длиной 16000 коэффициентов.
5. Реализовать в FPGA. Единственная проблема - хранение отсчетов сигнала, может быть понадобится внешняя память. Делал подобные фильтры, но не длиннее 8192 коэффициентов, на Stratix, Stratix II, Cyclone II. Спасибо, очень дельный совет.. Если вы можете выкладывать примеры, исходного хдл кода , только приветсвуется. Сегодня просматривал характеристики процессора от Analog Sharc Audio Processor 1,2-1,6 GFLOPS Audio proceesor. Расчёт 1 taps FIR занимает 1,25 нс что уже позволяет посчитать не один фильтр для 96кГц и длительностью в 0.1с. Если я не ошибаюсь (9600 taps*10*1,25*10^(-9) c == 0.12 ms на один фильтр)
|
|
|
|
|
Sep 3 2010, 19:48
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984

|
Цитата(petrov @ Sep 3 2010, 23:16)  И зачем такие крутые срезы нужны? Динамики разделяются аналоговыми фильтрами, а неравномерности АЧХ и заодно акустика помещения компенсируется адаптивным фильтром, микрофон только хороший нужен. Потому что аналоговый фильтр даёт -10Дб на декаду и нелинейный разворот по фазе, вопрос декада это сколько Гц? А вот саб динамик например имеет рабочий диапазон - 20-200Гц. Вот и поставьте фильтр на 20 Гц и тогда к 200 вы получите 10 Дб, а на всём диапазоне подавления неравномерно смещённую фазу
|
|
|
|
|
Sep 3 2010, 19:55
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(0xFF @ Sep 3 2010, 21:52)  В итоге есть задача для этого топика - наиболее компактно и чесно решить задачу разделения 3х частотных диапазонов (низкие средние и высокие) и последующей коррекции АЧХ и ФЧХ каждого диапазона с учётом каждого динамика. Самая предельная задача - это реализация на FPGA или DSP N штук разных фильтров, самым критичным из которых выступает фильтр низких частот 20 -200 Гц с постоянной фазой (FIR) и с наиболее крутым спадом. Изначально считаем, что звуковой сигнал имеет 24 бит. Частота дискретизации 96 кГц. О! ну наконец-то какие-то конкретный цифирьки прорисовываются! Давайте в студию АЧХ самых крутых коммерческих фильтров данного применения. Готов спорить, что нету в них ни одного виртекса ни даже циклона или стратикса  . p.s. конечно ни кто не запрещает сделать фильтр хоть со склоном 500 дБ на октаву и 1000 дБ в полосе подавления, но остается главный вопрос - ЗАЧЕМ такой фильтр нужен !?
--------------------
ну не художники мы...
|
|
|
|
|
Sep 3 2010, 20:03
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(0xFF @ Sep 3 2010, 23:48)  Потому что аналоговый фильтр даёт -10Дб на декаду и нелинейный разворот по фазе, вопрос декада это сколько Гц? А вот саб динамик например имеет рабочий диапазон - 20-200Гц. Вот и поставьте фильтр на 20 Гц и тогда к 200 вы получите 10 Дб, а на всём диапазоне подавления неравномерно смещённую фазу Почитайте чего-нибудь про фильтры. Фильтр первого порядка дает 20 дБ на декаду. Фильтр Nго порядка, дает спад N*20 дБ на декаду. Эти децибелы асимптотические, т.е. в переходной полосе склон еще круче. upd: А вообще, petrov как всегда прав, тут проблема не сделать очень крутой фильтр а сделать такой фильтр который будет оптимально согласован с акустической системой.
--------------------
ну не художники мы...
|
|
|
|
|
Sep 3 2010, 20:16
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984

|
Цитата(petrov @ Sep 4 2010, 00:03)  Не вижу никаких проблем, во всех многополосных акустических системах динамики имеют сильно перекрывающиеся и слабо спадающие частотные диапазоны, главное сильной неравномерности не допустить при проектировании, адаптивный фильтр исправит и АЧХ и ФЧХ и никаких сумашедших порядков не потребуется, задачка как раз для тигрового шарика. Расскажите подробнее про адаптивный фильтр. Вы намекаете на корреукцию в реальном времени или Оффлайн? Цитата(alex_os @ Sep 4 2010, 00:03)  Почитайте чего-нибудь про фильтры. Фильтр первого порядка дает 20 дБ на декаду. Фильтр Nго порядка, дает спад N*20 дБ на декаду. Эти децибелы асимптотические, т.е. в переходной полосе склон еще круче.
upd: А вообще, petrov как всегда прав, тут проблема не сделать очень крутой фильтр а сделать такой фильтр который будет оптимально согласован с акустической системой. Тоесть вы предлагаете использовать IIR 3-4 порядка в цифре? Я надеюсь вы не предлагаете настроить аналоговый фильтр на операционных усилителях?
|
|
|
|
|
Sep 3 2010, 20:19
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(0xFF @ Sep 4 2010, 00:06)  Расскажите подробнее про адаптивный фильтр. Вы намекаете на корреукцию в реальном времени или Оффлайн? Один раз настроите, в реальном времени из-за посторонних шумов не реально будет такое делать. Теория в замечательной книге Уидроу Б.,Стринз С. Адаптивная обработка сигналов. http://lord-n.narod.ru/walla.html#uidrouAOC
|
|
|
|
|
Sep 3 2010, 20:22
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984

|
Цитата(petrov @ Sep 4 2010, 00:19)  Один раз настроите, в реальном времени из-за посторонних шумов не реально будет такое делать. Теория в замечательной книге Уидроу Б.,Стринз С. Адаптивная обработка сигналов. http://lord-n.narod.ru/walla.html#uidrouAOCСТР 13 из вашей книги "Адаптация в обработке сигналов — автоматическое изменение параметров фильтров в завимости от изменившихся условий." В вашем случае это называется синтез, или в простонародье настройка
|
|
|
|
|
Sep 3 2010, 20:26
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(0xFF @ Sep 4 2010, 00:16)  Расскажите подробнее про адаптивный фильтр. Вы намекаете на корреукцию в реальном времени или Оффлайн?
Тоесть вы предлагаете использовать IIR 3-4 порядка в цифре? Я надеюсь вы не предлагаете настроить аналоговый фильтр на операционных усилителях? Я ничего не предлагаю , я пытаюсь заронить зерно сомнения в необходимости 300 дБ на декаду  . А iir или fir это кому как нравится, мне тоже больше фиры нравятся хотя я знал человека который делал аналоговый фильтр на операционниках 12го порядка (это было во времена когда еще пытались сделать отечественный CD проигрыватель  ). Еще видел в успешном коммерческом изделии iir кажется 22го порядка (в цифровом виде, float precision).
--------------------
ну не художники мы...
|
|
|
|
|
Sep 3 2010, 20:51
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984

|
Цитата(alex_os @ Sep 4 2010, 00:26)  Я ничего не предлагаю , я пытаюсь заронить зерно сомнения в необходимости 300 дБ на декаду  . А iir или fir это кому как нравится, мне тоже больше фиры нравятся хотя я знал человека который делал аналоговый фильтр на операционниках 12го порядка (это было во времена когда еще пытались сделать отечественный CD проигрыватель  ). Еще видел в успешном коммерческом изделии iir кажется 22го порядка (в цифровом виде, float precision). За зерно спасибо. Могу сказать одно остановился на процессоре sharc от analog. на нём хочу решить задачу 6ти FIR максимальной длинны, пока вроде укладывается в 8000 taps. Думаю что экономически будет выгоднее Virtex, хотя  Цитата(petrov @ Sep 4 2010, 00:30)  Смените акустическую систему или машину или параметры уйдут, заново запустите процесс адаптации, в рабочем режиме будет не перестраиваемый FIR фильтр согласованный с вашей акустикой. Есть интересная штука от ALPINE называется PXI-H990, фильтры там толи Чебышева, толи батерворда, точно не скажу, но вроде как - 48 dB обеспечивают. Так вот там фильтры вроде как адаптивные и адаптируют АЧХ в реальном времени. А то что вы предлагаете называется настройкой, которую можно выполнить посредством того же CoolEdit(он кстати и коэфициенты фильтров генерит,даже во float)снимая АЧХ ФЧХ системы и затем откоректировать многополосным эквалайзером (в системах что так популярно рекламируют этих полос порой всего 5ть) ... поверьте так и будет с этими FIRами....или вы думали я собирался просто так байты гонять а фильтры настраивать методом генерации случайных чисел?
|
|
|
|
|
Sep 3 2010, 21:08
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984

|
Цитата(petrov @ Sep 4 2010, 00:58)  Методом адаптивной обработки сигналов вы можете получить в месте прослушивания плоскую АЧХ и линейную ФЧХ или вам что-то другое нужно? Да я не спорю что есть адаптивные фильтры, я говорю, что то что вы называете адаптацией = называется СИНТЕЗ БЕЗ УЧЁТА ВОЗМУЩАЮЩИХ ВОЗДЕЙСТВИЙ, а компенсацией возмущений занимаются регуляторы, наблюдатели и тп которые основываются на МОДЕЛЯХ системы. Так вот ваш способ приведенный выше, имеет своё название СИНТЕЗ системы С КОНКРЕТНЫМИ ЗАДАННЫМИ ПАРАМЕТРАМИ, которые вы идентифицируете посредством измерений с помощью микрофона. Да и наконец самое важное наличие обратной связи,время адаптации - важные параметры?. Может вы мне пытаетесь про Калман Наблюдатель/Фильтр рассказать в применении для фильтрации зашумлённого сигнала? Так я пока такой вопрос не задавал. Про линейность вы очень правильно заметили, иммено из-за этого и фильтры такие. Качество динамиков, места их расположение и др параметры не относящиеся к мат вычислениям прошу не приводить. Я не об этом тут тему поднял.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|