|
Интерполяционный фильтр, Объясните принцып действия |
|
|
|
 |
Ответов
|
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-ти разрядные коэффициенты и данные).
|
|
|
|
|
Mar 1 2006, 10:50
|
СТАТУС: только для чтения
 
Группа: Новичок
Сообщений: 133
Регистрация: 23-12-04
Пользователь №: 1 627

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

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

|
Цитата(st256 @ Mar 1 2006, 12:50)  Неправильно. Это стандартная ошибка. Просто дополнительно возникнет предискажение в виде фильтрации с АЧХ sqrt(1-sin(w)). Если не верите, то попробуйте в сварганить такое в матлабе. В матлабе не пробовал. Написал программу, которая исходные отсчеты разбавляет не нулями, о предыдущими отчетами. На вход подаю сигнал с равномерно возрастающим тоном 0-11 кГц с уровнем -12 дБ, частота дискр. 22 кГц. На выходе получаю сигнал с дискр. 44 кГц. После "разбавления" отсчеты проходят через 40-таповый КИХ ФНЧ. Выходной сигнал анализирую SoundForge. Паразитных гармоник в диапазоне от 11-22 кГц до -90 дБ нету. Визуально, сонограма результирующего сигнала почти идентична исходному, за исключением того, что вблизи 11 кГц наблюдается затухание вызванное действием ФНЧ. 2 st256: Предискажение в виде фильтрации с АЧХ sqrt(1-sin(w)) правильно сформировано (на рис.) ?
Сообщение отредактировал KolyanV - Mar 1 2006, 13:05
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
MKS Интерполяционный фильтр Jan 19 2006, 14:36 BVU Читайте, изучайте... Jan 19 2006, 15:48 Vic1 Поищете по ключам "интерполятор 0-го или 1-го... Jan 19 2006, 16:14 MKS А из каких соображений выбирают коэфициент интерпо... Jan 19 2006, 17:28 BVU Цитата(MKS @ Jan 19 2006, 20:28) А из как... Jan 20 2006, 07:24 Janna Цитата(MKS @ Jan 19 2006, 23:28) Как я по... Feb 27 2006, 03:41  st256 Цитата(Janna @ Feb 27 2006, 12:41) Цитата... Feb 27 2006, 05:46   Janna Цитата(st256 @ Feb 27 2006, 11:46) Надо ж... Feb 28 2006, 12:37 MKS Вот что я понял углубляясь в литературу.
В данном ... Feb 27 2006, 08:49 st256 Цитата(MKS @ Feb 27 2006, 17:49) Вот что ... Feb 27 2006, 11:56       st256 Цитата(KolyanV @ Mar 1 2006, 22:03) Цитат... Mar 1 2006, 14:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|