Skip to content
ЦОС · Тема 5 · Цифрови филтри

Проектиране на филтри – махни писъка

В думата „Здравей“ се е намесил досаден писък на 4000 Hz. Задачата е да намерим филтър, който го маха, без да разваля думата – с КИХ и с БИХ, и да видим кой го прави по-евтино.

≈ 6 мин четене∿ 8 живи уредаСамопроверка: 4 въпроса

Задачата и габаритът ​

Пусни входа: думата е заглушена от равен писък на 4000 Hz. На спектрограмата той е хоризонтална светла линия. Гласът е под него, затова ни трябва НЧФ. Първо записваме изискването като габарит: думата до 2000 Hz да мине почти без промяна (до 1 dB разлика), а всичко от 3600 Hz нагоре да е поне 40 dB (100 пъти) по-слабо. Да намерим коефициенти, които влизат в габарита, се казва апроксимация.

Думата с писъка
Входът: звукът, както е записан
020040060080010001200−101t – време, msx
входът x(n)
Спектрограма: думата и писъкът (линията на 4k)
Фигура 1.

Думата е петната под 3–4 kHz; писъкът е линията на 4000 Hz през целия запис.

КИХ с линейна ФЧХ ​

Ако коефициентите на КИХ филтъра са симетрични (h = [1, 2, 1]), всички честоти закъсняват с еднакво – M/2 отчета – и формата на звука се запазва. Според това дали h е симетрична или антисиметрична и дали дължината е четна, има четири типа:

Тип 1Тип 2Тип 3Тип 4
h(n)симетричнасиметричнаантисиметричнаантисиметрична
дължинанечетначетнанечетначетна
АЧХ при 0 / при fs/2свободна / свободнасвободна / 00 / 00 / свободна
става завсичкоНЧФ, ЛФдиференциатор, ХилбертВЧФ, диференциатор
h = [1, 2, 1]
b₀ = 1
b₁ = 2
b₂ = 1
АЧХ – амплитудно-честотна характеристика
00,20,40,60,81024Ω/π (1 = fd/2)|H|
АЧХ
ФЧХ – фазово-честотна характеристика
00,20,40,60,81−1−0,500,5Ω/π (1 = fd/2)θ/π
ФЧХ θ/π
ГВЗ – групово време на закъснение
00,20,40,60,8100,511,52Ω/π (1 = fd/2)tgd, отчета
ГВЗ
ПНД – полюсно-нулева диаграма
−1−0,50,51−1−0,50,51Re zIm z22
✓ Устойчива – всички полюси са вътре в кръга (max |p| = 0)

Хвани × или ○ и го премести. Посочиш ли честота в АЧХ, тя светва като точка по окръжността.

Фигура 2.

1 + 2 + 1 = 4 при 0 Hz и 1 − 2 + 1 = 0 при fs/2 – НЧФ, а ГВЗ е 1 отчет навсякъде. Наруши симетрията (b₀ ≠ b₂): ФЧХ се изкривява и ГВЗ спира да е права.

Метод на прозорците (КИХ) ​

Идеалният НЧФ има безкрайна h(n) = sin(Ωc·n)/(πn). Методът е прост: отрязваме я до M + 1 коефициента и я омекотяваме с прозорец W(n) – функция, която плавно свежда краищата до нула. Рязкото отрязване (правоъгълен прозорец) оставя ~9 % вълнички около среза – ефектът на Гибс, колкото и дълъг да е филтърът.

Колкото по-плавен е прозорецът, толкова по-дълбоко спира, но толкова по-широк е преходът – и трябват повече коефициенти за същата стръмност.

ПрозорецСтраничен лист на прозорецаЗатихване на получения филтърШирина на прехода
правоъгълен−13 dB≈ 21 dB4π/M (най-тесен)
Хан−31 dB≈ 44 dB8π/M
Хеминг−41 dB≈ 53 dB8π/M
Блекман−57 dB≈ 74 dB12π/M

Внимание: двете числа са различни неща. В таблиците на прозорците обикновено пише страничният лист на самия прозорец; тук филтърът спира с затихването от третата колона.

КИХ срещу писъка
КИХ: 41 коефициента (ред M = 40)
ЛАЧХ в габарита (1 = 8000 Hz)
00,20,40,60,81−500Ω/π (1 = fd/2)|H|, dB
ЛАЧХ
✓ Кривата минава през коридорите – филтърът е в габарита
Писъкът е 60 dB по-тих · 41 умножения на отчет
Входът: звукът, както е записан
020040060080010001200−101t – време, msx
входът x(n)
Изходът: звукът след КИХ
020040060080010001200−101t – време, msy
изходът y(n)
Фигура 3.

Хеминг с 41 коефициента влиза в габарита; с 31 преходът е твърде широк и думата се изкривява. Правоъгълният не стига 40 dB с никаква дължина – чуй как писъкът остава. Блекман спира най-дълбоко, но иска повече коефициенти за същия преход.

Петте прозореца
ред M = 40 (41 коеф.)
ИХ на КИХ НЧФ, M = 40
01020304000,2n – отчетh(n)
отрязана sinc (правоъгълен) × Хеминг
ЛАЧХ и затихване в ЛЗ
00,20,40,60,81−100−500Ω/πdB
правоъгълен: 21 dB Хеминг: 53 dB
Фигура 4.

Един и същ КИХ с различни прозорци: по-дълбоко спиране ⇔ по-широк преход.

Други методи за КИХ: дискретизация на АЧХ (задаваш АЧХ в M + 1 точки и правиш обратно DFT); минимум на квадратичната грешка; минимаксен (Паркс–Макклелън) – равномерни вълнички и най-нисък ред за даден габарит.

БИХ: готови аналогови прототипи ​

За БИХ не измисляме наново: взимаме класически аналогов филтър и го превеждаме в цифров. Четирите прототипа се различават по това къде позволяват вълнички:

ПрототипАЧХРед за същия габарит
Бътъруъртмаксимално плоска, без вълничкинай-висок
Чебишев I / IIвълнички в ЛП / в ЛЗпо-нисък
Кауер (елиптичен)вълнички и в дветенай-нисък
БИХ срещу писъка
ред N = 5
ЛАЧХ в габарита (1 = 8000 Hz)
00,20,40,60,81−500Ω/π (1 = fd/2)|H|, dB
ЛАЧХ
✗ Кривата излиза от коридорите – не е в габарита
Писъкът е 29 dB по-тих · 11 умножения на отчет
Входът: звукът, както е записан
020040060080010001200−101t – време, msx
входът x(n)
Изходът: звукът след БИХ
020040060080010001200−101t – време, msy
изходът y(n)
Фигура 5.

Намери най-ниския ред на всеки прототип, който влиза в габарита: елиптичният – ред 5 (11 умножения), Чебишев – 6, Бътъруърт – 9. КИХ искаше 41. Цената на БИХ: нелинейна фаза.

КИХ срещу БИХ
ЛАЧХ: двата филтъра от фигури 3 и 5
02000400060008000−100−500f, Hz|H|, dB
КИХ (41 умн./отчет) БИХ (11 умн./отчет)
КИХ: h(n) – крайна, симетрична
0102030405000,2n – отчетстойност
h(n)
БИХ: h(n) – безкрайна
0102030405000,2n – отчетстойност
h(n)
Фигура 6.

Двата филтъра, проектирани по-горе, един до друг. Броят умножения е в легендата.

Билинейно z-преобразуване ​

Как аналоговият прототип става цифров? Билинейното z-преобразуване заменя s с израз от z. То слага цялата безкрайна аналогова честотна ос в 0…fs/2 – затова няма aliasing и устойчивият аналогов филтър остава устойчив. Цената е изкривяване на честотите: високите се свиват. Затова граничните честоти първо се предизкривяват, за да паднат на правилното място.

Навиването на честотите
цифрова fc = 1000 Hz при fd = 8 kHz
Предизкривяване: 1000 Hz → аналоговата трябва да е 1055 Hz
00,20,40,60,810123ωT/π (1 = fd/2)Ω/π (нормирана)
Ω = (2/T)·tg(ωT/2) Ω = ω (без изкривяване) fc
Рекурсивна (БИХ) – има обратна връзка
ДУ:y(n)=0,293 x(n)+0,293 x(n−1)+0,414 y(n−1)y(n) = 0{,}293\,x(n) + 0{,}293\,x(n-1) + 0{,}414\,y(n-1)
ПФ:H(z)=0,293+0,293 z−11−0,414 z−1H(z) = \dfrac{0{,}293 + 0{,}293\,z^{-1}}{1 - 0{,}414\,z^{-1}}
ПНД – полюсно-нулева диаграма
−1−0,50,51−1−0,50,51Re zIm z
✓ Устойчива – всички полюси са вътре в кръга (max |p| = 0,414)
ЛАЧХ: при Ω/π = 0,25 (1 kHz) точно −3 dB
00,20,40,60,81−40−200Ω/π (1 = fd/2)|H|, dB
ЛАЧХ
Фигура 7.

Горе: аналоговата честота спрямо цифровата – ниско съвпадат, към fs/2 аналоговата бяга в безкрайност. Долу: Бътъруърт 1-ви ред, H(z) = 0,293(1 + z⁻¹)/(1 − 0,414z⁻¹); благодарение на предизкривяването −3 dB е точно на 1 kHz.

Други видове от НЧФ: готов цифров НЧФ се превръща във ВЧФ, ЛФ или РФ, като z⁻¹ се замести с подходяща функция (Константинидес). При ЛФ и РФ заместването е с z⁻² → редът се удвоява.

Инвариантна импулсна характеристика ​

Друг начин: цифровата h(n) да е просто отчети от аналоговата, h(n) = T·hₐ(nT). Пример: T(s) = 2/(s + 2) при T = 0,1 s дава h(n) = 0,2·0,8187ⁿ. Но снимането на hₐ(t) внася aliasing (тема 1) – АЧХ не пада до нула при fs/2. Затова методът става само за НЧФ и ЛФ.

Инвариантна ИХ
h(n) = 0,2·0,8187ⁿ
051015202500,10,2n – отчетстойност
h(n)
АЧХ: не пада до 0 при fs/2 (aliasing)
00,20,40,60,8100,51Ω/π (1 = fd/2)|H|
АЧХ

Самопроверка ​

1. Кой прозорец спира най-дълбоко – правоъгълен или Блекман? Каква е цената?

Блекман (≈ 74 dB срещу ≈ 21 dB), но преходът е 3 пъти по-широк – трябват повече коефициенти.

2. Защо се прави предизкривяване при билинейното преобразуване?

То свива безкрайната аналогова ос в 0…fs/2 нелинейно (tg); без предизкривяване граничните честоти се изместват.

3. Защо елиптичният филтър изпълнява габарита с много по-нисък ред от Бътъруърт?

Позволява вълнички и в ЛП, и в ЛЗ – „изразходва“ целия допуск, вместо да е плосък.

4. Защо методът с инвариантна ИХ не става за ВЧФ?

Снимането на hₐ(t) огледува спектъра около fs/2; АЧХ на ВЧФ не пада до нула там, затова копията се застъпват (aliasing).