реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Как правильно реализовать КИХ-эквалайзер?
elk
сообщение Jan 8 2011, 14:26
Сообщение #16





Группа: Участник
Сообщений: 12
Регистрация: 4-01-11
Пользователь №: 62 005



Цитата(Alexey Lukin @ Jan 7 2011, 20:24) *
Я просто не очень понимаю, в чём тут затруднение. Раз имеется ИХ, разбитая на блоки, то (1) составим блоки ИХ вместе, (2) отфильтруем эквалайзером, (3) снова разобьём на блоки — и вперёд, сворачивать со входным сигналом по Гарднеру. Если ядро длинное, то шаг (2) можно делать через FFT, в т.ч. с использованием уже имеющихся FFT блоков исходной ИХ.

Кстати, обратите внимание, что метод Гарднера запатентован.


Ну вот этот этап меня интересует:
(2) отфильтруем эквалайзером
Просто умножать на АЧХ эквалайзера нельзя, прокомментировать правильность алгоритма получения ИХ никто не хочет sad.gif
Еще раз: берем АЧХ, с помощью преобразования Гильберта получаем ФЧХ, из АЧХ и ФЧХ получаем комплексный спектр, из него через IFFT получаем ИХ, обнуляем у нее половину отсчетов, умножаем на окно, считаем FFT - вот ЭТО теперь используем для FFT-свертки с ядром.
Это правильно или нет? Хочу просто ответ на этот вопрос, хотя бы да или нет sm.gif
Мне еще встречался вариант без Гильберта, когда АЧХ запихивается в действительную часть, а мнимая ставится 0 (т.е. ФЧХ принимается нулевой)... Так правильно? Вроде при этом реальная АЧХ чуть сильнее искажается...
Кстати, если минимальный размер блока очень маленький (например, 64), использовать имеющиеся блоки будет не совсем хорошо, т.к. придется ограничить длину ИХ эквалайзера 64 отсчетами, т.е. сильно исказить его АЧХ... Это рассуждение правильно?

А насчет метода Гарднера, то вроде как Farina вполне убедительно доказывает, что в Lake DSP Patent (Garcia) запатентован не сам метод свертки, а только оптимальный метод разбивки на блоки с помощью алгоритма Витерби...
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 8 2011, 14:49
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(elk @ Jan 8 2011, 20:26) *
Просто умножать на АЧХ эквалайзера нельзя


Можно сделать банк фильтров(FFT + полифазный фильтр) и изменять коэффициенты передачи фильтров без ограничений, то бишь "умножать на АЧХ".
Go to the top of the page
 
+Quote Post
elk
сообщение Jan 8 2011, 16:59
Сообщение #18





Группа: Участник
Сообщений: 12
Регистрация: 4-01-11
Пользователь №: 62 005



petrov, а можно что-то типа ссылки на первоисточники?
А то у меня полифазные фильтры как-то узко ассоциировались с ресамплингом...
Я правильно понимаю, что с помощью полифазного фильтра можно именно короткую ИХ эквалайзера более эффективно прицепить, за счет того что для более длинных блоков не надо добавялть лишнюю кучу нулей?
Мне бы более предпочтительно было наоборот подлиннее, типа там 16тыщ отсчетов хотя бы (где-то кто-то писал, но не помню где и кто sm.gif, что для качественного эквалайзера местами требуется ИХ длиной около 300мс)

Кстати, ни у кого не завалялась статейка S. Lin and S. K. Mitra, “Overlapped block digital filtering”?
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jan 8 2011, 17:19
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(elk @ Jan 8 2011, 22:59) *
... а можно что-то типа ссылки на первоисточники?

Vaidyanathan P.P.: tutorial.
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Jan 9 2011, 02:10
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



Цитата(elk @ Jan 8 2011, 20:26) *
Ну вот этот этап меня интересует:
(2) отфильтруем эквалайзером

Этот этап реализуется в виде свёртки импульса из шага (1) с ИХ эквалайзера. Причём тут преобразование Гильберта — не понял...

Цитата(elk @ Jan 8 2011, 20:26) *
А насчет метода Гарднера, то вроде как Farina вполне убедительно доказывает, что в Lake DSP Patent (Garcia) запатентован не сам метод свертки, а только оптимальный метод разбивки на блоки с помощью алгоритма Витерби...

Если мне не изменяет память, в патенте Lake алгоритм Витерби вообще не упоминается, а патентуется именно неравномерное разбиение. А Витерби-разбиение запатентовано в другом патенте, от Microsoft.

Цитата(petrov @ Jan 8 2011, 20:49) *
Можно сделать банк фильтров(FFT + полифазный фильтр) и изменять коэффициенты передачи фильтров без ограничений, то бишь "умножать на АЧХ".

И каким же образом это поможет решить поставленную задачу? (объединение уже имеющейся секционной свёртки с новым эквалайзером)
Вот и я не знаю.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 9 2011, 06:09
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Alexey Lukin @ Jan 9 2011, 08:10) *
И каким же образом это поможет решить поставленную задачу? (объединение уже имеющейся секционной свёртки с новым эквалайзером)
Вот и я не знаю.


Как обычно автор топика скрывает задачу, качественный КИХ эквалайзер можно сделать в частотной области с помощью банка фильтров, пусть сам решает нужно это ему или нет.
Go to the top of the page
 
+Quote Post
phantom
сообщение Jan 9 2011, 13:25
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 13-05-05
Пользователь №: 4 986



Цитата(Alexey Lukin @ Jan 9 2011, 09:10) *
Этот этап реализуется в виде свёртки импульса из шага (1) с ИХ эквалайзера. Причём тут преобразование Гильберта — не понял...

По-моему у elk-a просто затруднения с тем, как получить ИХ по АЧХ эквалайзера, и надо ли при этом учитывать его ФЧХ. Если нет ФЧХ, ее иногда можно получить с помощью преобразования Гильберта. sm.gif Вот тут http://www.dspguide.com/ch17/1.htm есть вариант, но без учета ФЧХ.


--------------------
О сколько нам открытий чудных ...
Go to the top of the page
 
+Quote Post
ivan219
сообщение Jan 9 2011, 14:04
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 16-11-08
Пользователь №: 41 680



Сделать ИХ по АЧХ очень просто. Берём все Im = 0 а из Re троим АЧХ после чего делаем обратное FFT получаем временной сигнал сдвигаем его на N/2 отсчётов в право после чего обнуляем 0 отсчёт и накладываем окно. В итоге получается ИХ длинной N-1 отсчёт. Можно также и обрезать ИХ до нужного размера.

В приложении программа и исходники на Delphi может пригодится без учёта ФЧХ.

Сообщение отредактировал ivan219 - Jan 9 2011, 14:06
Прикрепленные файлы
Прикрепленный файл  ______________________________________.rar ( 169.55 килобайт ) Кол-во скачиваний: 66
 
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Jan 9 2011, 23:19
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



Тогда свёртка тут непричём, а задача называется "расчёт фильтра" (filter design). Простейший метод — это действительно метод взвешивания, описанный ivan219.

Кстати, для звукового эквалайзера во многих случаях выгодно использовать биквадратные IIR-фильтры, а не линейнофазовый FIR, получающийся методом взвешивания. Вычислительные затраты обычно получаются значительно меньше.
Go to the top of the page
 
+Quote Post
phantom
сообщение Jan 10 2011, 04:27
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 13-05-05
Пользователь №: 4 986



Цитата(Alexey Lukin @ Jan 10 2011, 06:19) *
Тогда свёртка тут непричём, а задача называется "расчёт фильтра" (filter design). Простейший метод — это действительно метод взвешивания, описанный ivan219.

Кстати, для звукового эквалайзера во многих случаях выгодно использовать биквадратные IIR-фильтры, а не линейнофазовый FIR, получающийся методом взвешивания. Вычислительные затраты обычно получаются значительно меньше.

Если это комбинация устройств "конволюционный процессор + эквалайзер" работающий в реальном времени, то IIR фильтры будут вносить дополнительную нагрузку на CPU хотя их параметры и можно изменять во времени, а FIR- фильтр получится автоматически после предварительного преобразования исходной ИХ - все равно свертку надо делать, поскольку это основная задача. Да, кстати, где можно почитать про другие методы, кроме метода взвешивания?(поскольку мне тоже интересна данная тема)


--------------------
О сколько нам открытий чудных ...
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Jan 10 2011, 12:17
Сообщение #26


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



Цитата(phantom @ Jan 10 2011, 10:27) *
Если это комбинация устройств "конволюционный процессор + эквалайзер" работающий в реальном времени, то IIR фильтры будут вносить дополнительную нагрузку на CPU хотя их параметры и можно изменять во времени, а FIR- фильтр получится автоматически после предварительного преобразования исходной ИХ - все равно свертку надо делать, поскольку это основная задача.

Тут всё зависит от соотношения длин имеющейся свёртки и нового эквалайзера, т.к. добавление эквалайзера удлиняет исходное ядро свёртки. Для руления низких частот приходится использовать FIR-фильтры длиной несколько тысяч или даже десятков тысяч отсчётов. А если делать IIR, то зачастую хватает нескольких умножений на входной отсчёт.

Цитата(phantom @ Jan 10 2011, 10:27) *
Да, кстати, где можно почитать про другие методы, кроме метода взвешивания?(поскольку мне тоже интересна данная тема)

Я изучал это по Рабинеру/Голду, но там ниже есть даже отдельная книжка: "Digital Filter Design".
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Feb 5 2011, 01:06
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811



Цитата(Serg76 @ Jan 5 2011, 18:50) *
2 Alexey Lukin Вы не верите, что сигнал можно обрабатывать в частотной области sm.gif

А что тут верить, в любой книжке по ЦОС написано, что операция свертки сигналов во временной области
эквивалентна операции умножения их Фурье образов. Только во временном домене сигнал сворачивается с
импульсной характеристикой системы, а в частотном домене спектр сигнал перемножается с комплексной ЧХ.
Теорема так и называется - теорема о свертке.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Feb 5 2011, 11:35
Сообщение #28


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Mad_max @ Feb 5 2011, 05:06) *
А что тут верить, в любой книжке по ЦОС написано, что операция свертки сигналов во временной области
эквивалентна операции умножения их Фурье образов. Только во временном домене сигнал сворачивается с
импульсной характеристикой системы, а в частотном домене спектр сигнал перемножается с комплексной ЧХ.
Теорема так и называется - теорема о свертке.

Ну и зачем Вы мне это поясняете, я это и так прекрасно знаю sm.gif Или Вам просто скучно? sm.gif

Сообщение отредактировал Serg76 - Feb 5 2011, 11:36
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Feb 5 2011, 12:59
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811



Цитата(Serg76 @ Feb 5 2011, 14:35) *
Ну и зачем Вы мне это поясняете, я это и так прекрасно знаю sm.gif Или Вам просто скучно? sm.gif

да я и не Вам это :-) а тому кто не верит в перемножение спектров sm.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Feb 5 2011, 14:10
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Mad_max @ Feb 5 2011, 15:59) *
да я и не Вам это :-) а тому кто не верит в перемножение спектров sm.gif


Проблема как раз в том что часто верят вульгарно, типа взял FFT от блока, занулил ненужные частоты, обратное FFT и вот готов хороший перестраиваемый фильтр.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 17:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01897 секунд с 7
ELECTRONIX ©2004-2016