|
вопросик по КИХ-фильтрам |
|
|
|
Nov 30 2006, 02:05
|
Группа: Новичок
Сообщений: 14
Регистрация: 30-11-06
Пользователь №: 22 929

|
Здраствуйте!Вот недавно наткнулся на ваш форум. Я студент и с третего курса занялся изучением ЦОС(в большей мере акустических). Еще тогда меня заинтерисовала идея коррекции ЧХ КИХ-фильтра расчитанного методом ОПФ,путем введения паралельного КИХ-фильтра,таки образом, что в точках экстремумов результрующего фильтра выполнялось условие равности идеальной ЧХ в виде прямоугольника.Так вот, сейчас этот алгоритм я практически доделал и хочу поделиться с вами некоторыми результатами. Например нам необходимо синтезировать ЧХ НЧ КИХ-фильтра со следующими параметрами: уровень пульсаций в зоне пропускания -<=0.001(0.0087дБ) уровень пульсаций в зонге задержки- <=0.001(-60дБ) ширина переходной полосы - 100Гц; конец полосы пропускания - 2000 Гц; начало полосы задержки соответсвенно -2100; частота дискретизации - 44100Гц; Исходя из заданных критериев, по моему алгоритму, порядок фильтра получился равным 880. Напрягаем матлабину, а точнее fdatool, а еще точнее ремеза..и получаем при этих же условиях порядок 1436... конечно же ремез строит нам оптимальную ЧХ с равноволновыми пульсациями,а по предложенному алгоритму нет..но все же порядок меньше практически в 2 раза!!! Сравним с неоптимальным алгоритмом Кайзера..Залазим туда же  в матлабину...и получаем порядок 1599!! Так вот, возникает вопросик маленький- если алгоритм ремеза позволяет синтезировать ЧХ с минимальным порядком для заданных условий, почему же сдесь мы видим разницу практически в 2 раза?  ...Если спихивать все на то что синтезируеться оптимальная ЧХ, то вот по сравнению с Кайзером(у которого ЧХ не оптимальна) тоже идет существенный выигрыш в порядке,что определяет и уменьшение трбований к вычислительным затратам... Недостатком алгоритма есть то что можно синтезировать ЧХ лиш с практически одинаковым уровнем пульсаций в зонах фильтра которые <=0.001. Но выигрыш в порядке на лицо! Меня интересует мнение специалистов по DSP процессорам...Ведь например этот алгоритм можно использовать для синтеза ЧХ при дискретизации аналоговых сигналов, а так же для цифровых эквалайзеров и т.д.
|
|
|
|
|
Dec 5 2006, 13:58
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(vaduts @ Nov 29 2006, 23:05)  Здраствуйте!Вот недавно наткнулся на ваш форум. Я студент и с третего курса занялся изучением ЦОС(в большей мере акустических). Еще тогда меня заинтерисовала идея коррекции ЧХ КИХ-фильтра расчитанного методом ОПФ,путем введения паралельного КИХ-фильтра,таки образом, что в точках экстремумов результрующего фильтра выполнялось условие равности идеальной ЧХ в виде прямоугольника.Так вот, сейчас этот алгоритм я практически доделал и хочу поделиться с вами некоторыми результатами. Например нам необходимо синтезировать ЧХ НЧ КИХ-фильтра со следующими параметрами: уровень пульсаций в зоне пропускания -<=0.001(0.0087дБ) уровень пульсаций в зонге задержки- <=0.001(-60дБ) ширина переходной полосы - 100Гц; конец полосы пропускания - 2000 Гц; начало полосы задержки соответсвенно -2100; частота дискретизации - 44100Гц; Исходя из заданных критериев, по моему алгоритму, порядок фильтра получился равным 880. Напрягаем матлабину, а точнее fdatool, а еще точнее ремеза..и получаем при этих же условиях порядок 1436... конечно же ремез строит нам оптимальную ЧХ с равноволновыми пульсациями,а по предложенному алгоритму нет..но все же порядок меньше практически в 2 раза!!! Сравним с неоптимальным алгоритмом Кайзера..Залазим туда же  в матлабину...и получаем порядок 1599!! Так вот, возникает вопросик маленький- если алгоритм ремеза позволяет синтезировать ЧХ с минимальным порядком для заданных условий, почему же сдесь мы видим разницу практически в 2 раза?  ...Если спихивать все на то что синтезируеться оптимальная ЧХ, то вот по сравнению с Кайзером(у которого ЧХ не оптимальна) тоже идет существенный выигрыш в порядке,что определяет и уменьшение требований к вычислительным затратам... Недостатком алгоритма есть то что можно синтезировать ЧХ лишь с практически одинаковым уровнем пульсаций в зонах фильтра которые <=0.001. Но выигрыш в порядке на лицо! Меня интересует мнение специалистов по DSP процессорам...Ведь например этот алгоритм можно использовать для синтеза ЧХ при дискретизации аналоговых сигналов, а так же для цифровых эквалайзеров и т.д. Вы не контролируете фазочастотную характеристику, скорее всего, она у вас чудовищно нелинейная(:-).
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Dec 5 2006, 19:06
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(mdmitry @ Dec 5 2006, 13:09)  АЧХ и ФЧХ между собой связаны, стоит посмотреть литературу по синтезу фильтров аналоговых. Эта проблема там часто обсуждается. Ставят два фильтра: один для формирования АЧХ, а второй для коррекции получившейся ФЧХ. Конечно связаны, кто спорит. Вопрос в другом. Вот вы хотите принять КАМ-16, информация о передаваемом символе заключена в принятой амплитуде и фазе. Сначала надо отфильтровать, пропускаете через фильтр автора топика и получаете порушенные фазовые соотношения, что делать? Ставить еще один фильтр для коррекции фазы? Тогда где выгода? Да еще вместе с водой можно и ребеночка выплеснуть(:-). Цитата(mdmitry @ Dec 5 2006, 13:09)  У цифрового фильтра коэффициент передачи - функция периодическая! А период Fs?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Dec 5 2006, 22:11
|
Группа: Новичок
Сообщений: 14
Регистрация: 30-11-06
Пользователь №: 22 929

|
Цитата(=GM= @ Dec 5 2006, 14:58)  Цитата(vaduts @ Nov 29 2006, 23:05)  Здраствуйте!Вот недавно наткнулся на ваш форум. Я студент и с третего курса занялся изучением ЦОС(в большей мере акустических). Еще тогда меня заинтерисовала идея коррекции ЧХ КИХ-фильтра расчитанного методом ОПФ,путем введения паралельного КИХ-фильтра,таки образом, что в точках экстремумов результрующего фильтра выполнялось условие равности идеальной ЧХ в виде прямоугольника.Так вот, сейчас этот алгоритм я практически доделал и хочу поделиться с вами некоторыми результатами. Например нам необходимо синтезировать ЧХ НЧ КИХ-фильтра со следующими параметрами: уровень пульсаций в зоне пропускания -<=0.001(0.0087дБ) уровень пульсаций в зонге задержки- <=0.001(-60дБ) ширина переходной полосы - 100Гц; конец полосы пропускания - 2000 Гц; начало полосы задержки соответсвенно -2100; частота дискретизации - 44100Гц; Исходя из заданных критериев, по моему алгоритму, порядок фильтра получился равным 880. Напрягаем матлабину, а точнее fdatool, а еще точнее ремеза..и получаем при этих же условиях порядок 1436... конечно же ремез строит нам оптимальную ЧХ с равноволновыми пульсациями,а по предложенному алгоритму нет..но все же порядок меньше практически в 2 раза!!! Сравним с неоптимальным алгоритмом Кайзера..Залазим туда же  в матлабину...и получаем порядок 1599!! Так вот, возникает вопросик маленький- если алгоритм ремеза позволяет синтезировать ЧХ с минимальным порядком для заданных условий, почему же сдесь мы видим разницу практически в 2 раза?  ...Если спихивать все на то что синтезируеться оптимальная ЧХ, то вот по сравнению с Кайзером(у которого ЧХ не оптимальна) тоже идет существенный выигрыш в порядке,что определяет и уменьшение требований к вычислительным затратам... Недостатком алгоритма есть то что можно синтезировать ЧХ лишь с практически одинаковым уровнем пульсаций в зонах фильтра которые <=0.001. Но выигрыш в порядке на лицо! Меня интересует мнение специалистов по DSP процессорам...Ведь например этот алгоритм можно использовать для синтеза ЧХ при дискретизации аналоговых сигналов, а так же для цифровых эквалайзеров и т.д. Вы не контролируете фазочастотную характеристику, скорее всего, она у вас чудовищно нелинейная(:-). Самое интересное что ФЧХ остаеться линейной т.к. праобразом(т.е. фильтром над которым проводиться коррекция уровня пульсаций ) являеться обыкновенный КИХ-фильтр.
|
|
|
|
|
Dec 5 2006, 22:35
|
Группа: Новичок
Сообщений: 14
Регистрация: 30-11-06
Пользователь №: 22 929

|
[quote name='=GM=' date='Dec 5 2006, 20:06' post='183895'] [quote name='mdmitry' post='183808' date='Dec 5 2006, 13:09'] АЧХ и ФЧХ между собой связаны, стоит посмотреть литературу по синтезу фильтров аналоговых. Эта проблема там часто обсуждается. Ставят два фильтра: один для формирования АЧХ, а второй для коррекции получившейся ФЧХ. [/quote] Конечно связаны, кто спорит. Вопрос в другом. Вот вы хотите принять КАМ-16, информация о передаваемом символе заключена в принятой амплитуде и фазе. Сначала надо отфильтровать, пропускаете через фильтр автора топика и получаете порушенные фазовые соотношения, что делать? Ставить еще один фильтр для коррекции фазы? Тогда где выгода? Да еще вместе с водой можно и ребеночка выплеснуть(:-). [quote name='mdmitry' post='183808' date='Dec 5 2006, 13:09'] Так вот,если у нас ФЧХ линейная, то в фильтре коррекции фазы нет необходимости. Проблема применения аналоговых фильтров какраз в нелинейности ФЧХ. Наскольоко мне известно, для того чтоб оцифровать звуковой сигнал необходимо применить ФНЧ, а потом дискретизовать с частотой как минимум в 2 раза больше полосы пропускания фильтра(для того чтоб не получилось наложения спектров).Меня интересуют какие требования к фильтрам на практике? И какие именно (КИХ или БИХ) фильтры чаще применяются для решения этих задач?.По уровню ослабления в зоне задержки фильтра для обработки голоса, достаточным являются -60Дб. Однако пока мне не известно какие реальные параметры переходной полосы фильтра в существующих добротных системах.Например интересно как в слуховых аппаратах с этим обстоит дело. Ведь у них тоже идет преобразование в цифру, причем с частотй дискретизации не более 11-16 тисячь Гц.
|
|
|
|
|
Dec 6 2006, 12:41
|
Группа: Новичок
Сообщений: 14
Регистрация: 30-11-06
Пользователь №: 22 929

|
[/quote] Самое интересное что ФЧХ остаеться линейной т.к. праобразом(т.е. фильтром над которым проводиться коррекция уровня пульсаций ) являеться обыкновенный КИХ-фильтр. [/quote] вид ФЧХ следующий
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 8 2006, 00:16
|
Группа: Новичок
Сообщений: 14
Регистрация: 30-11-06
Пользователь №: 22 929

|
[/quote] Любой КИХ фильтр можно зделать таким, чтобы он не разрушал фазу, т.е. изменял только лишь АЧХ, а ФЧХ не тролал, т.е. вносил только лишь фазовую задержку! В этом и состоит их вся прелесть. Необходимое и достаточное условие линейности ФЧХ есть симметричность головы и хвоста. Форма сигнала (реакции на дельта импульс) определяет АЧХ, а осевая симметричность сигнала (осносительно его пика) есть условие линейности ФЧХ. [/quote] Совершенно согласен....Мне просто интересно какие основные параметры АЧХ реально применяющихся КИХ-фильтров для выполнения децимации(т.е. передискретизации) .Т.е. какова ширина переходной полосы?какой порядок?Какой уровень пульсаций в зонах фильтра? В литературе (котоая мне попадала в руки)это описываеться без подробностей Хотя если подскажите литературу в которой будут описываться реальные примеры применения КИХ-фильтров(а то везде пишут в общем и без конкретных цифр), то буду очень благодарен  ...
|
|
|
|
|
Dec 13 2006, 21:19
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(vaduts @ Nov 30 2006, 02:05)  Здраствуйте!Вот недавно наткнулся на ваш форум. Я студент и с третего курса занялся изучением ЦОС(в большей мере акустических). Еще тогда меня заинтерисовала идея коррекции ЧХ КИХ-фильтра расчитанного методом ОПФ,путем введения паралельного КИХ-фильтра,таки образом, что в точках экстремумов результрующего фильтра выполнялось условие равности идеальной ЧХ в виде прямоугольника.Так вот, сейчас этот алгоритм я практически доделал и хочу поделиться с вами некоторыми результатами. Например нам необходимо синтезировать ЧХ НЧ КИХ-фильтра со следующими параметрами: уровень пульсаций в зоне пропускания -<=0.001(0.0087дБ) уровень пульсаций в зонге задержки- <=0.001(-60дБ) ширина переходной полосы - 100Гц; конец полосы пропускания - 2000 Гц; начало полосы задержки соответсвенно -2100; частота дискретизации - 44100Гц; Исходя из заданных критериев, по моему алгоритму, порядок фильтра получился равным 880. Напрягаем матлабину, а точнее fdatool, а еще точнее ремеза..и получаем при этих же условиях порядок 1436... конечно же ремез строит нам оптимальную ЧХ с равноволновыми пульсациями,а по предложенному алгоритму нет..но все же порядок меньше практически в 2 раза!!! Сравним с неоптимальным алгоритмом Кайзера..Залазим туда же  в матлабину...и получаем порядок 1599!! Так вот, возникает вопросик маленький- если алгоритм ремеза позволяет синтезировать ЧХ с минимальным порядком для заданных условий, почему же сдесь мы видим разницу практически в 2 раза?  ...Если спихивать все на то что синтезируеться оптимальная ЧХ, то вот по сравнению с Кайзером(у которого ЧХ не оптимальна) тоже идет существенный выигрыш в порядке,что определяет и уменьшение трбований к вычислительным затратам... Недостатком алгоритма есть то что можно синтезировать ЧХ лиш с практически одинаковым уровнем пульсаций в зонах фильтра которые <=0.001. Но выигрыш в порядке на лицо! Меня интересует мнение специалистов по DSP процессорам...Ведь например этот алгоритм можно использовать для синтеза ЧХ при дискретизации аналоговых сигналов, а так же для цифровых эквалайзеров и т.д. Очень интересно! Значить у Вас получилось оптимальнее оптимального!? Наверное где то Вы ошиблись..Если не жалко опубликуйте полученные коэффициенты.
--------------------
ну не художники мы...
|
|
|
|
|
Dec 13 2006, 21:35
|

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

|
Цитата(vaduts @ Nov 30 2006, 02:05)  Здраствуйте!Вот недавно наткнулся на ваш форум. Я студент и с третего курса занялся изучением ЦОС(в большей мере акустических). Еще тогда меня заинтерисовала идея коррекции ЧХ КИХ-фильтра расчитанного методом ОПФ,путем введения паралельного КИХ-фильтра,таки образом, что в точках экстремумов результрующего фильтра выполнялось условие равности идеальной ЧХ в виде прямоугольника. А ссылочку на метод не дадите, а то не очень понятно. Цитата(vaduts @ Nov 30 2006, 02:05)  ...Исходя из заданных критериев, по моему алгоритму, порядок фильтра получился равным 880. Простите, но, возможно, эту цифру нужно умножить на 2? Фильтра-то, как я понял, два...
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Dec 15 2006, 11:55
|
Группа: Новичок
Сообщений: 14
Регистрация: 30-11-06
Пользователь №: 22 929

|
Цитата(Stanislav @ Dec 13 2006, 22:35)  Цитата(vaduts @ Nov 30 2006, 02:05)  ...Исходя из заданных критериев, по моему алгоритму, порядок фильтра получился равным 880. Простите, но, возможно, эту цифру нужно умножить на 2? Фильтра-то, как я понял, два... я понял где я ошибся  .... В матлабе под порядком имеют в виду длину коэффициентов ИПХ как в положительном так и в отрицательном направлении(2*N+1)...Я же понимал что порядок это длина коэффициентов в одном направлении (т.е. N)...Прошу прощения за беспокойство Так вот все равно остаеться вопросик у меня...Какие реальные фильтры(требования к параметрам) применяются в системах где производиться децимация, интерполяция или например в эквалайзерах?
|
|
|
|
|
Dec 17 2006, 21:50
|
Группа: Новичок
Сообщений: 14
Регистрация: 30-11-06
Пользователь №: 22 929

|
Цитата(alex_os @ Dec 13 2006, 22:19)  Очень интересно! Значить у Вас получилось оптимальнее оптимального!? Наверное где то Вы ошиблись..Если не жалко опубликуйте полученные коэффициенты. Свою ошибку я понял, но если считать что порядок фильтра - это двойная длина номеров коэффициентов в положительную и отрицательную сторону ИПХ(ну, как это счиатаеться в Матлабе), то этот подход дает выигрыш в порядке в большенстве случаев у Кайзера, и самое интересное, что в некоторых случаях и у Ремеза  (Последнее я заметил если ширина полосы пропускания небольшая).. Приведу пример: Был синтезирован фильтр 74-го порядка уровень пульсаций в зоне пропускания =2,8*10^-5дБ уровень пульсаций в зоне задержки= -62дБ конец полосы пропускания - 100 Гц; начало полосы задержки соответсвенно -2500; частота дискретизации - 44100Гц; У Ремеза: порядок- 88 уровень пульсаций в зоне пропускания <=0.0001дБ уровень пульсаций в зоне задержки<= -62дБ конец полосы пропускания - 100 Гц; начало полосы задержки соответсвенно -2500; частота дискретизации - 44100Гц; У Кайзера: порядок- 124 уровень пульсаций в зоне пропускания <=0.0001дБ уровень пульсаций в зоне задержки<= -62дБ конец полосы пропускания - 100 Гц; начало полосы задержки соответсвенно -2500; частота дискретизации - 44100Гц; Как такое может быть?Ведь Ремез дает оптимальный и минимальный вариант порядка.... Полученные коэффициенты следующие(для уменьшения занимаего места привожу только половину коэффициентов, вторая половина симетрична относительно нулевого коэффициента): 0.059439 0.058985 0.057638 0.055445 0.052482 0.04885 0.04467 0.040078 0.035217 0.030235 0.025272 0.020461 0.015919 0.011742 0.008005 0.0047608 0.0020367 -0.00016238 -0.0018522 -0.0030663 -0.0038524 -0.0042682 -0.0043774 -0.0042459 -0.0039375 -0.0035119 -0.0030214 -0.0025101 -0.0020124 -0.0015539 -0.001151 -0.00081262 -0.00054124 -0.00033446 -0.00018641 -8.8943e-005 -3.251e-005 -6.6464e-006
|
|
|
|
|
Dec 17 2006, 23:24
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(vaduts @ Dec 15 2006, 11:55)  Так вот все равно остаеться вопросик у меня...Какие реальные фильтры(требования к параметрам) применяются в системах где производиться децимация, интерполяция или например в эквалайзерах? Могу по своему опыту сказать - что при децимации и интерполяции применял в реально работающих проектах начиная от тупового CIC2(4) и до комплексного фильтра 1536-го порядка, который в себе кроме отрезания пол-спектра содержал и Гильбертов преобразователь, отрезающий все что меньше нуля. А зависит это все от того, что за сигнал обрабатывается, что с ним в аналоге делается... А эквалайзеры были пока все адаптивными, посему ничего конкретного про них сказать нельзя, так как они сами подстраиваются под канал. PS А порядок фильтра это максимум порядка числителя и знаменателя передаточной ф-ции фильтра. Всегда. Везде. И в матлабе в том числе.
|
|
|
|
|
Dec 20 2006, 11:28
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(vaduts @ Dec 17 2006, 21:50)  Как такое может быть?Ведь Ремез дает оптимальный и минимальный вариант порядка.... не поленился посчитал в матлабе - ремез такогоже порядка, как и Ваш фильтр имеет подавление в полосе задержания на 20 дБ меньше  . Код h = [ -0.00000664640000 -0.00003251000000 -0.00008894300000 -0.00018641000000 -0.00033446000000 -0.00054124000000 -0.00081262000000 -0.00115100000000 -0.00155390000000 -0.00201240000000 -0.00251010000000 -0.00302140000000 -0.00351190000000 -0.00393750000000 -0.00424590000000 -0.00437740000000 -0.00426820000000 -0.00385240000000 -0.00306630000000 -0.00185220000000 -0.00016238000000 0.00203670000000 0.00476080000000 0.00800500000000 0.01174200000000 0.01591900000000 0.02046100000000 0.02527200000000 0.03023500000000 0.03521700000000 0.04007800000000 0.04467000000000 0.04885000000000 0.05248200000000 0.05544500000000 0.05763800000000 0.05898500000000 % 0.05943900000000 0.05943900000000 0.05898500000000 0.05763800000000 0.05544500000000 0.05248200000000 0.04885000000000 0.04467000000000 0.04007800000000 0.03521700000000 0.03023500000000 0.02527200000000 0.02046100000000 0.01591900000000 0.01174200000000 0.00800500000000 0.00476080000000 0.00203670000000 -0.00016238000000 -0.00185220000000 -0.00306630000000 -0.00385240000000 -0.00426820000000 -0.00437740000000 -0.00424590000000 -0.00393750000000 -0.00351190000000 -0.00302140000000 -0.00251010000000 -0.00201240000000 -0.00155390000000 -0.00115100000000 -0.00081262000000 -0.00054124000000 -0.00033446000000 -0.00018641000000 -0.00008894300000 -0.00003251000000 -0.00000664640000]; L = length(h); hr = remez(L-1, [0,100*2/44100, 2500*2/44100, 1], [1,1,0,0] );
freqz(h,1); hold on;
freqz(hr,1);
--------------------
ну не художники мы...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|