|
Интерполяционный фильтр, Объясните принцып действия |
|
|
|
Feb 27 2006, 03:41
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Цитата(MKS @ Jan 19 2006, 23:28)  Как я понял чем больше коэф. интерполяции тем менее жесткие требования к ФНЧ на выходе ЦАП, но возрастают искажения сигнала. Это так ? Отвечу менее запутанно: для того, чтобы повысить тактовую частоту, на которой работает ЦАП, используется "передискретизация" и связанная с ней интерполяция данных о недостающих отсчётах. Поскольку тактовая частота при этом отодвигается от частоты Найквиста (или Котельникова, т.е. удвоенной верхней частоты полезного сигнала), то Вы правы, что требования к порядку фильтра уменьшаются при тех же требованиях к ослаблению тактовой частоты. Искажения сигнала возникают в результате процесса интерполяции, причём всё зависит от самого закона интерполяции: линейная или более высокого порядка. Поэтому и тут Вы правы. Однако при недостаточном подавлении частот, выше тактовой также возникают искажения, и это ещё не сразу понятно, какие из них страшнее. Цитата(MKS @ Jan 19 2006, 23:28)  А из каких соображений выбирают коэфициент интерполяции ? Выбирают не только коэффициент увеличения тактовой частоты, но и закон интерполяции. Соображения примерно такие: у вас есть определённые возможности по созданию фильтра. Из литературы известно, к каким искажениям приводит недостаточное подавление частот выше тактовой. Также известно и то, к каким искажениям приводит интерполяция. И это взаимно противоположно направленные процессы, поэтому должен быть оптимум.
|
|
|
|
|
Feb 27 2006, 05:46
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(Janna @ Feb 27 2006, 12:41)  Цитата(MKS @ Jan 19 2006, 23:28)  Как я понял чем больше коэф. интерполяции тем менее жесткие требования к ФНЧ на выходе ЦАП, но возрастают искажения сигнала. Это так ?
Отвечу менее запутанно: для того, чтобы повысить тактовую частоту, на которой работает ЦАП, используется "передискретизация" и связанная с ней интерполяция данных о недостающих отсчётах. Поскольку тактовая частота при этом отодвигается от частоты Найквиста (или Котельникова, т.е. удвоенной верхней частоты полезного сигнала), то Вы правы, что требования к порядку фильтра уменьшаются при тех же требованиях к ослаблению тактовой частоты. Искажения сигнала возникают в результате процесса интерполяции, причём всё зависит от самого закона интерполяции: линейная или более высокого порядка. Поэтому и тут Вы правы. Однако при недостаточном подавлении частот, выше тактовой также возникают искажения, и это ещё не сразу понятно, какие из них страшнее. Цитата(MKS @ Jan 19 2006, 23:28)  А из каких соображений выбирают коэфициент интерполяции ? Выбирают не только коэффициент увеличения тактовой частоты, но и закон интерполяции. Соображения примерно такие: у вас есть определённые возможности по созданию фильтра. Из литературы известно, к каким искажениям приводит недостаточное подавление частот выше тактовой. Также известно и то, к каким искажениям приводит интерполяция. И это взаимно противоположно направленные процессы, поэтому должен быть оптимум. Надо же... Все точно. Даже приципиться не к чему...
|
|
|
|
|
Feb 27 2006, 08:49
|

Местный
  
Группа: Свой
Сообщений: 469
Регистрация: 13-03-05
Пользователь №: 3 315

|
Вот что я понял углубляясь в литературу. В данном случае (AD9776) под интерполяцией понимается следующее: Допустим я хочу поднять тактовую частоту в 4 раза. Для этого я между соседними отсчетами вставляю по 3 нулевых значения, при этом тактовая частота становится в 4 раза больше но в спектре еще присутствуют паразитные полосы. Далее новую последовательность пропускают через цифровой ФНЧ с соответствующей полосой заграждения, что приводит к прореживанию спектра. После этой операции вставленые нули получают "правильные" значения. Не знаю правильно ли называть этоу операцию интерполяцией. Оригинальный документ в прицепе.
Прикрепленные файлы
an9603.pdf ( 87.19 килобайт )
Кол-во скачиваний: 114
|
|
|
|
|
Feb 27 2006, 11:56
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(MKS @ Feb 27 2006, 17:49)  Вот что я понял углубляясь в литературу. В данном случае (AD9776) под интерполяцией понимается следующее: Допустим я хочу поднять тактовую частоту в 4 раза. Для этого я между соседними отсчетами вставляю по 3 нулевых значения, при этом тактовая частота становится в 4 раза больше но в спектре еще присутствуют паразитные полосы. Далее новую последовательность пропускают через цифровой ФНЧ с соответствующей полосой заграждения, что приводит к прореживанию спектра. После этой операции вставленые нули получают "правильные" значения. Не знаю правильно ли называть этоу операцию интерполяцией. Оригинальный документ в прицепе. Правильно, правильно. Только в качестве ФНЧ рекомендую использовать полифазный фильтр, при этом, если давить спектры нужно лучше 70 дБ, то коэффициенты нужно выбирать 32-битные.
|
|
|
|
|
Feb 28 2006, 14:02
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(MKS @ Feb 28 2006, 02:47)  Цитата(st256 @ Feb 27 2006, 13:56) 
Правильно, правильно. Только в качестве ФНЧ рекомендую использовать полифазный фильтр, при этом, если давить спектры нужно лучше 70 дБ, то коэффициенты нужно выбирать 32-битные.
А что это за полифазные фильтры? Если не трудно приведите пару ссылок, где можно об этом почитать. Если бы я был неимоверно крут и страшно нуждался в апплодисментах, то я Вас отправил бы в гугл. Но так как я просто неимоверно крут, то рекомендую русскоязычный yandex. Пару слов еще. Приведу пример простейшего полифазного фильтра. Пусть вам надо поднять частоту дискретизации в два. Вы берете отсчеты сигнала x1, x2, x3, x4, x5,.... разбавляете их нулями x1, 0, x2, 0, x3, 0, x4, 0, x5, 0 и используете простейший полифазный фильтр - полуполосовой. А он характеризуется импульсной характеристикой интересного вида h1, 0, h2, 0, h3, 1, h3, 0, h2, 0, h1 т.е. каждый второй коэффициент у него равен нулю, кроме центрального, который равен 1. т.е. Вы очень серьезно экономите на интерполяции. Этот фильтр можно обобщить и на ресамплинг в 3, 4, 5, и т.д. раз. Цитата(Janna @ Feb 28 2006, 21:37)  Цитата(st256 @ Feb 27 2006, 11:46)  Надо же... Все точно. Даже приципиться не к чему...
Чистая теория. А без практики теория значит мало... Ну иногда лучше знать теорию и не иметь практики, чем не иметь ни практики ни теоретических знаний
|
|
|
|
|
Mar 1 2006, 07:01
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621

|
Цитата(st256 @ Feb 28 2006, 16:02)  Пару слов еще. Приведу пример простейшего полифазного фильтра. Пусть вам надо поднять частоту дискретизации в два. Вы берете отсчеты сигнала
x1, x2, x3, x4, x5,....
разбавляете их нулями
x1, 0, x2, 0, x3, 0, x4, 0, x5, 0 А нельзя ли при ресемплинге отсчеты разбавлять не нулями, а значением предыдущего семпла, вот так: x1, x1, x2, x2, x3, x3, x4, x4, x5, x5 Ведь в таком случае мощность паразитных гармоник существенно уменьшается. Или в этом случае есть подводные камни ?
|
|
|
|
|
Mar 1 2006, 08:32
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

|
Цитата(KolyanV @ Mar 1 2006, 16:01)  А нельзя ли при ресемплинге отсчеты разбавлять не нулями, а значением предыдущего семпла, вот так:
x1, x1, x2, x2, x3, x3, x4, x4, x5, x5
Ведь в таком случае мощность паразитных гармоник существенно уменьшается. Или в этом случае есть подводные камни ? Можно, но что Вы с этого будете иметь? Во-первых геморрой с пересчетом коэффициентов интерполирующего фильтра, ибо вставка предыдущего семпла эквивалентна фильтрации с АЧХ sqrt(1-sin(w)). Т.е. это предискажение надо компенсировать. Во-вторых, увеличение вычислительных затрат в 2 раза, по сравнению с полифазной фильтрацией. А это уже серьено. Т.е. уж лучше сделать фильтр в 2 раза больше, чем уменьшать таким образом помехи наложения.
|
|
|
|
|
Mar 1 2006, 10:02
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621

|
Цитата(st256 @ Mar 1 2006, 10:32)  Можно, но что Вы с этого будете иметь? Во-первых геморрой с пересчетом коэффициентов интерполирующего фильтра, ибо вставка предыдущего семпла эквивалентна фильтрации с АЧХ sqrt(1-sin(w)). Т.е. это предискажение надо компенсировать. Во-вторых, увеличение вычислительных затрат в 2 раза, по сравнению с полифазной фильтрацией. А это уже серьено. Т.е. уж лучше сделать фильтр в 2 раза больше, чем уменьшать таким образом помехи наложения. После разбавления исходного сигнала "предыдущими отсчетам", нижняя часть спектра отражается в верхнюю частотную область. Т.е, если ресемплинг 22 кГц -> 44 кГц, тогда в результирующем сигнале спектр в диапазоне 11-22 кГц будет зеркально отображать спектр сигнала в диапазоне 0-11 кГц. После такого разбавления я просто применял КИХ фильтр низких частот, давя при этом гармоники выше 11 кГц более чем на 70 дБ от исходного 40-ка таповым фильтром. А если сравнивать 40-ка таповый КИХ фильтр с полифазным при прочих равных условиях, как будет с производительностью ? (в КИХ фильтре я применял 16-ти разрядные коэффициенты и данные).
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|