Для цілей цієї відповіді я буду використовувати термінологію Matlab і визначити "upsampling" як процес вставки нулів між вхідними зразками, а "інтерполяція" як комбінований процес поглинання та фільтрації для видалення псевдонімів ( є коефіцієнтом інтерполяції) , що Upsampling вводить. Для пояснення того, як / чому підсилення синхронізації вводить псевдоніми, перегляньте цю тему .м - 1 мм - 1м - 1м
Важливо розуміти, що будь-який фільтр низьких частот можна використовувати для позбавлення від псевдонімів і, таким чином, для завершення інтерполяції. Деякі фільтри мають переваги при використанні в інтерполяції. Про різні смаки інтерполяційної фільтрації я обговорю нижче.
Фільтр FIR
Інтерполяція фільтрів FIR є ефективною, оскільки вони поєднують в собі оптимізацію та фільтри псевдонімів в один крок. Це найлегше помітити на прикладі. Припустимо, у нас є послідовність даних і ми хочемо інтерполювати її з коефіцієнтом два. Перший крок - збільшити вибірку в два рази. Це змінює початкову послідовність даних з на .х 0 , х 1 , . . . х N х 0 , 0 , х 1 , 0 , . . . x Nx [ n ]х0, х1, . . . хNх0, 0 , х1, 0 , . . . хN
Тепер припустимо, у нас є фільтр FIR з низькою прохідністю, , який ми будемо використовувати для видалення псевдоніму. Коли ми з'єднуємо послідовність даних, що проходять вище, з фільтром, половина кранів фільтра стимулюється ненульовими зразками, а половина кранів - неактивними, оскільки вони відповідають нульовим вибіркам. Половина, що стимулюється, і половина, що є неактивною, прогортається вперед і назад, коли фільтр проходить через дані. Ці два набори кранів іноді називають фазами фільтру.h [ n ]
Цей же ефект може бути досягнутий неявним шляхом, усунувши перебіг збірки та фільтруючи вихідну послідовність даних за допомогою інтерполяційного фільтра FIR. Інтерполяційний фільтр FIR виробляє виходів для кожного вхідного зразка. Для всіх виходів фільтр буде працювати на одних і тих же вхідних зразках на (де K - кількість відводів фільтра, а «стеля» - функція стелі).m c e i l ( К / м )ммc e i l ( K/ м)
Приклад, сподіваємось, проілюструє, як це працює. Припустимо, що у нас є шість кранових фільтрів, і ми інтерполюємо в два рази. Фільтр-крани є [1 -2 4 4 -2 1]. Якщо ми буквально інтерполювали, а потім фільтрували, зразки та фільтр-крани вибудовувались (коли було повне перекриття) наступним чином:
0 : 1х2: - 20 : 4х1: 40 : - 2х0: 1
Наступний зразок ...
х3: 10 : - 2х2: 40 : 4х1: - 20 : 1
Наступний зразок ...
0 : 1х3: - 20 : 4х2: 40 : - 2х1: 1
тощо. Сенс інтерполяційного фільтра полягає в тому, що він пропускає фактично вставляючи нулі та просто чергує, який набір кранів він використовує замість цього. Таким чином, попередня послідовність тепер виглядатиме так:
х2: - 2х1: 4х0: 1
х3: 1х2: 4х1: - 2
х3: - 2х2: 4х1: 1
Затримайте нульовий порядок
Інтерполятор утримування нульового порядку - це той, який просто повторює кожен зразок рази. Отже, коефіцієнт двох інтерполяторів утримування нульового порядку перетворює в . Цей метод привабливий тим, що його реалізувати надзвичайно просто, як з точки зору кодування, так і з розрахунку навантаження.м - 1х0, х1, . . . хNх0, х0, х1, х1, . . . хN, хN
Проблема з ним полягає в тому, що його низькочастотна фільтрація є досить поганою. Ми можемо бачити, що коли ми визнаємо, що нульовий інтерполятор є особливим випадком інтерполяції FIR. Це відповідає оптимізації, з подальшим фільтром прямокутника. Перетворення Фур'є прямокутного фільтра - це функція sinc, яка є досить пошарпаним фільтром низьких частот. Його пошарування можна зафіксувати компенсуючим фільтром FIR, але якщо ви збираєтеся це зробити, ви можете просто використати хороший фільтр низьких частот.м
Утримуйте перший замовлення
Утримування першого порядку - це крок від інтерполятора нульового утримування тим, що він лінійно інтерполює збірники з використанням двох найближчих вхідних зразків. Отже, коефіцієнт двох інтерполяторів утримування першого порядку перетворив би у .х0, х1, . . . хNх0, х0+ х12, х1, х1+ х22, . . . хN
Як і інтерполятор утримування нульового порядку, інтерполятор утримування першого порядку є особливим випадком інтерполяції FIR. Це відповідає збільшенню та фільтруванню трикутним фільтром. Для інтерполяції з коефіцієнтом двох фільтр дорівнює , для інтерполяції з коефіцієнтом трьох - фільтр тощо.[1[12112][132312312]
Трикутний фільтр - це два фільтри прямокутника, зібрані разом, що відповідає квадрату синк у частотній області. Це певний крок від нульового порядку, але все ще не є великим.
IIR фільтр
Я ніколи не використовував інтерполяційний фільтр IIR, тому не скажу багато про них. Я припускаю, що застосовуються ті ж аргументи, що і у звичайній фільтрації - фільтри IIR ефективніші, можуть бути нестабільними, не мають лінійної фази тощо. Я не вірю, що вони можуть поєднувати етапи перегляду та фільтрації, як, наприклад, фільтр FIR, але я можу помилитися з цього приводу.
Інтерполяція FFT
Я закину це, навіть якщо це не дуже часто (звичайно, я також не думаю, що затримка нуля звичайна). Цей потік обговорює FSP перекомпонування, де перекомпонування є і інтерполяцією, і децимацією.
Вищий орден тримається
Інтерполятори утримування другого порядку зазвичай називають "квадратичними інтерполяторами". Вони нелінійні і тому не можуть бути реалізовані як фільтри FIR, які є лінійними. Я не добре розумію математику за ними, тому не буду обговорювати їхню ефективність. Я, однак, скажу, що я вважаю, що вони є дещо поширеними поза обробкою сигналів.
Існують також методи вищого порядку (три і більше). Вони називаються "поліноміальними регресіями".
Редагувати:
Каскадні інтеграторні гребінчасті (CIC) фільтри
Я забув згадати фільтри CIC . Фільтри CIC використовуються з двох причин: вони використовують лише суматори / віднімачі (не така вже й велика справа, коли множення швидко і дешево), і вони можуть зробити дуже великі зміни частоти вибірки досить ефективно. Їх нижня сторона полягає в тому, що вони по суті є ефективною реалізацією фільтра прямокутного каскадного прямокутника, тому у них є всі недоліки прямокутних фільтрів, як обговорено вище. Інтерполяторам CIC, як правило, завжди передує компенсуючий фільтр FIR, який попередньо спотворює сигнал, щоб скасувати спотворення, введені CIC. Якщо зміна швидкості вибірки досить велика, вартість фільтра попереднього спотворення варто.