A "Digitális jelfeldolgozás DSP-jének modellezése MATLAB-ban" javasolt ciklusban a korábbi cikkek a digitális szűrők (DF), a FIR és az IIR, beleértve a fixpontos (FT) modellezését is, foglalkoztak. szoftver eszközök MATLAB.

Irodalom

  1. Ingle V., Proakis J. Digitális jelfeldolgozás MATLAB használatával. második kiadás. Thomson, 2006.
  2. Oppenheim A., Shafer R. Digitális jelfeldolgozás. M.: Technosfera, 2006.
  3. Sergienko AB Digitális jelfeldolgozás. 2. kiadás Szentpétervár: PÉTER, 2006.
  4. Solonina A. I., Ulakhovich D. A., Arbuzov S. M., Solovieva E. B. A digitális jelfeldolgozás alapjai. 2. kiadás Szentpétervár: BHV-Petersburg, 2005.
  5. Solonina A. I., Arbuzov S. M. Digitális jelfeldolgozás. Modellezés MATLAB-ban. Szentpétervár: BHV-Petersburg, 2008.
  6. Solonina A. Digitális jelfeldolgozás modellezése MATLAB-ban. 1. rész Optimális (Csebisev szerint) FIR szűrők szintézise MATLAB szoftverrel // Komponensek és technológiák. 2008. 11. sz.
  7. Solonina A. Digitális jelfeldolgozás modellezése MATLAB-ban. 2. rész. Optimális IIR szűrők szintézise MATLAB szoftverrel // Komponensek és technológiák. 2008. 12. sz.
  8. Solonina A. Digitális jelfeldolgozás modellezése MATLAB-ban. 3. rész A FIR és IIR szűrők felépítésének leírása a MATLAB-ban // Komponensek és technológiák. 2009. 1. sz.
  9. Solonina A. Digitális jelfeldolgozás modellezése MATLAB-ban. 4. rész Digitális fixpontos szűrők struktúráinak modellezése MATLAB szoftverrel: FIR szűrők jellemzőinek elemzése // Komponensek és technológiák. 2009. 2. sz.
  10. Solonina A. Digitális jelfeldolgozás modellezése MATLAB-ban. 5. rész Digitális fixpontos szűrők struktúráinak modellezése MATLAB szoftverrel: IIR szűrők jellemzőinek elemzése // Komponensek és technológiák. 2009. 3. sz.
  11. Solonina A. Digitális jelfeldolgozás modellezése MATLAB-ban. 6. rész Digitális fixpontos szűrők struktúráinak modellezése MATLAB szoftverrel: a hatás kvantálása és a válasz számítása // Komponensek és technológiák. 2009. 4. sz.
1 A Current Filter Information csoportban ez a következő üzenetnek felel meg: Source-Designed.
2 A Current Filter Information csoportban ez a következő üzenetnek felel meg: Source-Imported.

A. B. Sergienko. A jelfeldolgozási eszköztár áttekintése

A jelfeldolgozás mindig is a MATLAB rendszer egyik legfontosabb alkalmazási területe volt. Ezt elsősorban az bizonyítja, hogy a Signal Processing Toolbox az egyik első speciális csomag volt – már 1988-ban jelent meg, mindössze négy évvel maga a MATLAB rendszer létrehozása után.

A Signal Processing csomag a mai napig csaknem kétszáz, gondosan kidolgozott speciális funkciót tartalmaz, amelyek segítségével sokféle jelelemzési és jelfeldolgozási probléma megoldható.

A MATLAB 6.1 jelenleg terjesztett verziója (12.1-es kiadás) tartalmazza a Signal Processing csomag 5.1-es verzióját. A MATLAB 6.5 közelgő kiadása (13-as kiadás) tartalmazza a Signal Processing csomag 6.0-s verzióját.

Alapján hivatalos dokumentáció Funkcióinak csomagja húsz kategóriába sorolható. Az alábbi listában ezek a kategóriák nagyobb csoportokba vannak csoportosítva. Tehát céljuk szerint a Signal Processing csomag funkciói a következőképpen oszthatók fel:

Ezenkívül a csomag három grafikus környezetet tartalmaz:

A MATLAB és bővítménycsomagjai elsősorban a digitálisra koncentrálnak jelfeldolgozás, ezért az analóg áramkörök számításával kapcsolatos funkciókat kiegészítőnek tekintjük. Főleg más funkciókból való meghívásra szolgálnak, amelyek analóg prototípusokat használnak a digitális szűrők szintetizálása során. Ezek a funkciók azonban önmagukban is nagyon hasznosak lehetnek. Viszont több csoportra oszthatók.

Az első csoport az analóg prototípus szűrők számítására szolgáló függvények, vagyis az 1 rad/s vágási frekvenciájú aluláteresztő szűrők. A függvények nullákat, pólusokat és szűrőerősítéseket adnak vissza, és lehetővé teszik a prototípus Butterworth szűrők kiszámítását ( ütőcsap), az első típusú Csebisev ( cheb1ap), a második típusú Csebisev ( cheb2ap), elliptikus (Cauer) ( ellipap) és Bessel ( besselap).

A második csoport az analóg szűrőkonverziós funkciók, amelyek lehetővé teszik az LPF prototípus átalakítását LPF-vé, eltérő vágási frekvenciájú ( lp2lp), egy adott vágási frekvenciájú felüláteresztő szűrőbe (HPF) lp2hp), adott átlagos frekvenciájú és sávszélességű sávszűrőbe ( lp2bp) és adott átlagos frekvenciájú és stopsávszélességű rovátkás szűrőbe ( lp2bs). A függvények elfogadhatnak és visszaadhatnak szűrőleírásokat az átviteli függvény számláló- és nevezőpolinomjainak együtthatóinak vektoraiként, vagy állapottér-paraméterekként.

A harmadik csoport - meghatározott paraméterekkel rendelkező analóg szűrők kiszámítására szolgáló funkciók. A számítás során az első két csoport függvényeit hívják. A számításhoz szükséges kiindulási adatkészlet tartalmazza a szűrő sorrendjét, típusát (LPF, HPF, sáváteresztő vagy bevágás), frekvenciát vagy több vágási frekvenciát, valamint (prototípustól függően) a frekvenciamenet hullámzási paramétereit (AFC). ). Vannak funkciók a Butterworth-szűrők kiszámításához ( vaj), az első típusú Csebisev ( cheby1), a második típusú Csebisev ( cheby2), elliptikus (Cauer) ( elliptikus) és Bessel ( önmaga). Mindezek a funkciók, kivéve a funkciót önmaga, diszkrét szűrők kiszámítására is használható (lásd alább). A számítás analóg változatának jele az "s" karakterlánc utolsó bemeneti paramétere.

A negyedik csoport - a szükséges szűrősorrend meghatározására szolgáló funkciók a megadott frekvenciaválasz-paraméterek szerint (áteresztő- és leállítási sávok vágási frekvenciái, valamint megengedett hullámzások az áteresztő- és leállítási sávokban). Minden szűrőtípusnak megvan a saját funkciója a kívánt sorrend meghatározásához: a Butterworth szűrőhöz - csikk, az első típusú Csebisev szűrőhöz - cheb1ord, a második típusú Csebisev szűrőhöz - cheb2ord, elliptikus szűrőhöz - ellipord. Az előző csoport függvényeihez hasonlóan ezek a függvények is lehetővé teszik a diszkrét szűrők szükséges sorrendjének meghatározását (lásd alább). A számítás analóg változatának jele az "s" karakterlánc utolsó bemeneti paramétere.

Az ötödik csoport - az analóg lineáris rendszerek leírásának formáinak átalakítási funkciói. Analóg rendszerek esetén négy ilyen leírási módszer támogatott:

A Signal Processing csomag olyan funkciókkal rendelkezik, amelyek megvalósítják az analóg rendszerek e négy ábrázolási formájának kölcsönös transzformációját (csak a funkció maradékot, amely pólusokkal és maradékokkal dolgozik, nem a Signal Processing csomaghoz, hanem a MATLAB mag könyvtárhoz tartozik). Ezeket a funkciókat a következő táblázat tartalmazza.

végső formája Transzferfüggvény polinomiális együtthatók Nullák és pólusok Pólusok és levonások Állami tér
eredeti forma
tf2zp maradékot tf2ss
Nullák és pólusok zp2tf zp2ss
Pólusok és levonások maradékot
Állami tér ss2tf ss2zp

maradékot mindkét irányba konvertálható. A transzformáció irányát a bemeneti és kimeneti paraméterek száma határozza meg.

A táblázatban felsorolt ​​függvények, kivéve a függvényt maradékot, diszkrét rendszerek transzformációját is végrehajthatja, mivel az analóg és a diszkrét rendszerek transzformációs képlete megegyezik.

Végül a hatodik csoportnak tartalmaznia kell az egyetlen függvényt frekv, amely lehetővé teszi egy analóg lineáris rendszer amplitúdó- és fázisfrekvenciás jellemzőinek (AFC és PFC) kiszámítását vagy grafikus megjelenítését. A kiindulási adatok a rendszer átviteli függvényének számlálója és nevezője polinomjainak együtthatói.

Példaként az analóg függvények alkalmazására számítsunk ki egy 4-rendű elliptikus aluláteresztő szűrőt 3 kHz-es vágási frekvenciával, 1 dB áteresztő sávban és 20 dB-es leállítási sávelutasítással, majd ábrázoljuk annak értékét. frekvencia és fázis válasz. .

Ellip(4, 1, 20, 2*pi*3000, "s"); % szűrő számítás
f = 0:10:10000; % frekvenciavektor a frekvencia- és fázisválasz kiszámításához
h = freqs(b, a, 2*pi*f); % komplex nyereség
részterület(2, 1, 1)

rács
részterület(2, 1, 2)
plot(f, unwrap(angle(h))*180/pi) % PFC plot (fokban)
rács

A példakódban használt függvény kibont 360°-kal kiküszöböli a jelentéktelen ugrásokat a PFC-ben.

A függvények e kategóriája meglehetősen sok, és a diszkrét lineáris rendszerek elemzésének különféle eszközeit kombinálja - általában az átviteli függvény számlálójának és nevezőjének polinomjainak együtthatóinak vektoraiként ábrázolva. z-régiók).

Funkció freqz a függvény diszkrét analógja frekv, lehetővé teszi a komplex átviteli együttható kiszámítását vagy egy diszkrét rendszer frekvencia- és fázisválaszának ábrázolását. A kiindulási adatok a rendszer átviteli függvényének számlálója és nevezője polinomjainak együtthatói.

Hasonló a funkcióhoz freqz futó funkció grpdelay, amely lehetővé teszi a diszkrét szűrő által bevezetett csoportkésleltetés frekvenciafüggésének kiszámítását vagy grafikus megjelenítését.

Funkció impz egy diszkrét rendszer impulzusválaszának kiszámítására vagy grafikus megjelenítésére tervezték. A kiindulási adatok az előző függvényekhez hasonlóan a rendszerátviteli függvény számlálója és nevezője polinomjainak együtthatói.

Funkció zplane lehetővé teszi a rendszer nulláinak és pólusainak megjelenítését a komplex síkon, emellett egy egységkört ábrázol, amely korlátozza a pólusok helyének megengedett területét fenntartható diszkrét rendszer. A kiindulási adatok lehetnek a számláló és nevező polinomok együtthatóinak vektorai, vagy közvetlenül a rendszerátviteli függvény nullák és pólusok vektorai.

Funkció szűrő norma lehetővé teszi a számítást norma diszkrét szűrő. Ezt a paramétert például a szekvenciális (kaszkád) formában megvalósított szűrő egyes szakaszaihoz tartozó skálázási tényezők kiválasztásakor használják a kerekítési hibák csökkentése érdekében. Két lehetőség támogatott: 2-norm és -norm. 2-norma az rms a szűrő frekvenciamenetének értéke (vagy ami megegyezik, a szűrő impulzusválaszának mintái négyzetösszegének gyöke), a -norma pedig maximális frekvencia válasz értéke.

Funkció fvtool lényegében egy grafikus környezet, amely a diszkrét rendszerek jellemzőinek elemzésére és megjelenítésére szolgál (Filter Visualization Tool). Azonban a csomagban lévő többi grafikus környezettől eltérően, fvtool tényleg funkció, mert meghívásakor bemeneti paraméterek megléte szükséges - az elemzett szűrő átviteli függvényének számlálójának és nevezőjének polinomjainak együtthatói. Ennek a funkciónak egy lényeges előnye a jellemzők egyidejű megtekintésének képessége számos szűrők. GUI Ez a funkció gyakorlatilag ugyanaz, mint az FDATool szűrőelemző és szintézis környezetben. Az alábbiakban egy függvényhívás példája látható fvtoolés az általa létrehozott grafikus ablak a szűrő által bevezetett csoportkésleltetés frekvenciafüggését mutató módban.

b = ;
a = ;
fvtool(b, a)

Egy nagy csoportot alkotnak a diszkrét rendszerek leírási formáit átalakító függvények. A diszkrét rendszerek több ábrázolási formáját támogatják, mint az analógoknál:

  • A rendszerátviteli függvény számlálójának és nevezőjének polinomjainak együtthatói.
  • Nullák, pólusok és rendszererősítés (átviteli függvény faktorizálás).
  • Pólusok és maradékok (a rendszer átviteli függvényének ábrázolása egyszerű törtek összegeként).
  • Állapottér paraméterei.
  • Ábrázolás szekvenciálisan (lépcsőzetes) másodrendű szakaszok halmazaként.
  • Ábrázolás rácsos vagy rácsos-létraszerkezetben.

A különböző ábrázolási formák közötti konverziót végrehajtó függvényeket a következő táblázat sorolja fel.

végső formája Transzferfüggvény polinomiális együtthatók Nullák és pólusok Pólusok és levonások Állami tér A második rend szakaszai rácsszerkezet
eredeti forma
Transzferfüggvény polinomiális együtthatók tf2zp maradékot tf2ss tf2sos tf2latc
Nullák és pólusok zp2tf zp2ss zp2sos
Pólusok és levonások maradékot
Állami tér ss2tf ss2zp ss2sos
A második rend szakaszai sos2tf sos2zp sos2ss
rácsszerkezet latc2tf

Amint a táblázatból látható, ugyanaz a funkció maradékot(ez a függvény analógja maradékot, amelyet úgy terveztek, hogy diszkrét rendszerek leírásával dolgozzon) mindkét irányban átalakulhat. A transzformáció irányát a bemeneti és kimeneti paraméterek száma határozza meg.

Két további függvény manipulálja a polinomiális együtthatóvektorokat a polinomgyökök helyzetének módosításával a komplex síkban. Funkció polyscale megszorozza a feldolgozott polinom összes gyökét az adott együtthatóval és a függvénnyel polystab a polinom összes gyökét az egységkörön belül helyezi el - ehhez az abszolút értékben egységet meghaladó gyököket megfordítják, azaz moduljaikat reciprokokkal helyettesítik, és fázisaik előjelét megfordítják.

A kategória többi funkciója segédfunkció. Funkció freqspace kiszámítja az egyenletesen elosztott frekvenciaértékek vektorát, a függvényt freqzplot frekvencia-válasz grafikonok és a függvény ábrázolására szolgál kibont lehetővé teszi a fázis-frekvencia karakterisztikák jelentéktelen ugrásának kiküszöbölését 2p-vel, megkeresve ezeket az ugrásokat a vektor elemei között, és a vektor szükséges töredékeit 2 p-vel eltolva. n.

A lineáris diszkrét szűrés működését általában a következőképpen írjuk le:

Itt x(k)- minták a bemeneti jelből, y(k)- a kimeneti jel leolvasása, a iés b j- állandó együtthatók. Maximum számok més n szűrőrendnek nevezzük.

Előfordulhat, hogy a korábbi kimeneti minták nem használhatók a számításokhoz, akkor az összes i = 0és a szűrőt hívják nem rekurzív vagy transzverzális. Ha korábbi kimeneti mintákat használunk, a szűrőt rekurzívnak mondjuk.

A lineáris diszkrét szűrés tetszőleges adatfeldolgozási technológiákra utal, így a megfelelő függvény az szűrő- nem a Signal Processing csomaghoz tartozik, hanem a MATLAB kernelbe van beépítve. Funkció szűrő2, amely szintén az alapvető MATLAB könyvtárhoz tartozik, kétdimenziós diszkrét szűrést valósít meg.

Mivel az állandó együtthatójú szűrő lineáris stacionárius diszkrét rendszer, válasza tetszőleges bemeneti jelre a következőképpen ábrázolható. diszkrét konvolúció bemeneti jel szűrő impulzusválaszsal:

Itt h(k)- a szűrő impulzusválaszának leolvasása. Az impulzusválasz a szűrő válasza a bemenetre alkalmazott egységérték egyetlen mintájára.

Természetesen a konvolúciós képletet használó számítások a gyakorlatban csak a szűrő impulzusválaszának véges hosszúságára valósíthatók meg. Ezt a műveletet a funkció hajtja végre konv; valamint a diszkrét szűrési algoritmus megvalósítása, nem a Signal Processing csomaghoz tartozik, hanem az alapvető MATLAB könyvtárhoz. Valójában a conv függvény megvalósítása a függvény meghívására redukálódik szűrő vonatkozóval bemeneti paraméterek. Funkció konv2 kétdimenziós diszkrét konvolúciót valósít meg. A MATLAB alapkönyvtár másik funkciója az dekonv- megvalósítja a konvolúció inverzióját, lehetővé téve, hogy a konvolúció eredménye és az egyik bemeneti vektor meghatározza a második bemeneti vektort.

Fent emlitett alapvető funkciókat A diszkrét szűrés, mint már említettük, a MATLAB központi könyvtárához tartozik; valójában a Signal Processing csomag olyan funkciókat tartalmaz, amelyek konkrétabb szűrési feladatokat oldanak meg.

Először is meg kell jegyezni, hogy a funkció szűrő lehetővé teszi a szűrő kezdeti és végső belső állapotainak elérését, így lehetővé teszi a blokkjel-feldolgozás megszervezését. Néha szükségessé válik a szűrő belső állapotvektorának kialakítása bizonyos számú korábbi bemeneti és kimeneti minta ismeretében. Ez a számítás a függvény segítségével történik filtikus.

Funkció fftfilt diszkrét szűrést valósít meg gyors Fourier transzformációval (FFT) jelblokkolással kombinálva. Csak nem rekurzív szűrők valósíthatók meg ilyen módon. A függvényművelet eredménye egybeesik (számítási hibákig) a függvény segítségével megvalósított hagyományos szűrés eredményeivel szűrő. Az FFT szűrés számítási sebessége azonban lényegesen gyorsabb lehet, különösen, ha a bemenő jel hossza sokszorosa a szűrő impulzusválaszának hosszának (vagy fordítva).

Funkció szűrőszűrő lehetővé teszi a hagyományos szűréssel bevezetett fáziseltolódás kompenzálását (más szóval, adott funkciót szűrést valósít meg időkésleltetés nélkül). Ez kétirányú jelfeldolgozással történik. A szűrés első lépése a szokásos módon történik, majd a kapott kimeneti jelet másodszor is szűrjük - a végétől az elejéig. Emiatt a fáziseltolások kompenzálódnak, és a kapott szűrősorrend megduplázódik. Megjegyzendő, hogy az eredményül kapott (két szűrési lépésnek megfelelő) szűrő nem felel meg az oksági feltételnek.

A magasrendű rekurzív szűrők gyakorlati megvalósítása során gyakran sorba kapcsolt másodrendű szakaszokként jelennek meg. Ez lehetővé teszi a szűrőegyütthatók kerekítési és kvantálási hibáiból adódó számítási hibák csillapítását. Az ilyen jellegű hibák elemzésére szolgáló eszközök a Filter Design csomagban vannak koncentrálva, a Signal Processing csomagban pedig van egy funkció sosfilt, amely lehetővé teszi a diszkrét adatszűrés megvalósítását egy másodrendű szakaszként ábrázolt szűrő használatával.

Egy másik lehetséges diszkrét szűrőstruktúra a rácsszerkezet. A szűrés megvalósításához egy ebben az űrlapon bemutatott szűrővel a függvény latcfilt.

Funkció medfilt1, amely egydimenziós medián szűrést valósít meg, nemlineáris szűrési algoritmusokra utal. Működésének lényege, hogy a bemeneti jelre egy adott hosszúságú csúszóablak kerül, az ablakon belüli minták sorrendbe kerülnek, és a rendezett ablak közepéről származó értéket adjuk vissza kimeneti mintaként (vagy fél- a középhez legközelebb eső két elem összege, ha az ablak páros hosszúságú). A medián szűrést például az impulzuszaj (kattanás) kiküszöbölésére használják az audiojelek feldolgozása során. Funkció medfilt2, amely a medián szűrés kétdimenziós változatát valósítja meg, az Image Processing csomagban található.

Funkció sgolayfilt diszkrét szűrést hajt végre a Savitsky-Golay szűrő segítségével. Lényege abban rejlik, hogy a bemeneti jelet adott méretű blokkokra osztják, és minden blokkon belül a jelnek egy adott mértékű polinomiális polinomiális közelítését hajtják végre a minimális átlagos négyzetes hiba kritériuma szerint. Ha a polinomok fokszáma eggyel kisebb, mint a blokkok mérete, a kimenet megegyezik a bemenettel; alacsonyabb fokú polinomok esetén a jel simított lesz. A Savitsky-Golay szűrőket a jelek zajtól való "megtisztítására" használják.

A diszkrét szűrőszintézis alatt az ilyen együtthatókészletek megválasztását értjük ( a i) és ( b i), amelynél a kapott szűrő jellemzői megfelelnek a meghatározott követelményeknek. Szigorúan véve a tervezési feladathoz tartozik a megfelelő szűrőszerkezet kiválasztása is, figyelembe véve a számítások véges pontosságát. Ez különösen igaz a szűrők "hardverben" történő megvalósítására - speciális LSI vagy digitális jelfeldolgozók használatával. A számítások véges pontosságához kapcsolódó hatások a Filter Design csomag funkcióival elemezhetők; a szűrőszintézis funkciók nem veszik figyelembe ezeket a hatásokat.

A Signal Processing csomag számos olyan funkciót tartalmaz, amelyek különféle diszkrét szűrőszintézis-algoritmusokat valósítanak meg. Ezeknek a függvényeknek a főbb jellemzőit táblázat formájában mutatjuk be, majd néhány további megjegyzést teszünk.

Funkció Szűrő típusa frekvencia válasz Szintézis módszer
vaj Rekurzív Butterworth Bilineáris z-transzformáció
cheby1 Rekurzív Csebisev az első fajtából Bilineáris z-transzformáció
cheby2 Rekurzív Csebisev a második fajtából Bilineáris z-transzformáció
elliptikus Rekurzív Cauera (elliptikus) Bilineáris z-transzformáció
bilineáris Rekurzív Bilineáris z-transzformáció
impinvar Rekurzív Önkényes analóg prototípus Invariáns impulzusválasz transzformáció
yulewalk Rekurzív Darabosan lineáris Autoregresszív módszer
invfreqz Rekurzív Ingyenes Az átviteli függvény számlálója és nevezőjének szorzata és a kívánt frekvenciamenet közötti különbség minimalizálása
prony Rekurzív Szintézis adott impulzusválaszból Exponenciális Prony-közelítés
fenyő1 nem rekurzív Többsávos
fenyő2 nem rekurzív Darabosan lineáris Inverz Fourier transzformáció Windows használatával
firls nem rekurzív A négyzetes hibagyök minimumra csökkentése
fircls nem rekurzív Darabosan állandó
fircls1 nem rekurzív LPF, HPF RMS hiba minimalizálása maximális eltérés korlátozással
firrcos nem rekurzív LPF koszinusz simítás
intfilt nem rekurzív LPF Minimális közelítés
remez nem rekurzív Darabosan lineáris, átmeneti csíkokkal Minimális közelítés
krémek Nem rekurzív (beleértve a nemlineáris PFC-t és a komplex együtthatókat) Darabosan lineáris, átmeneti csíkokkal Minimális közelítés

A diszkrét szűrőszintézis módszerek két részre oszthatók nagy csoportok: analóg prototípussal és anélkül. Analóg prototípus szűrő használata esetén az s-tartományban meghatározott analóg átviteli függvényt valamilyen módon reprezentálni kell a z-tartományban meghatározott diszkrét átviteli függvénybe. A Signal Processing csomag két módszert valósít meg egy ilyen transzformációhoz: az invariáns impulzusválasz módszert és a bilineáris z-transzformációs módszert. Mindkét módszer rekurzív diszkrét szűrőket eredményez.

Az invariáns impulzusválasz módszerének alkalmazásakor az analóg prototípus impulzusválasza diszkretizált. Az így kapott diszkrét szűrő frekvenciaválasza ennek megfelelően az analóg prototípus periodikusan ismétlődő frekvenciaválasza. Emiatt ez a módszer nem alkalmas felüláteresztő szűrők és általában olyan szűrők szintézisére, amelyek átviteli együtthatója a frekvencia növekedésével nem nullázódik. Az invariáns impulzusválasz módszer a jelfeldolgozási csomagban valósul meg a függvény segítségével impinvar.

A bilineáris z-transzformációs módszer alkalmazásakor az analóg prototípus jellemzői csak a frekvenciatengely mentén torzulnak. Ebben az esetben az analóg szűrő frekvenciatartománya (nullától a végtelenig) a diszkrét szűrő működési frekvenciatartományává alakul (nullától a mintavételi frekvencia feléig). A frekvenciatengely-transzformációt az arctangens függvény írja le, így a mintavételezési frekvenciánál jóval alacsonyabb frekvenciákat megközelítőleg lineárisan konvertáljuk. Ezt a módszert a függvény segítségével valósítjuk meg bilineáris tetszőleges analóg prototípushoz. Ezen kívül kész funkciók állnak rendelkezésre alu- és felüláteresztő szűrők, sáv- és rovátkás szűrők kiszámításához bilineáris z-transzformációs módszerrel Butterworth, Chebyshev első és második típusú AFC és Cauer (elliptikus szűrők) analóg prototípusok használatával. ). Ez a funkciótól függ vaj, cheby1, cheby2és elliptikus. Mindezek a függvények az analóg szűrők kiszámítására is használhatók (lásd korábban). A diszkrét számítási változat jele az "s" karakterlánc hiánya a bemeneti paraméterek listájában. Vannak olyan funkciók is, amelyek meghatározzák a szűrők szükséges sorrendjét adott paramétereket AFC (az áteresztő és késleltető sávok határfrekvenciái, valamint az ezekben a sávokban megengedett hullámosság). Ez a funkciótól függ buttord, cheb1ord, cheb2ord, ellipord. Csakúgy, mint a szűrőszintézis funkciók, ezek a funkciók lehetővé teszik az analóg szűrők kívánt sorrendjének meghatározását is (lásd korábban). A diszkrét számítási változat jele az "s" karakterlánc hiánya a bemeneti paraméterek listájában.

Példaként szintetizálunk egy negyedrendű elliptikus aluláteresztő szűrőt, amely ugyanazokkal a paraméterekkel rendelkezik, mint az előző példák egyikében szereplő analóg szűrő (vágási frekvencia 3 kHz, frekvenciaválasz hullámosság az áteresztő sávban 1 dB és jelelutasítás a leállítási sávban 20 dB). A mintavételezési frekvenciát 12 kHz-nek vesszük. Szintézis után a függvény segítségével ábrázoljuk a kapott szűrő frekvencia- és fázisválaszát freqz.

    Fs = 12000; % mintavételi gyakoriság
    F0 = 3000; % vágási frekvencia
    = ellip(4, 1, 20, F0/Fs*2); % szűrő számítás
    freqz(b, a, , Fs); % grafikon kimenet

Azokat a szintézis módszereket, amelyek nem használnak analóg prototípust, közvetlennek nevezzük. Ezek viszont szintén két csoportra oszthatók: rekurzív és nem rekurzív szűrők szintetizálásának módszerei.

A nem rekurzív szűrők közvetlen szintézis funkciói a következők:

  • Olyan függvények, amelyek a szűrők szintézisét a kívánt frekvenciamenet inverz Fourier-transzformációjával valósítják meg, majd a kapott impulzusválaszt valamilyen súlyfüggvénnyel (ablak) megszorozzák, hogy csillapítsák a Gibbs-effektus miatt megjelenő frekvencia-válasz hullámzást. Ezek a jellemzők fenyő1és fenyő2. Ez magában foglalja az aluláteresztő szűrő szintézis funkcióját is a frekvenciamenet koszinusz simításával - firrcos. Ezen kívül a funkció kaiserord lehetővé teszi az adott frekvenciaválasz paraméterek szerint a szükséges szűrési sorrend becslését a szintézis során a Kaiser ablak segítségével.
  • Olyan függvények, amelyek megvalósítják a kapott szűrő frekvenciamenetének szórásának minimalizálását az adotttól. Ezek a jellemzők firls, firclsés fircls1. Az utolsó két függvény az optimalizálási feladatot az adotttól való maximális frekvenciaválasz eltérés korlátozásával oldja meg. Ezzel elkerülhető a nagy frekvenciaválasz csúcsok megjelenése az átmeneti sávok közelében.
  • A minimax optimalizációt megvalósító függvények, vagyis a kapott szűrő frekvenciaválaszának az adotttól való csúcseltérésének minimalizálása. Az eredmény egyenletes frekvenciaválasz hullámzással rendelkező szűrők. Ez a csoport funkciókat tartalmaz remez (szabványos változat Remez módszer, amelyet a Signal Processing csomag legelső verzióiban valósítottak meg) és krémek(egy kiterjesztett változat, amely támogatja a nemlineáris fázisválaszú és komplex együtthatós szűrők szintézisét). Ezen kívül a funkció remezord Lehetővé teszi a szűrő szükséges sorrendjének becslését a szintézisben Remez módszerrel az adott frekvenciaválasz paraméterek szerint.

Példaként egy 32. rendű, nem rekurzív LPF-et szintetizálunk Remez módszerrel, ugyanazzal a vágási és mintavételi frekvenciával, mint az előző példában (vágási frekvencia 3 kHz, mintavételi frekvencia 12 kHz). A stopsáv kezdetét 3,5 kHz-re állítottuk. A szintézis után ábrázoljuk az impulzusválasz grafikonokat, valamint a kapott szűrő frekvenciaválaszát (a szűrő PFC-je lineáris, így nincs értelme ábrázolni). A frekvenciaválasz lineáris skálán jelenik meg a függőleges mentén, hogy egyértelműen demonstrálja pulzációinak egyenletességét.

    Fs = 12000; % mintavételi gyakoriság
    F0 = 3000; % vágási frekvencia
    F1=3500; % stopband start
    b = remez(32, , ); % szűrő számítás
    impz(b) % impulzusválasz grafikon
    = freqz(b, 1, , Fs); % komplex nyereség
    figurák
    plot(f, abs(h)) % frekvenciaválasz grafikon
    rács

A rekurzív szűrők közvetlen szintézis funkciói a következők:

  • yulewalk- rekurzív szűrő szintézise tetszőleges darabonkénti lineáris frekvenciamenettel Yule-Walker módszerrel.
  • invfreqz- ezt a funkciót a rendszerek azonosításának problémájának megoldására tervezték, lehetővé teszi egy diszkrét rendszer átviteli függvényének számlálójának és nevezőjének együtthatóinak meghatározását ennek az átviteli függvénynek a különböző frekvenciákon lévő értékkészletével.

Végezetül felsorolunk néhány olyan funkciót, amelyek nem szerepelnek a fent felsorolt ​​csoportokban. Funkció maxflatáltalánosított Butterworth szűrő szintézisére szolgál (ilyen szűrőknél az átviteli függvény nulláinak száma meghaladja a pólusainak számát). Funkció intfilt interpoláció és tizedelés végrehajtásakor a jel szűrésére tervezett szűrők szintézisét végzi. A vektorkonvolúciós művelet vektor-mátrix szorzatként ábrázolható, és a szorzatban szereplő mátrix a függvény segítségével kiszámítható convmtx. Végül a funkció sgolay elvégzi a Savitsky-Golay simítószűrő szintézisét. Mivel a fent leírtak szerint a Savitzky-Golay szűrő egyedi jelblokkokat dolgoz fel, az ilyen szűrő nem egy álló rendszer. Ezért a függvény sgolay az ekvivalens nem rekurzív szűrő időben változó együtthatóinak egész számmátrixát adja vissza.

A Signal Processing csomagon kívül számos különálló szűrőszintézis funkció érhető el a Kommunikációs és Filter Design csomagokban.

A „spektrális elemzés” szavak sok MATLAB-felhasználó fejében szorosan kapcsolódnak a funkcióhoz fft(lásd alább a "Diszkrét jelek transzformációinak függvényei" részt), amely diszkrét Fourier transzformációt (DFT) hajt végre. Ez azonban csak egy-egy lineáris transzformáció, adás teljesítmény determinisztikus jel a frekvenciatartományban. Ha az elemzett jel az véletlen, csak neki van értelme fokozat spektrális sűrűség erő, amelynek kiszámításához így vagy úgy kell átlagolni a rendelkezésre álló adatokat. Ezen kívül bizonyos esetekben ismerünk néhányat további információ az elemzett jelről, és ezt az információt kívánatos figyelembe venni a spektrális elemzés során.

A véletlen jelek spektrális elemzésének módszerei két nagy osztályra oszthatók - nem paraméteres és parametrikus. NÁL NÉL nem paraméteres(nem paraméteres) módszerek csak az elemzett jel mintáiban található információkat használják fel. Parametrikus(paraméteres) módszerek feltételezik valamilyen statisztika jelenlétét modellek véletlenszerű jel, és a spektrális analízis folyamata ebben az esetben magában foglalja a meghatározást paramétereket ezt a modellt. A „modell-alapú spektrumelemzés” (Model-Based Spectrum Analysis, MBSA) kifejezést is használják.

A Signal Processing csomag olyan függvényeket tartalmaz, amelyek a spektrális elemzés különböző módszereit valósítják meg, mind a paraméteres, mind a nem paraméteres (ismét hangsúlyozni kell, hogy a spektrális elemzés itt a becslést jelenti véletlenszerű folyamat teljesítményspektrális sűrűsége). Ezen kívül vannak olyan függvények, amelyek a véletlenszerű diszkrét jelek egyéb átlagos jellemzőinek meghatározására szolgálnak.

Egy diszkrét véletlenszerű folyamat spektrális jellemzőinek meghatározásához kiszámítjuk a fragmentum hosszában korlátozott átlagos teljesítményspektrumát, majd a töredék hossza a végtelenbe hajlik:

. (1)

Itt x(k) - a véletlenszerű folyamat leolvasásai, T- mintavételi időszak. Az overline a megvalósítások együttesének átlagolását jelöli.

Ezenkívül ez a spektrum egy véletlenszerű folyamat korrelációs függvényében fejezhető ki:

. (2)

Ez a kifejezés a Wiener-Khinchin tétel diszkrét analógja: egy diszkrét véletlenszerű folyamat spektruma a korrelációs függvényének Fourier-transzformációja.

Mint már említettük, ha nem paraméteres módszereket használunk egy véletlenszerű folyamat spektrumának kiszámítására, csak a jelmintákban lévő információkat használjuk fel, minden további feltételezés nélkül. Három ilyen módszert valósít meg a Signal Processing csomag - a periodogram, a Welch-módszer és a Thomson-módszer.

A periodogram a teljesítményspektrális sűrűség becslése, amelyet a következőből kapunk N visszaszámlálás egy megvalósítás véletlenszerű folyamat az (1) definíció szerint (természetesen nem a határérték felvételével, hanem véges számú tag átlagolásával). Ha a spektrum kiszámításához súlyozási függvényt (ablak) használunk, akkor a kapott teljesítményspektrum becslést hívjuk meg módosított periodogram(módosított periodogram):

A (2) reláció csak végtelen számú felhasznált mintára teljesül, tehát bármely végesre N a teljesítményspektrális sűrűség periodogram becslése az kiszorított- kiderül, hogy a (2) összegen belül a jelkorrelációs függvényt megszorozzuk egy háromszögsúlyfüggvénnyel. Ezenkívül kimutatható, hogy a periodogram nem konzisztens becslése a teljesítményspektrális sűrűségnek, mivel diszperzió egy ilyen becslés összehasonlítható bármely matematikai elvárás négyzetével N. A felhasznált minták számának növekedésével a periodogram értékei egyre gyorsabban kezdenek ingadozni - grafikonja egyre szaggatottabbá válik.

A Signal Processing csomagban a periodogram számítása (beleértve a módosítottat is) a függvény segítségével történik. periodogram.

A periodogram szabálytalanságának csökkentése érdekében valamilyen átlagolást kell alkalmazni. Bartlett azt javasolta, hogy az elemzett jelet osszák fel nem átfedő szegmensekre, minden szegmenshez számítsanak ki egy periodogramot, majd ezeket a periodogramokat átlagolják. Ha a jel korrelációs függvénye a szegmens időtartama alatt elhanyagolható értékekre csökken, akkor az egyes szegmensek periodogramja függetlennek tekinthető. Welch két fejlesztést hajtott végre Bartlett módszerén: súlyfüggvényt használt, és a jelet felosztotta átfedő töredékek. A súlyozási függvény használata lehetővé teszi a spektrum szórásának gyengítését és a kapott teljesítménysűrűségi spektrum becslésének torzításának csökkentését a felbontás enyhe romlása árán. A szegmensek átfedését a számuk növelése és a becslési szórás csökkentése érdekében vezetjük be.

A Welch-módszerrel végzett számítások (más néven átlagolt módosított periodogramm módszer) a következőképpen szerveződnek: a jelminták vektorát átfedő szegmensekre osztjuk, minden szegmenst megszorozunk a használt súlyfüggvénnyel, módosított periodogramokat a súlyozott szegmensekre, a periodogramokat. az összes szegmens átlagolása .

A Welch-módszer a spektrális elemzés legnépszerűbb periodogramos módszere. A Signal Processing csomagban a funkció segítségével valósítják meg pwelch.

A függvény által megvalósított Thomson-módszer pmtm, a felhasználás alapján meghosszabbítja a szferoidális funkciókat(prolát szferoidális funkciók). Ezek a véges időtartamú függvények biztosítják az energia maximális koncentrációját egy adott frekvenciasávban. Magán a spektrális becslésen kívül a függvény pmtm visszaadhatja a konfidenciaintervallumát. A prolate gömbfüggvények kiszámítása némi időt vesz igénybe, így a függvény ismételt használatakor pmtm felgyorsíthatja a számításokat az elemzéshez szükséges függvények előzetes kiszámításával és adatbázisba mentésével. Egy ilyen alappal való munkához (ez egy MAT-fájl nevű dpss.mat) olyan funkciócsaládhoz készült, amelynek neve betűkkel kezdődik dpss (dpss- függvényszámítás, dpssload- függvénycsalád betöltése az adatbázisból, dpsssave- függvénycsalád mentése az adatbázisba, dpssdir- az adatbázis-könyvtár megjelenítése, dpsclear- egy függvénycsalád eltávolítása az adatbázisból).

Példaként megalkotjuk egy exponenciálisan korrelált véletlenszerű folyamat megvalósítását, és ennek spektrális elemzését a felsorolt ​​három módszerrel végezzük el. A szükséges véletlenszerű jelet úgy állítjuk elő, hogy normál diszkrét fehér zajt vezetünk át egy elsőrendű rekurzív szűrőn:

X0 = randn(1, 1000);
a = 0,9;
X = szűrő(1, , X0);

Perioogramot készítünk:

periodogram(X, , , 1)

Amint látja, a periodogram nagyon szaggatott. Most becsüljük meg ugyanannak a megvalósításnak a spektrumát a Welch-módszerrel:

pwelch(X, , , , 1)

A grafikon szabálytalansága sokkal kisebb. Végül a Thomson-módszert használjuk:

pmtm(X, , , 1)

A függvény kimenetén pmtm A grafikon a konfidenciaintervallum határait mutatja a teljesítményspektrum becslésével együtt.

A parametrikus módszerek használata bizonyos matematikai elemek jelenlétét feltételezi modellek elemzett véletlenszerű folyamat. A spektrális elemzés ebben az esetben egy optimalizálási probléma megoldására, azaz annak megtalálására redukálódik paramétereket olyan modellek, amelyekben a legközelebb van a ténylegesen megfigyelt jelhez. A Signal Processing csomag az autoregresszív analízis számos változatát és két módszert valósít meg, amelyek a jelkorrelációs mátrix sajátértékeinek és vektorainak elemzésén alapulnak: MUSIC (Multiple SIgnal Classification) és EV (EigenVectors).

Alapján autoregresszív modell a jelet a diszkrét fehér zaj egy "tisztán rekurzív" szűrőn való átengedésével állítják elő N-edik sorrend. Egy ilyen jel teljesítményspektrális sűrűsége arányos az alakító szűrő átviteli függvényének együtthatója moduljának négyzetével. Így ez a spektrális elemzési módszer egy adott sorrendű szűrőegyüttható meghatározására, a gerjesztő fehér zaj erejének becslésére és a teljesítményspektrális sűrűség analitikus kiszámítására redukálódik. A modell együtthatóinak meghatározásához a hiba minimalizálva van lineáris előrejelzés jel. Az elméleti elemzés azt mutatja, hogy a modell optimális együtthatóit csak a jel korrelációs függvénye határozza meg.

A gyakorlatban nem ismerjük a vizsgált jel valódi korrelációs függvényét, ezért az előrejelzési hibák minimalizálása érdekében becslések CF időátlagolással kapott. Lett tervezve egész sor autoregresszív analízis módszerei, amelyek főként az éleffektusok feldolgozásának megközelítésében különböznek (vagyis abban, hogy a számításokba bevonják a jel azon élmintáit, amelyeknél a CF számításakor nem található eltolt pár). A Signal Processing csomag a Burg módszert, a kovariancia módszert, a módosított kovariancia módszert és a Yule-Walker autoregresszív módszert valósítja meg.

Az autoregresszív spektrumelemzési módszerek a legmegfelelőbbek olyan jelekhez, amelyek valóban autoregresszív folyamatok. Általában, szép eredmények ezek a módszerek akkor adnak eredményt, ha az elemzett jel spektruma egyértelműen meghatározott csúcsokkal rendelkezik. Az ilyen jelek különösen több zajos szinusz összegét tartalmazzák.

Az autoregresszív módszerek alkalmazásakor fontos az autoregresszív modell sorrendjének helyes megválasztása - ennek kétszerese kell legyen a vizsgált jelben feltételezett szinuszos rezgések számának.

A Signal Processing csomag minden autoregresszív elemzési módszere két funkciónak felel meg - a modell együtthatóinak kiszámításának és magának a spektrális elemzésnek. A spektrális elemző függvény meghívja a modell együtthatóinak kiszámítására szolgáló függvényt, majd kiszámítja a spektrumot. A függvények neveit a következő táblázat foglalja össze.

A módszer neve

Modell együttható számítási függvény

Spektrális elemzési funkció

kovariancia módszer arcov pcov
Módosított kovariancia módszer armcov pmcov
Berg módszer arburg pburg
Youle-Walker autoregresszív módszer aryule pyulear

A fenti példában generált exponenciálisan korrelált véletlen jel egy elsőrendű autoregresszív folyamat, így a spektrális elemzés felsorolt ​​módszerei teljesen megfelelőek rá. A Berg módszert alkalmazzuk úgy, hogy az autoregresszív modell sorrendjét eggyel egyenlőre állítjuk (ez a függvény második paramétere pburg):

pburg(X, 1, , 1)

A kapott sima görbe gyakorlatilag egybeesik ennek a véletlenszerű folyamatnak az elméleti spektrumával.

A MUSIC (Multiple SIgnal Classification) módszert olyan jelek spektrális elemzésére tervezték, amelyek több szinusz (pontosabban általános esetben - több összetett kitevő) összege fehér zajjal. Az ilyen jelek spektrális elemzésének célja általában nem a spektrum mint olyan kiszámítása, hanem a harmonikus komponensek frekvenciáinak és szintjének (amplitúdóinak vagy teljesítményeinek) meghatározása. A MUSIC módszert kifejezetten erre tervezték, így a jelszint függését a vele kapott frekvenciától ún pszeudospektrum(pszeudospektrum).

A módszer a jelkorrelációs mátrix sajátértékeinek és sajátvektorainak elemzésén alapul. Az elemzés végrehajtásakor meg kell adni a modell sorrendjét, vagyis a jelben feltételezett komplex kitevők számát.

A Signal Processing csomagban a MUSIC metódus a függvény segítségével valósul meg pzene, és a funkció gyökérzene lehetővé teszi a jel harmonikus összetevőinek frekvenciáinak és teljesítményeinek becslését.

A MUSIC közeli rokona a sajátvektorok (EV) módszer. Egyetlen különbsége az, hogy a számítási képletekben a sajátvektorokat a megfelelő sajátértékekkel fordítottan arányos súlyegyütthatókkal szorozzuk. Az irodalomban bizonyíték van arra, hogy az EV-módszer kevesebb hamis spektrális csúcsot generál, mint a MUSIC, és általában jobban reprodukálja a zajspektrum alakját.

A Signal Processing csomagban az EV metódus a funkció segítségével valósul meg peig, és a funkció rooteig lehetővé teszi a jel harmonikus összetevőinek frekvenciáinak és teljesítményeinek becslését.

Hangsúlyozni kell, hogy a pszeudospektrumok nem a valós teljesítménysűrűség-spektrum becslései, hanem csak spektrálisak. álbecslések, amelyek lehetővé teszik a szinuszos vagy keskeny sávú jelkomponensek frekvenciájának becslését az autoregresszív módszerek felbontásánál valamivel nagyobb felbontással.

A diszkrét Fourier-transzformáció, amelyet minden nem-paraméteres spektrális becslési módszerben használnak, magában foglalja az elemzett jelrészlet periodikus folytatását. Ebben az esetben ugrások fordulhatnak elő a fragmentumok találkozásánál, ami jelentős szintű oldallebenyek megjelenéséhez vezet a spektrális régióban. Ennek a hatásnak a csökkentése érdekében a DFT végrehajtása előtti jelet megszorozzák a középponttól a szélek felé tartó csökkenéssel. súly funkció (ablak). Ennek eredményeként csökken az ugrások nagysága a szegmensek találkozásánál, és a spektrum nem kívánt oldallebenyeinek szintje is kisebb lesz - ennek ára a spektrális csúcsok némi kiterjesztése.

A spektrális analízis mellett súlyfüggvényeket használnak nem rekurzív szűrők szintézisében a kívánt frekvenciaválasz inverz Fourier transzformációjával. Ebben az esetben lehetővé teszik a jelelnyomás növelését a szűrő leállítási sávjában az áteresztősáv bizonyos kiterjesztése miatt.

Jelenleg a Signal Processing csomag körülbelül egy tucat súlyfüggvényt tartalmaz. Egy részük eloszlása ​​a számítási egyszerűségnek köszönhető, míg mások bizonyos értelemben optimálisak.

A legegyszerűbb a függvény által megvalósított téglalap alakú ablak rectwin(az 5.0 előtti csomagverziókban ennek a függvénynek a neve volt fedett vasúti kocsi). A téglalap alakú ablak a súlyozás hiányának felel meg, ez a függvény csak a súlyozási függvénykészlet formai teljessége miatt szerepel a csomagban. A háromszög alakú ablakot a függvény valósítja meg háromszög, a Bartlett ablak háromszög alakú is (funkció bartlett), csak kis mértékben tér el a számítási módszertől.

Számos súlyfüggvény harmonikus komponensek kombinációja. Felsoroljuk őket a koszinuszos tagok számának megfelelően növekvő sorrendben:

  • Hanna ablak (funkció hann), amelyet néha helytelenül Hanning-ablaknak neveznek, egyetlen koszinusz kifejezés.
  • Hamming ablak (funkció kalapálás) egy koszinusz tag.
  • Blackman ablak (funkció fekete ember) két koszinusz tag.
  • Blackman-Harris ablak (funkció blackmanharris) három koszinusz tag.
  • A Nuttall ablak (a Blackman-Harris ablak alternatív változata, a függvény nuttallwin) három koszinusz tag.

A fennmaradó ablakokat bonyolultabb matematikai összefüggések írják le. Gauss ablakforma (függvény gausswin) nem igényel magyarázatot. Módosított Bartlett-Hann ablak (függvény barthannwin) a Bartlett és a Hann ablakok lineáris kombinációja. Bohmen ablak (funkció bohmanwin) két azonos koszinuszimpulzus konvolúciója. Chebisev ablak (funkció chebwin) rögzített (a számításban megadott) szintű oldallebenyekkel rendelkezik, és az ablak frekvenciaválaszának inverz Fourier-transzformációjával kerül kiszámításra. Kaiser ablak (funkció császár) is rendelkezik egy paraméterrel, amely szabályozza az oldallebenyek szintjét és a fő lebeny szélességét, ennek az ablaknak a kiszámításakor módosított Bessel-függvényeket használnak. Tukey ablak (funkció tukeywin) egy téglalap koszinuszos sima élekkel. Szélsőségesen megengedett értékek simítási tényező, téglalap alakú ablakmá vagy Hann ablakmá változik.

Végül a funkció ablakáltalános felületet biztosít bizonyos ablakszámítási függvények meghívásához.

Az ebbe a kategóriába tartozó függvények a jelek különféle statisztikai paramétereit számítják ki. A funkciók több csoportra oszthatók.

Az első csoport a korrelációs és kovarianciafüggvények kiszámítására vonatkozik (itt emlékeztetni kell arra, hogy a hazai és a külföldi terminológiában ezek a fogalmak nem esnek egybe, jelen áttekintésben a MATLAB-ban elfogadott külföldi változatot használjuk). Funkció xcorr lehetővé teszi egy jel korrelációs függvényének vagy két jel keresztkorrelációs függvényének értékelését. Ennek a funkciónak a kétdimenziós jelekkel való működésre tervezett változata a neve xcorr2. Funkció xcov Egy jel kovarianciafüggvényének vagy két jel kölcsönös kovarianciafüggvényének becslésére szolgál. Funkciók covés corrcoef, amelyek a MATLAB törzskönyvtárban találhatók, lehetővé teszik a kovariancia mátrix és a korrelációs együtthatók mátrixának meghatározását véletlenszerű adatok több realizációjának átlagolásával. Funkció corrmtx köztes adatok mátrixát adja vissza a jel korrelációs mátrixának becsléséhez, és visszaadhatja magát ezt a mátrixot is.

A függvények következő csoportja a frekvenciatartomány statisztikai jellemzőit számítja ki a nem-paraméteres Welch-módszerrel (lásd fent). Funkció csdértékelésre szánták kölcsönös spektrális sűrűség két véletlenszerű folyamat. Az eredményül kapott becslés konfidenciaintervallumát is visszaadhatja. Funkció összefügg becslést ad a modulus négyzetére kölcsönös koherencia függvények két véletlenszerű folyamat. Funkció tfe lehetővé teszi az értékelést komplex nyereség rendszer a bemeneti és kimeneti jeleinek megvalósításához.

Végül a funkció psdplot minden spektrális becslési függvény használja a teljesítményspektrális sűrűség ábrázolására. Explicit módon is hívható - például, hogy egy grafikont lineáris skálán jelenítsen meg az alapértelmezett logaritmikus helyett, vagy több spektrumot mutasson egy grafikonon.

Paraméteres modellezés és lineáris előrejelzési függvények

Alatt parametrikus modellezés alatt egy véletlenszerű folyamat egy bizonyos matematikai modelljének kiválasztását, majd e modell paramétereinek ezt követő kiválasztását értjük, hogy biztosítsuk a maximális megfelelést a modell által generált jel és a rendelkezésre álló valós adatminta között.

Az egyik a gyakorlatban széles körben használt autoregresszív (AR) modell, amelyben véletlenszerű jelet állítanak elő úgy, hogy diszkrét fehér zajt vezetnek át egy „tisztán rekurzív” (tehát nem használnak késleltetett bemeneti jelmintákat) alakító szűrőn. A jelfeldolgozási csomag négy funkciója: arburg, arcov, armcovés aryule- A formáló szűrő együtthatóinak és a szűrőt gerjesztő fehérzaj diszperziójának (teljesítményének) becslésére tervezték. Az ezen függvények által használt számítási módszereket korábban az „Autoregresszív módszerek” részben ismertettük, ahol az autoregresszív spektrális elemzésről volt szó.

Ha van becslésünk komplex nyereség különböző frekvenciájú rendszerekben lehetőség van a rendszer megvalósítható modelljének megalkotására, amelynek frekvenciamenete a lehető legközelebb lesz a mérthez. A rendszer megvalósíthatósága itt az átviteli függvényének tört-racionális függvényként való ábrázolhatóságát jelenti a számláló és nevező polinomok adott rendjeivel. A paraméteres modellezés ebben az esetben az átviteli függvény számlálójának és nevezőjének polinomjainak optimális együtthatóinak megtalálására redukálódik. Ezt a feladatot a Signal Processing csomag két funkciója oldja meg: a függvény invfreqs lehetővé teszi egy analóg rendszer modelljének felépítését és a funkciót invfreqz hasonló műveletet hajt végre diszkrét rendszereknél.

A parametrikus modellezési probléma másik változata magában foglalja a rendszer modelljének felépítését a rendelkezésre álló becslések alapján impulzusválasz. Ehhez a Signal Processing csomag két funkciót biztosít. Funkció prony azt a tényt használja fel, hogy egy rekurzív diszkrét rendszer impulzusválasza több pólus hiányában diszkrét exponenciális függvények (általános esetben összetett) összege. Az ezzel a funkcióval megvalósított algoritmust eredetileg a 18. században Baron de Prony fejlesztette ki azzal a céllal, hogy egy exponenciális analitikus modell paramétereit a kísérleti adatokhoz illessze. A kapott rendszer stabilitása nem garantált, de az első n minták ( n- a számításban megadott rendszerátviteli függvény számlálójának sorrendje) impulzusválasza pontosan egyezik a megadottakkal.

A rendszer impulzusválaszból való modellezésének második funkciója a függvény stmcb- nem törekszik az impulzusválaszok kezdeti töredékeinek pontos egyezésére, hanem minimalizálja szórás a kapott karakterisztikának az adottból, vagyis a kapott és a kívánt impulzusválaszok leolvasási különbségeinek moduljai négyzetösszege. A függvény a Steiglitz-McBride iteratív módszert valósítja meg, amely egy lineáris egyenletrendszer többszörös megoldására redukálódik a kívánt rendszer átviteli függvényének polinomjainak együtthatóira tekintettel.

Példaként egy harmadrendű rendszer modelljét kapjuk a Prony és Steiglitz-McBride módszerekkel, mintaként beállítva a háromszög impulzusválaszt:

h = ; % impulzusválasz
= prony(h, 3, 3); % Prony módszer
= stmcb(h, 3, 3); % Steiglitz-McBride módszer
A kapott rendszerek impulzusválaszainak %-os grafikonja
impz(b1, a1, 30)
cím ("Prony")
figurák
impz(b2, a2, 30)
title ("Stmcb")

A grafikonok összehasonlítása jól mutatja a két algoritmus közötti különbségeket. A Prony-módszer alkalmazásakor a kapott impulzusválasz első négy leolvasása pontosan egybeesik a megadottakkal, később azonban az adott értékektől való eltérések nagymértékben megnőnek, és az adott töredék végén egy „farok” jelenik meg. ” meglehetősen nagy szinttel figyelhető meg, hiszen a függvény prony nem tesz feltételezéseket az impulzusválasz szükséges értékeiről az adott fragmensen kívül. Funkció stmcb minimalizálja négyzetes előre beállított lejátszási hiba végtelen impulzusválasz, és egy kifejezetten meghatározott töredék végén nullával egyenlőnek tekintendő. Emiatt az adott és a kapott impulzusválaszok leolvasott értékei között (az első kivételével) nincs pontos egyezés, de a karakterisztika reprodukciós hibája egyenletesebben „kenődik” a leolvasásokon.

Ha egy diszkrét véletlenszerű folyamat nem fehér zaj, akkor a mintái annak bizonyulnak korrelált együtt. Ez lehetővé teszi a folyamat korrelációs függvényének ismeretében, megjósolni a következő számlálás értéke. A becsült érték az előző folyamatminták lineáris kombinációjaként kerül kiszámításra. Ez a fő gondolat lineáris előrejelzés. A lineáris predikciót paraméteres spektrális elemzésre (lásd korábban), rendszerazonosításra, beszédjel-elemzésre és adattömörítésre használják az átvitel során.

A lineáris predikción alapuló rendszermodellek többféle formában ábrázolhatók, és ennek megfelelően különböző paraméterkészletekkel írhatók le. A Signal Processing csomag számos funkciója lehetővé teszi a modellleírások egyik űrlapról a másikra konvertálását. Ezeket a funkciókat a következő táblázat tartalmazza.

végső formája

Autokorrelációs szekvencia

Reflexiós együtthatók

Előrejelzési együtthatók

Arcsine paraméterek

Logaritmikus arányok

Spektrális vonalfrekvenciák

eredeti forma

Autokorrelációs szekvencia

ac2rc, schurrc

Reflexiós együtthatók

Előrejelzési együtthatók

Arcsine paraméterek

Log arányok

Spektrális vonalfrekvenciák

Ezenkívül a Signal Processing csomag számos további, a lineáris előrejelzéshez kapcsolódó funkcióval rendelkezik. Tehát a prediktív szűrőegyütthatók kiszámításához egy lineáris egyenletrendszert kell megoldani, melynek mátrixa a bemeneti jel korrelációs mátrixa. Ez a mátrix számos tulajdonsággal rendelkezik, amelyeknek köszönhetően csökkenthető a lineáris egyenletrendszer megoldásához szükséges számítási műveletek száma. Először is a korrelációs mátrix az önadjungált(vagyis az alkalmazás után nem változik Hermitiánus ragozás- transzpozíció kombinációi összetett konjugációval). Valódi jel esetén az önadjungált egyszerűen azt jelenti, hogy a mátrix szimmetrikus a főátlóra. Másodszor, stacionárius véletlenszerű folyamat esetén (és csak ilyen folyamatokhoz használható konstans paraméterekkel rendelkező prediktív szűrő) a korrelációs mátrix Toeplitz mátrix- a fővel párhuzamos átlói mentén ugyanazok a számok vannak. Végül az egyenletrendszer jobb oldala a korrelációs mátrix első oszlopa egy pozícióval eltolva. A jelzett tulajdonságokkal rendelkező mátrixokkal rendelkező lineáris egyenletrendszereket nevezzük Yule-Walker egyenletrendszerek, és megoldásukhoz egy rekurzív Levinson-Durbin módszer. Ezt az iteratív algoritmust a függvény valósítja meg Levinson. Funkció rlevinson megoldja az inverz problémát - lehetővé teszi, hogy megtalálja a jel korrelációs függvényének mintáinak vektorát a lineáris előrejelzés adott együtthatóihoz.

Funkció lpc megvalósítja a lineáris predikciós együtthatók kiszámítását autokorrelációs módszerrel, és a függvény analógja aryule(lásd a paraméteres spektrális elemzés korábbi szakaszát). Ez a két függvény csak a korrelációs mátrix pontszámának kiszámításához használt MATLAB kódban tér el. Az általuk megadott eredmények számítási hibákig egybeesnek.

Jelgenerálási funkciók

A Signal Processing csomag számos olyan funkciót tartalmaz, amelyek szabványos hullámformákat generálnak, amelyek gyakran előfordulnak különböző jelfeldolgozási problémák megoldása során.

Nem periodikus jelek generálása

A nem periodikus jelek generálására szolgáló összes függvény paraméterként kap egy időpontok vektorát és a generált impulzus paramétereit leíró további argumentumokat. A visszaadott eredmény a kapott jel mintáinak vektora. Vannak funkciók a következő formájú jelek generálására:

  • rectpulse
  • - egyetlen téglalap alakú impulzus generálása, az egyetlen további paraméter az impulzus időtartama;
  • tripuls
  • - egyetlen háromszögimpulzus generálása, további paraméterek az impulzus időtartama és aszimmetria együtthatója; - négyszögspektrumú impulzus generálása a sinc() képlet szerint x) = bűn(p x)/(p x). Ennek a funkciónak nincsenek további paraméterei;
  • Gauspulse
  • - rádióimpulzus generálása Gauss-burkológörbével. További paraméterek a vivőfrekvencia, a relatív sávszélesség és az a szint (decibelben), amelyen ezt a sávszélességet mérik;
  • gmonopuls
  • - Gauss-monoimpulzus generálása (alakja a Gauss-függvény első deriváltja). További paraméter az előállított jelspektrum átlagos frekvenciája.

Periodikus jelek generálása

Az ebbe a csoportba tartozó függvények paraméterként kapnak egy időpontvektort és a generált impulzus paramétereit leíró további argumentumokat. A generált jelek periódusa 2p. Eltérő periódusú jelek generálásához a függvénynek átadott idő argumentumot ennek megfelelően kell skálázni. A visszaadott eredmény a kapott jel mintáinak vektora. Vannak függvények a következő formájú periodikus jelek generálására:

  • négyzet
  • - téglalap alakú impulzusok periodikus sorozatának generálása. További paraméter az impulzusok munkaciklusa (az impulzus időtartamának és az ismétlési periódusnak az aránya);
  • fűrészfog
  • - periodikus fűrészfog jel generálása. További paraméter a periodikus sorozatot alkotó háromszögimpulzusok aszimmetria-együtthatója;
  • diric
  • a Dirichlet függvény. További paraméter a függvény egész sorrendje. A Dirichlet függvényt a diric( x) = bűn( nx/2)/(n bűn( x/2));

Változó frekvenciájú rezgések generálása

Ez a csoport két funkciót tartalmaz: csipogés vco. Funkció csipog oszcillációkat generál, amelyek pillanatnyi frekvenciája a három lehetséges törvény egyike szerint változik - lineáris, másodfokú vagy exponenciális. A funkció több lehetőséget rejt magában vco(Voltage Controlled Oscillator - feszültségvezérelt oszcillátor), amely lehetővé teszi a rezgések generálását a pillanatnyi frekvencia tetszőleges változásával. Valójában ez a funkció frekvenciamodulációt hajt végre.

Impulzusvonat generálása

Funkció pulstran azonos alakú impulzusok véges sorozatának generálására szolgál tetszőlegesen beállított késleltetésekkel és amplitúdófaktorokkal. Az impulzusok alakja kétféleképpen adható meg: az impulzust generáló függvény nevével, vagy egy már kiszámított mintavektorral.

Példaként tekintsük a függvények használatát pulstranés sinc hogy analóg jelet állítson vissza annak diszkrét mintáiból a Kotelnyikov-tétel szerint.

t = -5:0,1:10; % idő az analóg jelhez
k = 0:5; a diszkrét jelminták száma %
sd = ; % diszkrét jel
sa = pulstran(t, , "sinc"); % visszanyert analóg jel
sztem(k, sd) a diszkrét jel % grafikonja
kitartás
plot(t, sa, "r") % analóg jel diagram
távol tartja magát

Diszkrét jel transzformációs függvények

A diszkrét jeltranszformációk közül talán a legismertebb a Discrete Fourier Transform (DFT). A gyors Fourier-transzformációs (FFT) algoritmust használó megfelelő függvény a MATLAB-ban az adatfeldolgozási függvények kategóriájába tartozik és beépített (függvények fftés ha t- egydimenziós változat, fft2és ifft2- kétdimenziós változat, fft-shiftés ifftshift- spektrális minták vektorának feleinek permutációja, hogy a nulla frekvenciát a vektor közepére vigyük át). Valójában a Signal Processing csomag olyan funkciókat tartalmaz, amelyek konkrétabb átalakításokat valósítanak meg.

Mint minden lineáris transzformáció, a DFT is ábrázolható a transzformációs mátrix szorzataként a konvertált jel mintáinak oszlopával. Ezt a transzformációs mátrixot a DFT-hez a függvény számítja ki dftmtx.

Ismét a DFT linearitása miatt bármely spektrális minta ábrázolható az eredeti jel valamilyen szűrővel történő feldolgozásának eredményeként. Ezt a szűrőt rekurzív formában ábrázolva azt kapjuk Herzel algoritmusa, amelyet a függvény valósít meg goertzel. Ha csak néhány spektrális mintát kell kiszámítani, ez az algoritmus gyorsabb, mint az FFT.

A DFT közeli rokona a diszkrét koszinusz transzformáció. Kiszámításakor a jel periodikus folytatása helyett, amit a DFT-ben feltételezünk, a folyamatos jel szomszédos töredékei tükröződnek időben. Ennek eredményeként a jel az idő páros függvényévé válik, spektruma pedig valóssá válik. Emiatt a nevet adó DFT képletben az összetett exponenciálisok helyett csak koszinuszok jelennek meg ezt az átalakulást. Az előre és inverz diszkrét koszinusz transzformációt a függvények számítják ki dctés idct illetőleg.

A diszkrét numerikus sorozatok elemzésének fontos módszere a z-transzformáció, amely egy komplex változó függvényét eredményezi. z:

.

Egyes problémák esetén számolni kell z-transzformáció a spirálkontúron elhelyezkedő pontokhoz: . A z-transzformáció számításilag hatékony kiszámítása egy ilyen kontúr mentén a gyors Fourier-transzformációt használja; funkcióban valósul meg czt.

A gyors Fourier-transzformációs algoritmus egyes változatainak implementálásakor a hatékonyság növelése érdekében át kell rendezni a feldolgozott vektor elemeit fordított bitsorrend(ez azt jelenti, hogy a vektorelemszámok bináris ábrázolásánál a biteket fordított sorrendben olvassuk be, majd az új elemszámok szerint rendezzük a vektort). Egy ilyen permutáció végrehajtásához használja a függvényt bitrevorder.

A keskeny sávú jelek elemzésekor hasznos lehet a jelet oszcillációként ábrázolni, időben változó amplitúdóval és kezdeti fázissal. Egy ilyen ábrázolás megszerzéséhez komplex elemző jel, melynek valós része egybeesik az eredeti jellel, a képzeletbeli részét pedig az határozza meg Hilbert átalakul az eredeti jeltől. A frekvenciatartományban az analitikus jelet egyoldalú spektrum jellemzi: spektrális függvénye csak pozitív frekvenciák esetén nem nulla. Funkció hilbert analitikus jelet számít ki a frekvenciatartományban úgy, hogy kiszámítja az előremenő DFT-t, nullázza a spektrum felét, majd kiszámítja az inverz DFT-t.

Példaként kiszámítjuk egy négyszögletes rádióimpulzus analitikai jelét:

s = nullák(256,1);
s(65:192) = cos(pi/2*(0:127)"); rádióimpulzus-számlálások százaléka
sa = hilbert(ek); % analitikai jel
f = (-128:127)/128; grafikonok normalizált frekvenciáinak %-os értéke
részterület(2;1;1)
plot(f, abs(fftshift(fft(s)))) % valós jelspektrum
részterület(2;1;2)
plot(f, abs(fftshift(fft(sa)))) az analitikai jel spektrumának %-a

Az alsó grafikonon jól látható a spektrum nullázása a negatív frekvenciák tartományában, a megduplázódása pedig a pozitív frekvenciák tartományában.

Cepstralis elemzés

A cepstraalis analízis a homomorf jelfeldolgozáshoz kapcsolódik. Az ilyen feldolgozás megfelel a szuperpozíció általános elvének: ha a rendszer bemeneti jele több, matematikai művelettel kapott jel kombinációja. DE, akkor a kimeneten az egyes jelek feldolgozásának eredményeit kombináljuk a művelet segítségével B. A cepstral elemzés különösen beszédfeldolgozási problémák esetén találta meg alkalmazását. A Signal Processing csomag számos, a cepstralis elemzéshez kapcsolódó funkcióval rendelkezik.

Funkció rcepsz kiszámítja a jel valódi cepstrumát, figyelmen kívül hagyva a benne foglalt információkat fázisspektrum. Ugyanez a funkció lehetővé teszi, hogy minimális fázisú rekonstrukció jel. Nullák z-egy ilyen jel leolvasási sorozatának transzformációi az egységkörön belüli komplex síkon helyezkednek el, és annak cepstruma egybeesik az eredeti jel cepstrumával.

A függvény segítségével kiszámított komplex cepstrum cceps, amplitúdó- és fázisinformációt is figyelembe vesz, így kapcsolata az eredeti jellel egy az egyhez. Az inverz transzformációt, vagyis az ismert komplex cepstrumból származó jel kiszámítását a függvény hajtja végre iceps.

A mintavételi sebesség megváltoztatása

Az átalakítások olyan funkciók csoportját foglalják magukban, amelyek megváltoztatják a jel mintavételi frekvenciáját. Leggyakrabban a mintavételi gyakoriságot egész számmal kell módosítani. A mintavételezési frekvencia növelése esetén ezt a műveletet ún interpoláció, és csökkenés esetén - elvékonyodása(megtizedelés). A mintavételi arány újraszámítása több lépést követel meg egymás után. A Signal Processing csomag olyan funkciókat tartalmaz, amelyek mind az egyes műveleteket, mind azok szükséges sorrendjét megvalósítják.

A jelminták közötti interpoláció végrehajtásához a szükséges számú nullát kell beilleszteni (függvény felminta), majd a vett jel egy aluláteresztő szűrőn halad át. Ezt a két szakaszt együtt valósítja meg a funkció interp.

A tizedelés végrehajtásához a jelet egy aluláteresztő szűrőn vezetik át, majd mindegyiket N-th count (függvény leminta). Ezt a két szakaszt együtt valósítja meg a funkció tizedel.

Az interpolációs és ritkítási műveletek kombinációja lehetővé teszi, hogy a mintavételi gyakoriságot tetszőleges racionális törttel kifejezett tényezővel módosítsa. A számítások hatékonyságának növelése érdekében az ilyen újraszámítást egy speciális funkció végzi újraminta, és az viszont meghívja a függvényt upfirdn(nulla beszúrás, szűrés és tizedelés). A fő különbség a két funkció között az upfirdn lehetővé teszi a használt szűrő impulzusválaszának beállítását és a funkció használatakor újraminta a szűrő kiszámítása automatikusan történik.

Végül a referenciamomentumok abszolút tetszőleges újraszámítására a MATLAB magkönyvtárban található közös interpolációs függvények használhatók, mint pl. interp1és spline.

Példaként interpoláljuk a fent használt jelet a funkciók bemutatására pulstranés sinc, a mintavételi gyakoriság négyszeres felmintavételezése. Nulla mintát adunk a jel szélei mentén, mivel a függvény interp megköveteli, hogy az eredeti sorozat legalább kilenc minta hosszú legyen.

sd = ; % eredeti jel
t = 0:9; % diszkrét idő az eredeti jelhez
sd4 = interp(sd, 4); % interpoláció
t4 = (0:39)/4; % diszkrét idő az interpolált jelhez
sztem(t, sd) az eredeti jel % grafikonja
kitartás
plot(t4, sd4, "x") az interpolált jel %-os ábrázolása
távol tartja magát

A fenti grafikonon az eredeti jelet „szárak”, az interpolált jelet pedig keresztek mutatják.

Ez a csoport meglehetősen nagy szám funkciókat. Sokukat elsősorban "belső használatra" szánják - a csomag más funkciói hívják őket. Azonban számos funkció ebben a kategóriában teljesen független értékkel rendelkezik.

Funkció puffer lehetővé teszi a jelminták vektorának ábrázolását egy egymást követő képkockák mátrixában, és ezek a keretek átfedhetik egymást.

Funkciók modés demod modulációt és demodulációt hajt végre. A moduláció következő típusai támogatottak: amplitúdó, amplitúdó-elnyomott vivő, egyoldali sáv, fázis, frekvencia, kvadratúra, impulzusszélesség, idő-impulzus.

Funkciók kódolés udecode a jel egységes kvantálását és helyreállítását hajtják végre a kvantálási szintek számával.

Funkció csíkokúgy van kialakítva, hogy több sorban jelenítsen meg egy jeldiagramot. Ez akkor hasznos, ha meg kell néznie hosszú jelzés teljesen, és a függőleges tengely mentén a felbontás nem sokat számít.

Funkciócsalád, amelynek neve szimbólumokkal kezdődik dpss, diszkrét prolate gömbfüggvények kiszámítására és a számított függvények tárolására tervezett adatbázissal való együttműködésre szolgál. A diszkrét prolate gömbfüggvényeket a Thomson-módszer szerinti spektrális analízisben használjuk (lásd fent a „Spektrális analízis és statisztikai jelfeldolgozás függvényei”, „Nem paraméteres módszerek” alfejezetet).

Funkciók cell2sosés sos2cell lehetővé teszi a szűrővel kapcsolatos információk tárolását, amelyek a második sorrendben egymást követő szakaszok formájában jelennek meg, nem csak mátrix, hanem cellatömb formájában is. Ez a két függvény konvertálja a nézetet a megadott két űrlap között.

Funkció specgram kiszámítja a jel spektrogramját, azaz az egymást követő jelrészletek spektrumát egy csúszó ablak segítségével. A számítási eredmények visszaküldhetők mátrixként, vagy színben jeleníthetők meg idő-frekvencia koordinátákban.

Funkció cplxpair komplex konjugált párokat választ ki komplex számok vektoraiban.

Funkció ekvtflongth lehetővé teszi két vektor hosszának kiegyenlítését úgy, hogy a rövidebbet nullákkal tölti fel a végén.

Funkció seqperiod célja, hogy ellenőrizze a vektor elemeinek periodicitását, és meghatározza az ismétlési periódusukat.

Az FDATool (Filter Design & Analysis Tool) szűrőszintézis-elemző program egy shell a diszkrét szűrők szintézis- és elemzési funkcióinak meghívására. Ha rendelkezik a Szűrőtervező eszköztárral ez a program lehetővé teszi a szűrőegyütthatók kvantálásával kapcsolatos hatások elemzését és a szűrőtípus-konverziók végrehajtását (LPF-ről HPF-re stb.).

A program lehetővé teszi nemcsak a szűrők nulláról történő kiszámítását, hanem a munkamenetek mentését és betöltését, a korábban mentett szűrők szerkesztését is. Ezenkívül importálhat egy szűrőleírást a MATLAB munkaterületről vagy a XILINX CORE Generator (*.coe) formátumú fájlokból. Az importált szűrők csak elemezhetők.

Az elemzés során a következő szűrő jellemzőket tekintheti meg (in legújabb verziói csomagot, egyszerre több diagramot is megtekinthet):

  • Amplitúdó-frekvencia karakterisztika (AFC).
  • Fázisválasz (PFC).
  • AFC és PFC egyszerre.
  • csoportos késleltetés.
  • fáziskésleltetés.
  • impulzusválasz.
  • átmeneti jellemző.
  • Nullák és pólusok elhelyezkedése a komplex síkon.
  • Szűrési együtthatók.
  • Információk a szűrő szerkezetéről.

A kiszámított szűrő a következőképpen használható:

  • Mentse el a munkamenetet későbbi betöltéshez az FDATool programba további szerkesztés és elemzés céljából.
  • Exportálás a MATLAB munkaterületre.
  • Exportálás szöveges fájlba.
  • Exportálás MAT-fájlba.
  • Exportálás a C nyelv fejlécfájljába (*.h).
  • Exportálás az SPToolba (lásd alább).

Az alábbi ábra az FDATool programablak nézetét mutatja az elliptikus aluláteresztő szűrő bilineáris z-transzformációs módszerrel történő kiszámításának eredményeivel. Megjelenik a frekvenciaválasz és a csoportkésleltetés grafikonja.

Az SPTool (Signal Processing Tool) jelfeldolgozó program a következő műveletek végrehajtását teszi lehetővé: jelek importálása MAT-fájlokból vagy MATLAB munkaterületről; jelgrafikonok megtekintése (többet is tartalmaz egyszerre); jelzésekre vonatkozik különféle módszerek spektrális elemzés és a kapott grafikonok megtekintése; diszkrét szűrők kiszámítása a csomagfüggvények segítségével (beleértve a nullák és pólusok helyének közvetlen szerkesztését); átengedi a jeleket szűrőkön, és elemzi a kapott kimeneti jeleket.

Meg kell jegyezni, hogy a szűrők elemzése és szintézise szempontjából az SPTool program lehetőségei szűkebbek, mint az FDATool programé (az egyetlen kivétel a nullák és pólusok helyének közvetlen szerkesztése, ami hiányzik az FDATool-ból ). Ezeket a korlátozásokat azonban ellensúlyozza a számított szűrő exportálása az FDAToolból az SPToolba.

Az alábbi ábrák az SPTool programablak nézetét mutatják a jelgrafikon megtekintésekor, a spektrum elemzésekor, valamint a szűrő nullák és pólusok helyének szerkesztésekor.

A 6.0-s (R13) csomagban megjelent WinTool (Window Design and Analysis Tool) súly (ablak) függvények szintézisére és elemzésére szolgáló program a csomagban elérhető ablakszámítási függvények meghívására szolgáló shell. Ez az ablak (vagy több ablak egyidejű) jellemzőit mutatja be idő- és frekvenciatartományban.

Az alábbi ábra a WinTool programablak nézetét mutatja a 64. rendű Csebisev-ablak számítási eredményeivel a spektrum oldallebenyeinek szintjével -100 dB. Megjelenik az ablak időtartomány diagramja és spektruma.

Digitális szűrő kialakítás

4.1.1. A digitális szűrőtervezés alapvető definíciói

A digitális szűrő (DF) tág értelemben bármely digitális rendszer, amely a rendszer bemenetén lévő keverékből egy digitális jelet vagy annak paramétereit vonja ki interferencia jel.

A szűk értelemben vett digitális szűrő egy frekvencia-szelektív áramkör, amely kiválasztást biztosít digitális jelek gyakoriság szerint.

A digitális szűrők tágabb értelemben a következők:

Frekvenciajellemzők amplitúdó- és fáziskorrekciói;

Megkülönböztetők;

Hilbert Transformers;

illeszkedő szűrők.

A szűk értelemben vett digitális szűrők közé tartoznak a frekvenciaszelektív szűrők:

aluláteresztő szűrő (LPF);

felüláteresztő szűrő (HPF);

Sáváteresztő szűrő (PF);

Bemetszett szűrő (RF).

A digitális szűrők megvalósíthatók:

hardver;

Programozottan;

Hardver szoftver.

A hardveres megvalósítás magában foglalja a funkcionális elemek használatát regiszterek, összeadók, szorzók, memóriaeszközök, logikai elemek formájában.

Szoftver implementáció azt jelenti, hogy a szűrő programozási nyelven írt programként jelenik meg.

A hardveres-szoftveres megvalósítás azt jelenti, hogy a szűrőfunkciók egy része hardverben (ADC, DAC, szorzás, adatfogadás/átvitel), míg a funkciók másik része szoftveresen valósul meg.

A digitális szűrőtervezés alatt azt a folyamatot értjük, amelynek eredményeként egy program bemutatásra kerül, ill digitális eszköz amely megfelel a megadott követelményeknek.

A digitális szűrő kialakítása a következő lépéseket tartalmazza:

1. Szintézis.

2. Számítási algoritmusok kidolgozása.

3. Ellenőrzés szimulációval.

4. Gyakorlati megvalósítás és hibakeresés.

eredmény szintézis van szerkezeti séma szűrő, valamint együtthatók, differenciálegyenletek és átviteli függvények halmaza.

Számítási algoritmus kidolgozása függ a regiszterek kapacitásától, a processzorelemek számától, a műveletek párhuzamosításának lehetőségétől, a szorzó- és akkumulátorok meglététől. A végső algoritmusnak biztosítania kell, hogy a szűrő valós időben, minimális minőségveszteséggel működjön.

Szimulációs ellenőrzés sztenderd jelekkel valós idejű skálán hajtják végre szoftveres emulátorok segítségével. Ezzel egyidejűleg kiküszöböljük a logikai hibákat, és ellenőrizzük, hogy a szűrő megfelel-e a megadott jellemzőknek.

Gyakorlati megvalósítás és hibakeresés valós időben, hibakereső modulok segítségével.



Általános információ a CF szintéziséről

A szintézis folyamata során a következő lépéseket hajtják végre:

A szűrési követelmények be vannak állítva;

Az átviteli függvény vagy differenciaegyenlet együtthatóit kiszámítjuk;

A digitális szűrő blokkvázlata formálódik.

A digitális szűrővel szemben támasztott követelmények a szűrő céljától függően idő- vagy frekvenciatartományban adhatók meg.

Az időtartomány követelményeit általában az illesztett szűrőkre adják meg a szükséges impulzusválaszon keresztül.

A frekvenciatartomány követelményei általában a frekvenciaszelektív szűrőkre vonatkoznak.

Például egy sávszűrő követelményeit öt frekvenciasáv jellemzi (2.1. ábra):

Központi sávszélesség (PP);

Két feltartóztatási sáv (PZ1, PZ2);

Két átmeneti sáv.

2.1. ábra – a PF frekvenciamenetére vonatkozó követelmények diagramja

Az 1. ábra a következőket mutatja:

Az első PZ1 leállítósáv vágási frekvenciája, amelynek szélessége ;

Bal oldali áteresztősáv vágási frekvenciája;

Jobb áteresztősáv vágási frekvenciája, sávszélessége ;

A második PZ2 késleltetési sáv határfrekvenciája, amelynek szélessége ;

Az 1. és 2. átmeneti sáv szélességű , , ill.

Az érték a frekvenciaválasz legnagyobb megengedett eltérését jellemzi 1-től a sávszélességen belül. Az érték a frekvenciamenet 0-tól megengedett legnagyobb eltérését jellemzi a stop sávokon belül. Az átmeneti sávokon belüli frekvenciamenet jellemzőire vonatkozó követelmények általában nincsenek meghatározva.

A következő típusú szintézis módszerek léteznek:

Közvetlen szintézismódszerek;

Szintézis módszerek analóg prototípus használatával.

A közvetlen módszerek két kategóriába sorolhatók:

Legjobb gyakorlatok;

szuboptimális módszerek.

NÁL NÉL legjobb gyakorlatok numerikus módszerekkel keressük meg egy adott minőségi függvény minimumát. A szűrő karakterisztika adotttól való eltérésének minimális mértékeként a hibaarányt használjuk:



. (2.1)

A szuboptimális módszerek lehetővé teszik a számítások egyszerűsítését a probléma sajátosságainak figyelembevételével.

Ennek a laboratóriumi munkának az elméleti részét a "Digitális szűrők szintézisének módszerei" című oktatóanyag tartalmazza (file filtrs\lecture_dsp.doc)

  1. Munka a qedesign 1000 programmal.

Futtassa a QED.exe fájlt a QEDESIGN 1000 Digital Filter Design System letöltéséhez.

A megnyíló főmenüben válassza a Tervezés almenüt, megnyílik egy ablak a számításhoz szükséges szűrőtípusok megadására:

1. ábra. "Design" menü 2. ábra. Opciók menü

Itt választhatja ki, hogy a szűrő milyen szűrőszámítási módszert szeretne kiszámítani:

1. Az IIR szűrő számítása (IIR Design).

IIR-szűrők esetén nyissa meg az Opciók menüt, és válassza ki az egyik módszert

    Bilineáris transzformáció

    invariáns impulzusválasz módszere (Impulse Invariant)

2. A FIR szűrő számítása súlyozási módszerrel az ablak segítségével (FIR Design (Windows))

3. A FIR szűrő számítása az optimális szűrők módszerével (FIR Equipple FIR Filter Design)

Válassza ki a kívánt módszert a bal egérgombbal.

1 - aluláteresztő szűrő (aluláteresztő)

2 - felüláteresztő szűrő (Highpass)

3 - sávszűrő (Bandpass)

4 bevágású szűrő (Bandstop)

A szűrőtípus kiválasztása után megnyílik a szűrőparaméterek beállítására szolgáló ablak.

3. ábra. Ablak az aluláteresztő szűrő paramétereinek beállítására

4. ábra: A felüláteresztő szűrő paramétereinek beállítására szolgáló ablak

Ebben az ablakban a következőket kell beállítani:

Mintavételi gyakoriság F d

Passband vágási frekvenciák Wп (Passband Frequency)

A Wз késleltetési sáv határfrekvenciái (Stopband Frequency)

Ripple (csillapítás) az áteresztő sávban (Passband Ripple)

Ripple (csillapítás) a késleltetési sávban (Stopband Ripple)

Ennek során ne feledje:

aluláteresztő szűrőkhöz Wp

felüláteresztő szűrőkhöz Wп>Wз

sávszűrőkhöz Wп1

bevágásos szűrőkhöz Wp1

A vágási frekvenciáknak kisebbnek kell lenniük, mint a mintavételezési sebesség osztva 2-vel.

Tipikus hullámzási (bomlási) tartomány:

0,1-3 dB sávszélességben

a késleltetési sávban 20-100 dB

Töltse ki az összes mezőt, és kattintson az "Elfogadás" gombra.

D
majd lépjen a főmenübe és válassza ki a "Start" menüpontot.

Ezen az IIR-szűrők képernyőjén az ablak a 3. ábrán látható. 5.

5. ábra: IIR-szűrők kiszámításának ablaka

Prototípus analóg szűrőtípus (Válasszon analóg szűrőtípust):

1- Butterworth;

2 - Csebisev;

3 - fordított Chebisev;

4 - elliptikus;

5 - Bessel;

Szűrési sorrend (adja meg a kívánt sorrendet)

A szűrő sorrendjének 2 többszörösének kell lennie; nem lehet nagyobb, mint a becsült sorrend (becsült szűrőrendelés).

Az ablak módszerrel számított FIR szűrőknél megnyílik egy ablak, ábra. 6

Rizs. 6. FIR szűrők számítási ablaka ablak módszerrel.

Íme a lehetséges ablakfunkciók, valamint a becsült rendelési minták ajánlott száma:

1 - téglalap alakú;

2 - háromszög alakú;

4 - Hamming;

5 - Blackman;

és mások.

Válassza ki a szűrőcsapok számát (adja meg a kívánt csapok számát)

A leolvasások száma nem lehet kevesebb 2-nél és nem több az ajánlottnál.

Az optimális FIR szűrőkhöz válassza a következőket:

Az érintések becsült száma

A leolvasások száma nem lehet kevesebb 3-nál és nem több az ajánlottnál.

A felhasználó a következő grafikonokat jelenítheti meg a képernyőn és a nyomtatón:

IIR szűrők esetén:

Amplitúdó karakterisztika (nagyság)

Fázisválasz (Phase);

Az átviteli függvény pólusai és nullái (pólusok és nullák);

Csoportkésleltetési jellemzők (Group Delay);

FIR szűrőkhöz:

Amplitúdó karakterisztika (Magnitude);

Amplitúdó válasz logaritmikus skálán (Log10 Magnitude);

Impulzus válasz (Impulse Response);

Átmeneti válasz (Step Response);

Megnyílik az eredmények mentésére szolgáló menü, 7. ábra.

Rizs. 7. Eredmények mentése menü

A közös fájlnév (pl. filtr1) az eredmények mentésére szolgál.

Ha a Problémaspecifikációk mentése opciót választotta, a szűrőspecifikáció a *.spc fájlba kerül mentésre.

Ha a Kvantifikált együtthatófájl létrehozása lehetőséget választja, a szűrőegyütthatók mentésre kerülnek. A rendszer elvégzi a szűrő együtthatók kvantálását. A Kvantizálási együtthatók opciót mindig ki kell választani. Ellenkező esetben a szűrőegyütthatók nem kerülnek mentésre.

ábrán. A 8. egy ablakot mutat be a kvantálási paraméterek beállítására, amely információkat tartalmaz a szűrő megvalósításáról is.

Rizs. 8. Kvantálási beállítások menü

Az IIR szűrők esetében két megvalósítási típus lehetséges:

    Lépcsőzetes forma 2. rendű blokkokkal közvetlen formában (Cascaded Transponed Second Order Section);

    Lépcsőzetes forma 2. rendű blokkokkal kanonikus formában (Cascaded Canonic Second Order Section);

    Párhuzamos közvetlen forma másodrendű blokkokkal (Parallel Transponed Second Order Section);

    Párhuzamos transzponált másodrendű szakasz (Parallel Transponed Second Order Section);

A szűrőtényezők kiszámításának eredményei a *.flt fájlba kerülnek.

A következő példa egy kvantált sáváteresztő szűrő együtthatókat tartalmazó fájl tartalmára.

SZŰRÉS EGYÜTTŐS FÁJL

SZŰRŐ TÍPUSÚ SÁVÁT

ANALÓG SZŰRŐ TÍPUSÚ ELLIPTIKUS

PASSZÁV RIPPLE - dB -3.0000

LEÁLLÍTÓSÁV RIPPLE - dB -20.0000

AZ ELJÁRÁSSÁV VÁGÁSI FREKVENCIÁI .500000E+03 .600000E+03 HERTZ

LEÁLLÍTÁSI SÁV VÁGÁSI FREKVENCIÁI .400000E+03 .700000E+03 HERTZ

MINTAVÉTELI FREKVENCIA .400000E+04 HERTZ

SZŰRŐTERVEZÉSI MÓDSZER: BILINEÁRIS TRANSFORMÁCIÓ

SZŰRŐRENDELÉS 4 0004h

SZEKCIÓK SZÁMA 20002h

NEM. KVANTÁLT BITEK 16 0010h

QUANTIZÁLÁS TÍPUSA – BLOCK LEBEBEKÖDŐPONT

KASZKÁD FORMÁHOZ SZÁMÁZOTT EGYÜTTHATÓK II

4 FFFFFFFC /* eltolásszám a teljes erősítéshez */

21237 000052F5 /* teljes nyereség */

2 FFFFFFFE /* műszakszám az 1. szakasz számlálóértékeihez*/

30006 00007536 /* 1. szakasz, B0 együttható */

21867 FFFFAA95 /* 1. szakasz, B1 együttható */

30006 00007536 /* 1. szakasz B2 együttható */

1 00000001 /* műszakszám az 1. szakasz nevezőértékeihez*/

19208 00004B08 /* 1. szakasz, A1 együttható */

15554 FFFFC33E /* 1. szakasz, A2 együttható */

3 00000003 /* műszakszám a 2. szakasz számlálóértékeihez*/

15490 00003C82 /* 2. szakasz, B0 együttható */

25573 FFFF9C1B /* 2. szakasz, B1 együttható */

15490 00003C82 /* 2. szakasz, B2 együttható */

1 00000001 /* műszakszám a 2. szakasz nevezőértékeihez*/

22299 0000571B /* 2. szakasz, A1 együttható */

15636 FFFFC2EC ​​​​/* 2. szakasz, A2 együttható */

2289276123046875D+00 3FCD4D8000000000 .22893000E+00 /* 1. szakasz B0 */

1668319702148437D+00 BFC55AC000000000 -.16683484E+00 /* 1. szakasz B1 */

2289276123046875D+00 3FCD4D8000000000 .22893000E+00 /* 1. szakasz B2 */

1172363281250000D+01 3FF2C20000000000 -.11723777E+01 /* 1. szakasz A1 */

9493560791015625D+00 BFEE612000000000 .94936011E+00 /* 1. szakasz A2 */

3781799316406250D+01 400E412000000000 .37818290E+01 /* 2. szakasz B0 */

6243408203125000D+01 C018F94000000000 -.62435106E+01 /* 2. szakasz B1 */

3781799316406250D+01 400E412000000000 .37818290E+01 /* 2. szakasz B2 */

1361022949218750D+01 3FF5C6C000000000 -.13610497E+01 /* 2. szakasz A1 */

9543914794921875D+00 BFEE8A6000000000 .95439489E+00 /* 2. szakasz A2 */

Másodrendű szakaszokkal rendelkező IIR szűrő kaszkádos formájának szerkezetének megvalósítása kanonikus formában (típus) 2

A szintetizált szűrő másodrendű szakaszok termékeként ábrázolható:

,

ahol K az (N=1)/2 egész része. H k (z) általános formája van:

A szűrő a következő űrlap használatával valósítható meg minden másodrendű szakaszhoz kanonikus formában:

9. ábra. Másodrendű rész kanonikus formában

(Mi a lényeges különbség egy ilyen és a közvetlen megvalósítás között?)

FIR szűrő kaszkádos formájának szerkezetének megvalósítása másodrendű szakaszokkal kanonikus formában

Lebomolhatunk H(z) másodrendű rendszerek esetén:

K az (M+1)/2 egész része (M a szűrő hossza).

A FIR szűrő egyszerű lépcsőzetes megvalósítása másodrendű szakaszokkal:

Rizs. 10. FIR szűrő egyszerű lépcsőzetes megvalósítása.