Menü Bezárás

Digitális jelfeldolgozó #4

Az előző néhány cikkben kifejtettem a kulcsfontosságú algoritmusokat. Most egy kicsit gyakorlatiasabb rész fog következni.

A legelső fejezetben is szó volt már arról, hogy a mintavételezett jel spektruma periodikus lesz és csak akkor reprodukálható a jel a mintáiból, ha a sávszélességél legalább kétszeres frekvenciával mintavételezzük. A probléma ott keletkezik, hogy nem mondhatjuk:

Jó lesz az! Majd biztos csak 20 kHz-ig tart majd a spektrum…

A spektrum ugyanis nem üres. Ha mással nem, zajjal terhelt, ami ugyanúgy bele tud köpni a levesünkbe, hiszen a mintavételező áramkörünk nem tudja kiválogatni a hasznos jelet. Meg kell oldani tehát, hogy a kívánt sávszélesség felett már elhanyagolható nagyságú jelek legyenek, amelyek nem zavarnak bele a hasznos jel spektrumába.

A probléma megoldására terveznünk kell egy szűrőt, ami eltávolítja a nemkívánatos spektrumkomponenseket.

Másodfokú lengőtag

Ha szeretnénk tudni, hogy a frekvencia függvényében egy valamilyen rendszer hogyan viselkedik, akkor erre az átviteli karakterisztika ad választ. Egy alapvető átviteli karakterisztika az úgynevezett másodfokú lengőtag átviteli karakterisztikája.

\begin{align}
H\left(j\omega\right)&=\frac{1}{\left(j\frac{\omega}{\omega_{0}}\right)^{2}+2\zeta j\frac{\omega}{\omega_{0}}+1}
\end{align}

Ha ábrázoljuk az úgynevezett Bode-diagramon, akkor látható hogy az \(\omega_{0}\) vágási (vagy törésponti) frekvencia felett a rendszer elnyomja a spektrumkomponenseket.

Egy ilyen rendszert jellemeznek a nevezőben lévő polinom gyökei. Ezeket pólusoknak nevezzük. Ezek a pólusok felírhatók az alábbi módon.

\begin{align}
p_{1,2}&=-\omega_{0}\zeta\pm j\omega_{0}\sqrt{1-\zeta^{2}}
\end{align}

A későbbiekben a szükséges pólusokat fogjuk meghatározni (azoknak a valós és képzetes részét). Ebből kell majd a \(\zeta\) csillapítási tényezőt meghatározni.

\begin{align}
\zeta&=\frac{1}{\sqrt{1+\left(\frac{\Im{p}}{\Re{p}}\right)}}
\end{align}

A vágási frekvencia értéke a \(22 \textrm{kHz}\)-ből számítható. Egy szűrő esetén az átmeneti sáv meredekségét a pólusok száma (és elhelyezése) határozza meg. Esetünkben három póluspárt fogunk elhelyezni, ami elég meredek vágást tesz lehetővé.

 Minimalizálási feladat megoldása Csebisev-polinomokkal

Sikerült elég rémisztőre választani az alcímet. Mint már említettem a pólusok elhelyezkedésének is meghatározó a szerepe a szűrésben. A póluselrendezést Csebisev-polinomok alapján határozzuk meg és így kialakíthatunk egy inverz Csebisev szűrőt. Hogy mi a számítás menete, azt bízzuk a Matlab-ra. Ez a függvény a cheby2 függvény.

Adjuk meg a szűrő rendszámát, ami a pólusok száma (most itt hat). A zárósávi csillapítás legyen mondjuk \(40\textrm{dB}\). Ez azt jelenti, hogy minden komponens értékét ami a zárósávban van századára csökkenti. Meg kell még adni, hogy mekkora a vágási frekvencia (ez most ugye \(22 \textrm{kHz}\)). Figyeljünk oda, hogy a függvény körfrekvenciát vár (\(\omega=2\pi f\)). A függvény normálva kéri a frekvenciát, leosztva a mintavételi frekvenciával. Mi abszolút mértékben szeretnénk a meghatározni a szűrőt, ezért használjuk az ‘s’ kapcsolót.

>> [z,p,k] = cheby2(6,40,2*pi*22e3,'s')

z =

   1.0e+05 *

   0.0000 + 5.3408i
   0.0000 - 5.3408i
   0.0000 + 1.9549i
   0.0000 - 1.9549i
  -0.0000 + 1.4311i
  -0.0000 - 1.4311i


p =

   1.0e+05 *

  -1.2488 + 0.4727i
  -1.2488 - 0.4727i
  -0.6511 + 0.9197i
  -0.6511 - 0.9197i
  -0.1851 + 0.9756i
  -0.1851 - 0.9756i


k =

    0.0100

A “p” tömbben vannak a pólusok (a “z” tömbben az úgynevezett zérusok, erre most nincs szükség) és a “k” szám, a csillapítása a szűrőnek. Számunkra most a pólusok fontosak. Minden póluspárhoz meghatározhatjuk a csillapítási tényezőt (a fent látott összefüggés alapján):

>> pp = [p(1) p(3) p(5)]

pp =

   1.0e+05 *

  -1.2488 + 0.4727i  -0.6511 + 0.9197i  -0.1851 + 0.9756i

>> zeta = 1./sqrt(1+(imag(pp)./real(pp)).^2)

zeta =

    0.9353    0.5778    0.1864

Sallen-Key topológia

Most már csak ki kell találni, hogy ez hogyan is fog kinézni a valóságban? Egy lehetséges aktív szűrős megvalósítás, az úgynevezett Sallen-Key topológia.

 

A szokásos hálózatszámítási módszerekkel, rabszolga munka árán megmutatható, hogy ennek a rendszernek az átviteli karakterisztikája:

\begin{align}
H^{\textrm{SK}}\left(j\omega\right)=\left(1+\frac{R_{2}}{R_{1}}\right)\frac{1}{\left(j\omega RC\right)^{2}+2\left(1-\frac{R_{2}}{2R_{1}}\right)j\omega RC+1}
\end{align}

Ha összevetjük a fent tárgyalt lengőtaggal:

\begin{align}
\omega_{0}&=\frac{1}{RC}\rightarrow RC=\frac{1}{2\pi f_{0}}\\
\zeta&=1-\frac{R_{2}}{2R_{1}}\rightarrow \frac{R_{2}}{R_{1}}=2\left(1-\zeta\right)
\end{align}

>> ratio = 2*(1-zeta)

ratio =

    0.1295    0.8444    1.6273

A hatodfokú szűrő így:

*kép*

Válasszunk ellenállásokat az egyes fokozatokhoz. Most kulcsfontosságú a csillapítási tényezőhöz választani ezeket. Segítsük a tervezést azzal, hogy a nevezőknek minden esetben \(1\textrm{k}\Omega\).

\begin{align}
R_{11}&=R_{21}=R_{31}=1\textrm{k}\Omega\\
R_{12}&=129.5\Omega\rightarrow 120\Omega\\
R_{22}&=844.4\Omega\rightarrow 820\Omega\\
R_{32}&=1627.3\Omega\rightarrow 1.8k\Omega\\
\end{align}

A becslések miatt megváltoztak az ellenállás arányok.

>> new_ratio = [0.12 0.82 1.8]

new_ratio =

    0.1200    0.8200    1.8000

Az utolsó doboz egy korrekció, mert az aktív szűrő módosít a bemenet nagyságán. Vágási frekvencia alatt jó közelítéssel \(\left(1+\frac{R_{2}}{R_{1}}\right)\) az erősítés, ezt a szűrés után “vissza kell csinálni”.

\begin{align}
K = \frac{1}{\left(1+\frac{R_{12}}{R_{11}}\right)\left(1+\frac{R_{22}}{R_{21}}\right)\left(1+\frac{R_{32}}{R_{31}}\right)}
\end{align}

>> K=1/(1+new_ratio(1))/(1+new_ratio(2))/(1+new_ratio(3))

K =

    0.1752

Ezt a korrekciót egy feszültségosztóval fogjuk elvégezni (\(R_{01}\) és \(R_{02}\) ellenállásokon).

\begin{align}
K&=\frac{R_{02}}{R_{01}+R_{02}}\\
\frac{R_{01}}{R_{02}}&=\frac{1}{K}-1
\end{align}

>> R01pR02 = 1/K-1

R01pR02 =

    4.7075

Ez gyönyörűen szabvány ellenállásokból felépíthető.

Még egy gyors számítás. Határozzuk meg a kondenzátor és ellenállás értékét, ami beállítja vágási frekvenciát.

>> RC = 1/2/pi/22e3

RC =

   7.2343e-06

Ebből egy lehetséges választás a \(C=6.8\textrm{nF}\) és az \(R=1.2\textrm{k}\Omega\). Természetesen így nem pont \(22\textrm{kHz}\)-nél fog vágni a szűrő. Lássuk, akkor hol?

>> new_f0 = 1/1.2e3/6.8e-9/2/pi

new_f0 =

   1.9504e+04

A számítások szerint körülbelül \(19.5 \textrm{kHz}\)-nél lesz a tényleges törésponti frekvencia.

Szimuláció

A kapott eredményekből felállíthatunk egy szimulációt. Én ebben az esetben az LTSpice  XVII programot választottam. Ez egy ingyenes szoftver, bárki nyugodtan ismerkedhet vele, nagyon hasznos.

A szimulációban nem a tényleges műveleti erősítőket használtam, csak kiválasztottam egyet. Ezek után egy frekvenciatartománybeli vizsgálatot állítottam be, melynek az eredménye az alábbi lett:

A sok görbe (a bemenet, az egymást követő szűrőfokozatok és a kompenzálás) között jól látható, hogy a kimenet (lila) \(40\textrm{kHz}\) frekvenciánál, már  \(40\textrm{dB}\) csillapítást mutat, mint ahogyan azt meghatároztuk.

Related Posts

WordPress Appliance - Powered by TurnKey Linux