У відповідності до теореми Котельникова будь-який неперервний сигнал з фінітним[ru]спектром (тобто таким спектром, в якому спектральні складові, що відповідають частотам вище або рівним деякої частоти , відсутні) може бути поданим у вигляді відліків дискретного сигналу з частотою дискретизації . При цьому таке перетворення є взаємно однозначним, тобто при дотриманні умов теореми Котельникова за дискретним сигналом можна відновити вхідний сигнал з фінітним спектром без спотворень.[2]
При передискретизації відліки сигналу, які відповідають одній частоті дискретизації, обчислюються на основі відомих відліків цього ж сигналу, що відповідають іншій частоті дискретизації (при цьому вважається, що обидві частоти дискретизації відповідають умовам теореми Котельникова). Ідеальна передискретизація еквівалентна відновленню неперервного сигналу за його відліками з наступною дискретизацією його на новій частоті.[3]
Точне обчислення значення вихідного неперервного сигналу у певній точці виконується таким чином:[4][5]
де — i-й відлік сигналу, — момент часу, який відповідає цьому відліку, — циклічна частота дискретизації, — інтерпольоване значення сигналу в момент часу .
Функція не є фінітною[ru], тому для обчислення значення сигналу у певний момент часу з допомогою вищенаведеного виразу необхідно опрацювати нескінченну кількість його відліків (як у минулому, так і в майбутньому), що не може бути реалізованим на практиці. В реальному житті інтерполяція здійснюється з допомогою інших фільтрів, при цьому вираз для неї набуває такого вигляду:[6][7]
Пряме обчислення нових відліків сигналу за вищенаведеними формулами потребує значних обчислювальних ресурсів і є небажаним для додатків реального часу. Існують важливі часткові випадки передискретизації, для яких обчислення нових відліків здійснюється простіше:[9]
децимація з цілим коефіцієнтом (зменшення частоти дискретизації у ціле число разів);
інтерполяція з цілим коефіцієнтом (збільшення частоти дискретизації у ціле число разів);
зміна частоти дискретизації в раціональну () кількість разів (цей випадок можна розглядати як комбінацію двох попередніх).
При таких обмеженнях стає зручним застосування стандартних реалізацій цифрових фільтрів для передискретизації.
Передискретизація з допомогою цифрових фільтрів
Вибір фільтра для передискретизації
Вибір функції зумовлюється компромісом між якістю передискретизації (тобто близькості її до ідеальної) та обчислювальною складністю цього процесу. В принципі, для передискретизації може використовуватися будь-який фільтр нижніх частот з необхідною частотою зрізу. СІХ-фільтри (фільтри зі скінченною імпульсною характеристикою) застосовуються для цих задач частіше, ніж НІХ-фільтри (фільтри з нескінченною імпульсною характеристикою), через можливість побудови СІХ-фільтрів з лінійною фазо-частотною характеристикою.[10]
Найчастіше при передискретизації використовуються такі класи цифрових фільтрів:[11]
1.1. Віконні sinc-фільтри[en] (англ.windowed-sinc filters) — їх імпульсна характеристика отримується шляхом множення імпульсної характеристики ідеального ФНЧ на віконну функцію.
3. CIC-фільтри[en] (англ.cascaded integrator-comb filters, каскади гребінчастих фільтрів та інтеграторів).[13] Цей клас фільтрів не використовує множень при обчисленні, що дозволяє зекономити обчислювальні ресурси.
Процес зменшення частоти дискретизації сигналу називається децимацією.[1] Іноді цей термін вживають тільки для зменшення частоти дискретизації в цілу кількість разів (далі ).[14] Децимація цифрового сигналу з цілим коефіцієнтом виконується у два етапи:[10][15]
Цифрова фільтрація сигналу з метою видалення високочастотних складових, що не задовільняють умовам теореми Котельникова для нової частоти дискретизації.
Видалення (відкидання) зайвих відліків (зберігається кожен -й відлік).
В англомовній літературі другий з цих етапів іноді позначають терміном downsampling.[16] У побуті цей термін може використовуватися як синонім терміну «децимація».
Перший етап є необхідним для виключення накладання спектрів, природа якого аналогічна накладанню спектрів при початковій дискретизаціїаналогового сигналу.[15] Накладання спектрів є особливо помітним на тих ділянках сигналу, які мають значні високочастотні спектральні складові. Так, на наведених на початку статті фотографіях небо практично не піддалося накладанню спектрів, але ефект стає помітним, якщо звернути увагу на різкі переходи.
При програмній реалізації алгоритму децимації «зайві» відліки не видаляються, а просто не обчислюються. При цьому кількість звернень до цифрового фільтра зменшується в разів. При апаратній реалізації економії можна досягти шляхом використання поліфазних фільтрів[en].[17]
Інтерполяція з цілим коефіцієнтом
Інтерполяцією називають збільшення частоти в цілу або дробову кількість разів[1] шляхом обчислення проміжних відліків за вже відомими. Ідеальна інтерполяція дозволяє точно відновити значення сигналу в проміжних відліках.
Стандартний алгоритм інтерполяції сигналу з цілим коефіцієнтом полягає в такому:[18]
Вставка нульових відліків на місце відліків, які потрібно обчислити.
Фільтрація сигналу цифровим фільтром нижніх частот для того, щоб забрати спектральні складові сигналу, яких точно не могло бути у вихідному сигналі згідно з теоремою Котельникова; вихід фільтра множиться на коефіцієнт інтерполяції для нормування.
В англомовній літературі перший з цих етапів іноді позначається терміном upsampling.[16] При цьому в побуті цей термін може використовуватися як синонім терміну «інтерполяція».
При програмній реалізації інтерполяції нульові відліки не беруть участі в обчисленнях вихідного сигналу фільтра, що дозволяє оптимізувати процес обчислення. При апаратній реалізації для економії ресурсів можна використовувати поліфазні фільтри.[19][20]
Комбінація інтерполяції та децимації
Для того, щоб змінити частоту дискретизації сигналу в разів ( та — цілі додатні числа), можна спочатку збільшити частоту дискретизації в разів, а потім зменшити її в разів. Фільтрацію сигналу достатньо здійснити всього один раз — між інтерполяцією та децимацією.[21]
Недоліком даного методу є необхідність фільтрації сигналу на підвищеній в разів частоті дискретизації, що потребує значних обчислювальних ресурсів. При цьому відповідна частота може у багато разів перевищувати як вихідну, так і кінцеву частоту передискретизації, особливо якщо та — близькі великі числа.[22] Так, наприклад, при передискретизації звукового сигналу з 44 100 до 48 000 Гц цим методом необхідно збільшити частоту дискретизації у 160 разів до 7 056 000 Гц і потім зменшити її в 147 разів до 48 000 Гц. Таким чином, в даному прикладі обчислення доводиться здійснювати на частоті дискретизації понад 7 МГц.
Передискретизація з допомогою поліфазних фільтрів
Метод передискретизації з допомогою поліфазних фільтрів[en] аналогічний до попереднього, з тією відмінністю, що в ньому замість одного фільтра, що працює на високій частоті дискретизації, використовується декілька фільтрів, які працюють на низькій частоті. При цьому вдається досягти зменшення кількості необхідних обчислень, оскільки для кожного відліку необхідно обчислити вихідний сигнал тільки одного з цих фільтрів.[20][23]
Поліфазний фільтр є набором невеликих фільтрів, які працюють паралельно, кожен з яких обробляє тільки підмножину відліків сигналу (якщо всього є фільтрів, кожен фільтр буде обробляти тільки кожен -й відлік).
Поліфазні фільтри застосовуються для передискретизації як із цілим, так і з дробовим коефіцієнтом.[24]
Передискретизація з допомогою дискретного перетворення Фур'є
Передискретизація з допомогою ДПФ використовується для підвищення частоти дискретизації в цілу або дробову кількість разів. Алгоритм працює тільки зі скінченними відрізками сигналу.
Нехай — початкова кількість відліків, — кількість відліків у передискретизованому сигналі. Алгоритм включає в себе такі операції:[25][26]
2. В середину спектра вставляється необхідна кількість нульових компонент:
2.1. якщо непарне:
2.2. якщо парне:
3. Обчислюється обернене дискретне перетворення Фур'є з нормуванням.
Будь-який метод, що базується на ДПФ, призначений в першу чергу для періодичних дискретних сигналів. Для обробки неперіодичних сигналів необхідно вибирати відрізки сигналу для обчислення ДПФ таким чином, щоб їх кінці перекривалися.[27]
Вибір конкретної реалізації алгоритму передискретизації є результатом компромісу між якістю перетворення та його обчислювальною складністю. Основним параметром, що впливає на ці характеристики, є близькість використовуваних цифрових фільтрів до ідеальних. Якісніші фільтри потребують більших ресурсів для обчислення.[32]
На практиці передискретизація у більшості випадків призводить до втрати інформації про сигнал з таких причин:
при зменшенні частоти дискретизації сигнал необхідно відфільтрувати з метою видалення високочастотних спектральних складових, які не відповідають умовам теореми Котельникова для нової частоти дискретизації;
Таким чином, при збільшенні частоти дискретизації з наступним зменшенням її до вихідного значення якість сигналу буде втрачено (якщо тільки висока частота не кратна низькій).
Дискретизація сигналів з запасом по частоті дискретизації
Під дискретизацією сигналів з запасом по частоті дискретизації (англ.oversampling) розуміють дискретизацію сигналу на частоті, яка в декілька разів перевищує частоту Котельникова з наступною децимацією. Цей підхід дає змогу отримати такі переваги[35]:
можливість використовувати АЦП з меншою розрядністю.
Аналогічний підхід застосовується і при відновленні сигналу за його відліками для спрощення аналогового фільтра відновлення.[36]
При обробці звуку
Обладнання, призначене для відтворення цифрового звуку, як правило, розраховане на цілком певну частоту дискретизації сигналу безпосередньо перед цифро-аналоговим перетворенням. Всі звукові сигнали з іншими частотами дискретизації повинні бути рано чи пізно передискретизовані[37].
Передискретизація звукового сигналу на потрібну частоту може здійснюватися медіаплеєром, драйверомзвукової карти або самою звуковою картою. Використання програми-програвача з цією метою може бути виправданим, якщо бажано уникнути апаратної передискретизації звуку (або передискретизації драйвером) з метою отримання кращої якості (при більшому навантаженні на центральний процесор).
Однак програмна передискретизація відтворюваного матеріалу на частоту, відмінну від частоти, підтримуваної обладнанням, не має сенсу і призводить тільки до втрати якості сигналу.
SOXR[40] — якісний, швидкий, з мінімальними вимогами до ресурсів[41]. Містить бібліотеку для заміни SRC, підключається до foobar2000, використовується в FFmpeg (з версії 1.1.1), Audacity та інших проектах.
Зміна роздільності є однією з поширених операцій обробки зображень. Передискретизація, близька до ідеальної, не завжди є бажаною. Навпаки, результати роботи фільтрів з частотною характеристикою, далекою від ідеальної, можуть візуально сприйматися як хороші.[42] Вибір фільтра для передискретизації є результатом компромісу між типом та вираженістю артефактів та обчислювальною складністю перетворення (актуальної для додатків реального часу).
Типові артефакти при зміні роздільності зображення[12]:
Для передискретизації зображень використовується велика кількість фільтрів, які можна класифікувати таким чином[12]:
Фільтри інтерполяційного типу, що мають порівняно вузьку імпульсну характеристику. До них належать, зокрема, трикутний фільтр, що виконує білінійну інтерполяцію та поліном Лагранжа, з допомогою якого можна реалізувати бікубічну інтерполяцію[en]. Застосування таких фільтрів дозволяє здійснити передискретизацію зображення достатньо швидко.
Фільтри з дзвоноподібною характеристикою, такі як фільтр Гауса. Ці фільтри добре справляються з пікселізацією, дзвоном та аліасингом, а також відфільтровують високочастотні шуми. Їх недоліком є помітне розмивання зображення.
Віконні sinc-фільтри[en]. Sinc-фільтр — це ідеальний фільтр нижніх частот. Як зазначалося вище, він не може бути реалізованим. Однак якщо частотну характеристику sinc-фільтра помножити на віконну функцію, отримаємо фільтр з хорошими спектральними властивостями, який можна реалізувати. При застосуванні даних фільтрів до зображень вдається зберегти відносно високу чіткість (навіть при збільшенні роздільності), але може бути сильно помітним ефект дзвону. Одним з найчастіше використовуваних фільтрів цього типу є фільтр Ланцоша[en].
Нижченаведені зображення ілюструють застосування найчастіше використовуваних фільтрів зміни розміру зображень. При збільшенні розміру зображення без фільтра зображення отримується чітким, але пікселізованим. При білінійній інтерполяції пікселізація менш помітна, але зображення є розмитим. При використанні фільтра Гауса зображення розмите, але пікселізації практично не помітно. При використанні фільтра Ланцоша пікселізація відсутня, зображення також є розмитим і помітний дзвін (видимий як світла облямівка навколо фігур).
Зображення, збільшене в 4 рази без фільтра
Зображення, збільшене в 4 рази з білінійною інтерполяцією
Зображення, збільшене в 4 рази з фільтром Гауса
Зображення, збільшене в 4 рази з фільтром Ланцоша
При обробці радіосигналів
При демодуляції цифрових сигналів бажано, щоб частота дискретизації сигналу була кратна його швидкості маніпуляції[ru] (інакше кажучи, щоб на кожен символ припадала однакова кількість відліків сигналу). Однак частота дискретизації вхідного сигналу з АЦП, як правило, є фіксованою, а швидкість маніпуляції може змінюватися. Вирішенням цієї проблеми є передискретизація сигналу.[43]
У статистиці
У статистиці повторна вибірка[en] — це створення нових вибірок на основі однієї спостережуваної вибірки. Методи повторної вибірки: Перестановочні тести, Початкове завантаження, Перехресна перевірка.
Рабинер, Л.; Гоулд, Б. (1978). Теория и применение цифровой обработки сигналов = Theory and Application of Digital Signal Processing. Москва: Мир. с. 848.(рос.)