AD-átalakítók dinamikus tesztelése szinuszjellel
Elméleti háttér
Egy analóg-digitális átalakító dinamikus paramétereinek egy
részét időtartománybeli módszerek felhasználásával meg lehet határozni.
Ilyen pl. a görbeillesztés. A mérés során egy nagytisztaságú szinuszjelet adunk
az átalakító bemenetére, és eltároljuk a mintavett értékeket egy y
(y[n]) vektorban. A mérési eredményekre (ami egy számsorozat)
szinuszjelet illesztünk. Az illesztés tulajdonképpen nem más, mint a bemeneti
szinuszjel becslője. A mért értékek és a becsült értékek különbségéből lehet
következtetni az átalakító dinamikus paramétereire. A különbség alapján
számítható a hiba effektív értéke, amit összehasonlítva egy ideális átalakító
hibájával, az átalakító effektív bitszáma (effective number of bits,
Neff) és a SINAD (SIgnal-to-Noise And Distortion ratio) értéke
meghatározható.
Tegyük fel, hogy az átalakító bemenetére adott
jelből - ahol A a jel amplitúdója,
fi a jel frekvenciája, Φ a fázisa, ill. C az
ofszetje - M mintát veszünk, fs mintavételi
frekvenciával. Az y[n], n=1..M kimeneti mintákat tartalmazó
oszlopvektorra szinuszjelet kell illeszteni az időtartományban. Két eset
lehetséges: a jel frekvenciája ismert, vagy ismeretlen. Az első esetben 3
paramétert kell meghatározni (A, Φ, C) míg az utóbbi
esetben 4 paramétert (A, Φ, C, fi).
Tegyük fel, hogy a frekvencia ismert, és így szorítkozzunk a 3 paraméteres
illesztés esetére (megjegyzés: a kutatás szempontjából lényegesen érdekesebb, ha
nem ismert a frekvencia - lásd a kapcsolódó publikációkat). A legkisebb
négyzetes hibájú illesztés az alábbi költségfüggvény minimalizálásával kapható
meg
ahol , az ismeretlenek tartalmazó paramétervektor pedig
p=[Acos(Φ), -Asin(Φ), C]T.
Képezve a következő mátrixot:
a (2) egyenletben megadott költségfüggvény alakban írható,
amelynek minimumhelyén a paramétervektor a következőképpen kapható meg:
Megjegyzés: ha a mintavételezés koherens, azaz egész számú
periódust mintavételezünk a bemenő jelből, akkor a fenti megoldás zárt alakban
is előállítható:
ami egy előjeltől eltekintve megegyezik a diszkrét
Fourier-transzformáció adott bemenő frekvenciájú komponensének valós és képzetes
része, valamint a DC komponens kiszámításával.
A becsült paramétervektor ismeretében az amplitúdó, fázis és
ofszet becslője számítható ( ,
ha és ha , valamint ), így megkaptuk a
becsült bemeneti jelalak leírását is ( ). Ezt kivonva a
mért jelből, megkaphatjuk a hibavektort (residual).
Definíció szerint a SINAD (SIgnal-to-Noise And Distortion
ratio) megadja a jelteljesítmény, valamint a zaj és a harmonikusok együttes
teljesítményének az arányát:
![](../userfiles/sintest_kepek/sintest15.gif) ahol
azaz az illesztett szinuszjel és a mért minták vektorának
különbségéből képzett hibavektor (residual) varianciája. Mivel a SINAD fenti
definíciója a bemenő jel effektív értékéhez viszonyítja a zaj nagyságát, ezért
fontos, hogy az átalakító jól ki legyen vezérelve, de ne legyen túlvezérelve.
A hiba ismeretében az effektív bitszám is becsülhető, ahol a mért hiba
effektív értékét az ideális kvantálási hiba effektív értékével hasonlítjuk
össze:
ahol N az átalakító bitszáma, Q pedig a kód
nominális szélessége.
Az alábbi ábra érzékelteti a lépéseket egy ideális kvantáló
esetében (MATLAB szimuláció). Az eredeti szinuszjelet kvantáljuk, a kvantált
adatokra a fenti képletekkel illesztünk szinuszjelet, majd a kettő különbségét
képezve megkapjuk a maradék-vektort, ami ideális esetben csak az átalakító
kvantálási hibáját tartalmazza.
Gyakorlati eredmények
A kutatás kezdeti szakaszában elkészült a fentebb már említett
IEEE-STD-1241 szabvány szinuszillesztő rutinjainak MATLAB-implementációja. Ez
letölthető és használható a http://www.mit.bme.hu/projects/adctest/
címről. Az alábbi két kép a program be- és kimeneti ablakát mutatja.
A kutatás érdemi részében pedig a szabványban nem specifikált
jellemzők definiálása történt (pl. pontos leállási feltétel a bitszám
függvényében), illetve a nem ideális hatások vizsgálata folyik (pl. mekkora
hibát okoz, hogy a szinusz kvantálási hibája nem jól modellezhető
Gauss-eloszlással, ilyenkor ugyanis a legkisebb négyzetes illesztés nem a
legjobb becslő. Vagy: milyen hibát okoz, hogy a szinuszjel hisztogramja nem
egyenletes, ezért a szélein nagyobb súllyal vesszük figyelembe az átalakító
hibáit. Mit lehet tenni, hogy ezt kiküszöböljük, stb.)
Ajánlott publikációk:
T. Z. Bilau, T. Megyeri, A. Sárhegyi, J. Márkus,
and I. Kollár, "Four-parameter fitting of sine wave testing results:
Iteration and convergence," Computer Standards and
Interfaces, vol. 26, no. 1, pp. 51-56, Jan. 2004. |
Javaslatok a négyparaméteres illesztés javításához: kezdőérték
meghatározása interpolált FFT-vel; az ismeretlen frekvencia
meghatározásának korlátai a kvantálási hiba függvényében (parametrikus
levezetés és elméleti korlát), |
J. Márkus and I. Kollár, ADC
Test Data Evaluation Program for MATLAB, Budapest
University of Technology and Economics, Department of Measurement and
Information Systems, 2006. |
A három- és négyparaméteres szinuszillesztést demonstráló program. A
programban beállíthatók különböző iterációs paraméterek is: pl. leállási
feltétel, kezdőérték-számítási módszer (megadott, FFT,
IpFFT). |
További információ: Márkus János
|