Harjutage digitaalsete filtrite kasutamist. Digitaalsed filtrid. Filtrite realiseerimise ja sünteesimise meetodid Digitaalsete filtrite kujundamine

Teen siin projekti ja mul on see probleem. Ma saan andmeid ADC (delta-sigma) mikroskeemist, millel on sisseehitatud kontroller ja filter, kuid sellel filtril on üsna kehv sageduskarakteristik, mille tagajärjel tekib RF-s ummistus alates 60 Hz ja üle selle. See näeb välja umbes selline:

Need. Selline sageduskarakteristiku ebaühtlus meile selgelt ei sobi (ei lähe läbi tehnilised nõuded), kuigi sageduskarakteristiku ühtlustamiseks on võimalik diskreetimissagedust suurendada 250 Hz-lt 500 Hz-le, kuid siis suureneb andmehulk, mida tuleb siiski keskmistada, mis mõjutab seadme jõudlust (STM32F103VE projekt). süsteem tervikuna ja üldine energiatarbimine (aku võimsus). Kuid on ka teine ​​viis.

Sageduskarakteristikut saate tasandada parameetrilise digitaalfiltri, antud juhul kõrgpääsfiltri, abil. See tähendab, et see on sama asi, mis ekvalaiser, me tõstame mõnda sagedust, kuid ei puuduta teisi (või langetame neid). See meetod on kindlasti hea, kuid ... püüame taastada teavet, millest osa hävitas teine ​​​​sisendis olev filter (mikroskeemi sees), häirete tase kõrgetel sagedustel paratamatult suureneb, sest Koos signaaliga võimendame ka neid, aga kui palju?

Niisiis, idee probleemi lahendamisest on olemas, jääb vaid teostus. Mida me mäletame digifiltritest (neile, kes pole nendega praktikat teinud) ülikooli kursusest? Kui just selliseid sõnu nagu konvolutsioon, Z-teisendus, impulssreaktsioon jne. Üldiselt pole isegi selge, kummast otsast läheneda, tundub, et tuleb mingid koefitsiendid välja arvutada, aga mis ja miks pole selge, kursi tõstmine ja raamatutega istumine DSP-s (seal on 800 lk) on pole aega, projekt seisab ja midagi on vaja teha, ja kiiresti.

Seetõttu leiame pärast väikest guugeldamist sellise ressursi Internetist. See on sait digitaalsete filtrite (ja rohkemgi veel!) Internetis arvutamiseks ning selle tegi teatud dr Anthony J. Fisher.

Niisiis, seadsime vajalikud nõuded ja sisestame need saidile. Esiteks vajame sujuvat reageerimist, seega kindlasti esmajärgulist HF Butterworthi (kõrgpääs). Teiseks diskreetimissagedus, s.o. ADC konversioonide arv sekundis ehk diskreetimissagedus on meie jaoks 250Hz. Lähme sisse. Ja lõpuks, kolmandaks, piirsagedus (-3dB) on 50Hz, sest Sisselaskefilter lõikab umbes siin. Klõpsake nuppu Saada ja saame oma tulevase filtri järgmised omadused:


Amplituudi ja Nyquisti sageduse graafik on näidatud punasega ja faasimuutus sinisega. 0,5 vastab poolele diskreetimissagedusest.

Samuti saame arvutatud koefitsientidega C-koodi:
#define NZEROS 1 #define NPOLES 1 #define GAIN 1.726542528e+00 static float xv, yv; static void filterloop() ( jaoks (;;) ( xv = xv; xv = järgmine sisendväärtus / GAIN; yv = yv; yv = (xv - xv) + (0,1583844403 * yv); järgmine väljundväärtus = yv; ) )
Kuid see on ainult filter, me peame meeles, et sagedusreaktsiooni sirgendamiseks peame võimendama sagedusi alates 50 Hz ja rohkem ning see funktsioon sellisel kujul meid ei aita, nii et mõne lihtsa manipulatsiooniga viime funktsiooni sellele vormile. :
#define NZEROS 1 #define NPOLES 1 #define GAIN 1.726542528e+00F #define OUR_GAIN 2.1F // meie koefitsient. filtri võimendus float xv, yv; int void filterloop(int data) ( xv = xv; xv = (float)data / GAIN; yv = yv; yv = (xv - xv) + (0,1583844403F * yv); return (int)((yv0 * OUR_GAIN) + (ujuvad)andmed);)

Kõik. Filtri kasutamiseks viskame andmed funktsiooni parameetritesse ja see tagastab filtreeritud andmed. Valime võimendusteguri OUR_GAIN eksperimentaalselt, võttes näidud ADC-st ja mõõtes sagedusreaktsiooni.

Seega õnnestus mul sageduskarakteristikut tõsta praktiliselt ilma kontrolleri lisakoormuseta ja minu projekt läbis tehnilised nõuded (meditsiinivaldkonnas pole need väga nõrgad). Kartsin, et müratase tõuseb oluliselt, aga see tõusis 4-5 µV pealt umbes 6-8 µV peale, mis meile sobib. Kokkuvõtteks võin soovitada teist tasuta programmi digitaalsete filtrite arvutamiseks - WinFilter, saate selle alla laadida. Ma ei tea, kui tõhus see on, ma pole seda kontrollinud, kuid see võib väljastada koodi VHDL-is (ja loomulikult C-vormingus), mis on FPGA-de jaoks kindlasti kasulik. Samuti on olemas Texas Instrumentsi programm digitaalsete filtrikoefitsientide arvutamiseks, seda nimetatakse TIBQ-ks. Kõik. Edu digifiltrite kujundamisel.

Kavandatavas sarjas “Digitaalse signaalitöötluse DSP modelleerimine MATLAB-is” olid varasemad artiklid pühendatud digitaalsete filtrite (DF), FIR ja IIR, sealhulgas fikseeritud punkti filtrite (FP) modelleerimisele, kasutades MATLAB tarkvara.

Kirjandus

  1. Ingle V., Proakis J. Digitaalne signaalitöötlus MATLAB-i abil. Teine väljaanne. Tomson, 2006.
  2. Oppenheim A., Shafer R. Digitaalne signaalitöötlus. M.: Tehnosfäär, 2006.
  3. Sergienko A. B. Digitaalne signaalitöötlus. 2. väljaanne SPb.: PETER, 2006.
  4. Solonina A.I., Ulakhovich D.A., Arbuzov S.M., Solovjova E.B. Digitaalse signaalitöötluse alused. 2. väljaanne Peterburi: BHV-Peterburg, 2005.
  5. Solonina A.I., Arbuzov S.M. Digitaalne signaalitöötlus. Modelleerimine MATLABis. Peterburi: BHV-Peterburg, 2008.
  6. Solonina A. Digitaalse signaalitöötluse modelleerimine MATLAB-is. Osa 1. Optimaalsete (Tšebõševi järgi) FIR-filtrite süntees MATLAB tarkvara abil // Komponendid ja tehnoloogiad. 2008. nr 11.
  7. Solonina A. Digitaalse signaalitöötluse modelleerimine MATLAB-is. Osa 2. Optimaalsete IIR-filtrite süntees MATLAB tarkvara abil // Komponendid ja tehnoloogiad. 2008. nr 12.
  8. Solonina A. Digitaalse signaalitöötluse modelleerimine MATLAB-is. Osa 3. FIR ja IIR filtrite struktuuride kirjeldus MATLABis // Komponendid ja tehnoloogiad. 2009. nr 1.
  9. Solonina A. Digitaalse signaalitöötluse modelleerimine MATLAB-is. Osa 4. Digitaalsete fikseeritud punktiga filtrite struktuuride modelleerimine MATLAB tarkvara abil: FIR-filtrite omaduste analüüs // Komponendid ja tehnoloogiad. 2009. nr 2.
  10. Solonina A. Digitaalse signaalitöötluse modelleerimine MATLAB-is. Osa 5. Digitaalsete fikseeritud punkti filtrite struktuuride modelleerimine MATLAB tarkvara abil: IIR filtrite omaduste analüüs // Komponendid ja tehnoloogiad. 2009. nr 3.
  11. Solonina A. Digitaalse signaalitöötluse modelleerimine MATLAB-is. Osa 6. Digitaalsete fikseeritud punkti filtrite struktuuride modelleerimine MATLAB tarkvara abil: efekti kvantimine ja vastuse arvutamine // Komponendid ja tehnoloogiad. 2009. nr 4.
1 Grupis Current Filter Information vastab see sõnumile: Source-Designed.
2 Grupis Current Filter Information vastab see sõnumile: Source-Imported.

Professionaalne tarkvarapakett aktiivsete/passiivsete analoog- ja digitaalsete elektrifiltrite loomiseks ja analüüsimiseks.

Filter Solutionsil on lihtne ja intuitiivne liides, mis on eraldi akende komplekt projekteeritava filtri vajalike väärtuste määramiseks ning tulemuste ja nende omaduste kuvamiseks. Tarkvaral on oma arvutituum. Optimeeritud arvutusalgoritmid võimaldavad lühikese aja jooksul sooritada keerulisi matemaatilisi toiminguid.

Programm Filter Solutions on võimeline ehitama standardfiltreid (elliptilised või Cauer, Bessel, Butterworth, Gauss, Legendre, Chebyshev tüübid 1 ja 2, sobitatud ja mõned teised), aga ka ainulaadseid paindlike parameetritega filtreid, millel on vabalt määratud sageduskarakteristik faasifaasiahelate loomiseks ja amplituudi korrigeerimiseks. Programm koostab automaatselt ülekandefunktsiooni, näitab pooluseid ja nulle ning genereerib ka vooluahela ajastuskarakteristikud, kui see puutub kokku impulsiga. Filtri kiireks loomiseks on ette nähtud viisard, mis nõuab ainult kõige olulisemaid arendusandmeid.

Samuti on võimalik märkida projekteeritud seadme sageduskarakteristikud, nullid ja poolused. Filter Solutions määrab iseseisvalt filtrite järjestuse ja vajaliku topoloogia. Programm võimaldab teil arendada filtreid ribaliini/mikroriba disainis. Arvutamisel võetakse arvesse kadusid metalliseerimisel ja substraadi dielektrikus.
Tarkvarapaketi eripäraks on probleemi lahendamiseks mitme võimaliku viisi pakkumine erinevate vooluringilahenduste ja üksikute elementide parameetrite näol. Filter Solutions jälgib skeemi tehnoloogilist teostatavust. Programm näitab võimalikke probleeme ja pakub alternatiivseid võimalusi, mille parameetrid on veidi halvemad, kuid mida on võimalik rakendada.

Filter Solutionsi võimalused on saadaval ka Filter Light ja Filter Free versioonidena, mis on programmi täisversiooniga võrreldes madalamad. Nende funktsioonide valik on mõnevõrra lihtsustatud, eriti Filter Free puhul, mis on minimaalne saadaolev pakett.
Selle tarkvara süsteeminõuded on väikesed. Programmi levitatakse tavalise ja kaasaskantava versioonina, mis töötab mis tahes väliselt draivilt.

Filter Solutions on ettevõtte Nuhertz Technologies http://www.nuhertz.com/ toode. Selle peakorter asub Phoenixis (USA, Arizona). Pakett lasti algselt välja 1999. aastal. Sellest ajast alates on see arenenud ja omandanud üha uusi funktsioone ja võimalusi. Ettevõtte arendatud tarkvara kasutavad disainiinsenerid erinevates teadus- ja tööstuse valdkondades, nagu side ja side, militaarelektroonika, meditsiin, instrumentide valmistamine, nafta ja gaas ning antennide disain. Nuhertz Technologies on ka statistilise analüüsi ja andmete digitaalse esitamise programmide Statmat ja Spectra looja.

Filtrilahenduste liidese keel on ainult inglise keel. Kõnealuse programmi tööplatvormiks on Windows 9x/Me/2K/NT/XP/Vista/7.

A. B. Sergienko. Signaalitöötluse tööriistakast – ülevaade

Signaalitöötlus on alati olnud MATLAB-süsteemi üks olulisemaid rakendusvaldkondi. Sellest annab tunnistust eelkõige asjaolu, et Signal Processing Toolbox oli üks esimesi spetsialiseeritud pakette – see ilmus juba 1988. aastal, vaid neli aastat pärast MATLAB süsteemi enda loomist.

Tänaseks sisaldab Signal Processing pakett ligi kakssada hoolikalt välja töötatud spetsiaalset funktsiooni, mis võimaldavad lahendada väga erinevaid signaali analüüsi ja töötlemise probleeme.

Praegu levitatav MATLAB 6.1 versioon (väljalase 12.1) sisaldab signaalitöötluspaketi versiooni 5.1. Tulevane MATLAB 6.5 (väljalase 13) väljalase sisaldab signaalitöötluspaketi versiooni 6.0.

Paketi ametliku dokumentatsiooni kohaselt on selle funktsioonid jagatud kahekümnesse kategooriasse. Allolev loend ühendab need kategooriad suuremateks rühmadeks. Seega saab signaalitöötluspaketi funktsioonid vastavalt nende eesmärgile jagada järgmiselt:

Lisaks sisaldab pakett kolme graafilist keskkonda:

MATLAB ja selle laienduspaketid on keskendunud eelkõige digitaalsele signaalitöötlusele, seega käsitletakse analooglülituste analüüsiga seotud funktsioone abistavatena. Eelkõige on need mõeldud kutsumiseks muudest funktsioonidest, mis kasutavad digitaalsete filtrite sünteesil analoogprototüüpe. Need funktsioonid võivad aga ise väga kasulikud olla. Need saab omakorda jagada mitmeks rühmaks.

Esimene rühm on funktsioonid analoogfiltrite prototüüpide, st madalpääsfiltrite, mille piirsagedus on 1 rad/s, arvutamiseks. Funktsioonid tagastavad filtrite nullid, poolused ja võimendused ning võimaldavad arvutada Butterworthi filtrite prototüüpe ( tagumik), esimest tüüpi Tšebõšev ( cheb1ap), teist tüüpi Tšebõšev ( cheb2ap), elliptiline (Kauer) ( ellipap) ja Bessel ( besselap).

Teine rühm on analoogfiltri teisendusfunktsioonid, mis võimaldavad teisendada madalpääsfiltri prototüübi erineva piirsagedusega madalpääsfiltriks ( lp2lp), kõrgpääsfiltrisse (HPF) etteantud piirsagedusega ( lp2hj), teatud keskmise sageduse ja ribalaiusega ribapääsfiltrisse ( lp2bp) ja etteantud keskmise sageduse ja stopriba laiusega sälkfiltrisse ( lp2bs). Funktsioonid võivad filtrikirjeldusi aktsepteerida ja tagastada ülekandefunktsiooni lugeja- ja nimetajapolünoomide koefitsientide vektoritena või olekuruumi parameetritena.

Kolmas rühm on funktsioonid antud parameetritega analoogfiltrite arvutamiseks. Arvutusprotsessi käigus kutsuvad nad esile kahe esimese rühma funktsioone. Arvutamiseks vajalik lähteandmete komplekt sisaldab filtri järjekorda, selle tüüpi (madalpääsfilter, kõrgpääsfilter, ribapääs või sälk), sagedust või mitut piirsagedust ning ka (olenevalt prototüübist) pulsatsiooni parameetreid. amplituud-sagedusreaktsioon (AFC). Butterworthi filtrite arvutamiseks on olemas funktsioonid ( võid), esimest tüüpi Tšebõšev ( cheby1), teist tüüpi Tšebõšev ( cheby2), elliptiline (Kauer) ( ellip) ja Bessel ( halastamatu). Kõik need funktsioonid, välja arvatud funktsioon halastamatu, saab kasutada ka diskreetsete filtrite arvutamiseks (vt allpool). Analoogarvutusvõimaluse märgiks on stringi "s" märkimine viimase sisendparameetrina.

Neljas rühm on funktsioonid filtrite järjekorra määramiseks, mis põhinevad kindlaksmääratud sageduskarakteristiku parameetritel (läbipääsu- ja seiskamisribade piirsagedused, samuti lubatud lainetus pääsu- ja seiskamisribades). Igal filtritüübil on oma funktsioon vajaliku järjestuse määramiseks: Butterworthi filtri puhul - tagumik, esimest tüüpi Tšebõševi filtri jaoks - cheb1ord, teist tüüpi Tšebõševi filtri jaoks - cheb2ord, elliptilise filtri jaoks - ellipord. Nii nagu eelmise rühma funktsioonid, võimaldavad need funktsioonid määrata diskreetsete filtrite jaoks vajaliku järjestuse (vt allpool). Analoogarvutusvõimaluse märgiks on stringi "s" märkimine viimase sisendparameetrina.

Viies rühm on funktsioonid analoog-lineaarsüsteemide kirjeldusvormide teisendamiseks. Analoogsüsteemide puhul toetatakse nelja sellist kirjeldamismeetodit:

Signaalitöötluse pakett sisaldab funktsioone, mis rakendavad nende nelja analoogsüsteemide esitusviisi vastastikusi teisendusi (ainult funktsioon jääk, mis töötab pooluste ja jääkidega, ei kuulu mitte signaalitöötluspaketti, vaid selle aluseks olevasse MATLAB-i teeki). Need funktsioonid on loetletud järgmises tabelis.

Lõplik vorm Ülekandefunktsiooni polünoomikoefitsiendid Nullid ja poolused Poolused ja jäägid Riigi ruum
Algne vorm
tf2zp jääk tf2ss
Nullid ja poolused zp2tf zp2ss
Poolused ja jäägid jääk
Riigi ruum ss2tf ss2zp

jääk saab teisendada mõlemas suunas. Teisenduse suuna määrab sisend- ja väljundparameetrite arv.

Tabelis loetletud funktsioonid, välja arvatud funktsioon jääk, saab teostada ka diskreetsete süsteemide teisendusi, kuna analoog- ja diskreetsüsteemide teisendusvalemid on samad.

Lõpuks peaks kuues rühm sisaldama ainsat funktsiooni sagedused, mis võimaldab arvutada või graafiliselt kuvada analoog-lineaarsüsteemi amplituudi- ja faasisageduskarakteristikuid (AFC ja PFC). Algandmeteks on süsteemi ülekandefunktsiooni lugeja ja nimetaja polünoomide koefitsiendid.

Näitena funktsioonide kasutamisest analoogsüsteemidega töötamiseks arvutame välja neljanda järgu elliptilise madalpääsfiltri, mille piirsagedus on 3 kHz, sagedusreaktsiooni pulsatsioon pääsuribas on võrdne 1 dB ja signaali summutus stopperibal 20 dB ja seejärel joonistage selle sageduskarakteristik ja faasivastus .

Ellip(4, 1, 20, 2*pi*3000, "s"); % filtri arvutamine
f = 0:10:10000; % sagedusvektor sagedusreaktsiooni ja faasireaktsiooni arvutamiseks
h = sagedus(b, a, 2*pi*f); % kompleksne ülekandetegur
alamplot(2, 1, 1)

võre
alamplot(2, 1, 2)
graafik(f, unwrap(angle(h))*180/pi) faasivastuse % graafik (kraadides)
võre

Näidiskoodis kasutatav funktsioon lahti pakkima välistab ebaolulised hüpped faasireaktsioonis 360° juures.

Seda funktsioonide kategooriat on üsna palju ja see ühendab mitmesuguseid tööriistu diskreetsete lineaarsete süsteemide analüüsimiseks - tavaliselt esitatakse ülekandefunktsiooni lugeja ja nimetaja polünoomide koefitsientide vektorite kujul (in z-piirkonnad).

Funktsioon freqz on funktsiooni diskreetne analoog sagedused, võimaldab see arvutada kompleksse edastuskoefitsiendi või joonistada diskreetse süsteemi sagedusreaktsiooni ja faasireaktsiooni. Algandmeteks on süsteemi ülekandefunktsiooni lugeja ja nimetaja polünoomide koefitsiendid.

Funktsiooniga sarnane freqz funktsioon töötab grpdelay, mis võimaldab arvutada või graafiliselt kuvada diskreetfiltri poolt sisestatud rühmaviivituse sagedussõltuvust.

Funktsioon impz ette nähtud diskreetse süsteemi impulssreaktsiooni arvutamiseks või graafiliseks kuvamiseks. Algandmed, nagu ka eelmiste funktsioonide puhul, on süsteemi ülekandefunktsiooni lugeja ja nimetaja polünoomide koefitsiendid.

Funktsioon zplane võimaldab kuvada süsteemi nullid ja poolused komplekstasandil, kujutades lisaks ühikringi, mis piirab pooluste asukoha lubatud pindala jätkusuutlik diskreetne süsteem. Algandmeteks võivad olla kas lugeja ja nimetaja polünoomide koefitsientide vektorid või otse süsteemi ülekandefunktsiooni nullide ja pooluste vektorid.

Funktsioon filternorm võimaldab arvutada norm diskreetne filter. Seda parameetrit kasutatakse näiteks järjestikuse (kaskaad) kujul rakendatud filtri üksikute sektsioonide skaleerimistegurite valimisel, et vähendada ümardamisvigu. Toetatud on kaks võimalust: 2-norm ja -norm. 2-norm tähistab ruutkeskmine filtri sageduskarakteristiku väärtus (või, mis on sama asi, filtri impulssreaktsiooni ruutude summa juur) ja -norm on maksimaalselt sagedusreaktsiooni väärtus.

Funktsioon fvtool on sisuliselt graafiline keskkond, mis on loodud diskreetsete süsteemide omaduste analüüsimiseks ja visualiseerimiseks (Filter Visualization Tool). Erinevalt teistest paketi graafilistest keskkondadest fvtool tõesti on funktsiooni, kuna selle kutsumisel on vaja sisendparameetrite olemasolu - analüüsitava filtri ülekandefunktsiooni lugeja ja nimetaja polünoomide koefitsiente. Selle funktsiooni oluline eelis on võime samaaegselt vaadata omadusi mitu filtrid. Selle funktsiooni pakutav graafiline kasutajaliides on peaaegu sama, mis FDATool filtri analüüsi- ja sünteesikeskkonnas. Allpool on näide funktsioonikutsest fvtool ja graafiline aken, mille see loob filtri sisestatud grupi viivituse sagedussõltuvuse näitamise režiimis.

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

Suure rühma moodustavad funktsioonid diskreetsete süsteemide kirjelduste vormide teisendamiseks. Diskreetsete süsteemide puhul toetatakse rohkem esitusviise kui analoogsüsteemide puhul:

  • Süsteemi ülekandefunktsiooni lugeja ja nimetaja polünoomide koefitsiendid.
  • Nullid, poolused ja süsteemi võimendus (ülekandefunktsiooni faktoriseerimine).
  • Poolused ja jäägid (süsteemi ülekandefunktsiooni esitus lihtmurdude summana).
  • Olekuruumi parameetrid.
  • Esitus järjestikuste (kaskaadsete) teist järku sektsioonide komplektina.
  • Esitus võre või võre-redeli struktuuri kujul.

Funktsioonid, mis teisendavad erinevate esituste vahel, on loetletud järgmises tabelis.

Lõplik vorm Ülekandefunktsiooni polünoomikoefitsiendid Nullid ja poolused Poolused ja jäägid Riigi ruum Teise järgu sektsioonid Võre struktuur
Algne vorm
Ülekandefunktsiooni polünoomikoefitsiendid tf2zp jääk tf2ss tf2sos tf2latc
Nullid ja poolused zp2tf zp2ss zp2sos
Poolused ja jäägid jääk
Riigi ruum ss2tf ss2zp ss2sos
Teise järgu sektsioonid sos2tf sos2zp sos2ss
Võre struktuur latc2tf

Nagu tabelist näha, sama funktsioon jääk(see on funktsiooni analoog jääk, mis on loodud töötama diskreetsete süsteemide kirjeldustega) võivad teisendusi teostada mõlemas suunas. Teisenduse suuna määrab sisend- ja väljundparameetrite arv.

Veel kaks funktsiooni manipuleerivad polünoomide koefitsientvektoritega, muutes polünoomi juurte asukohta komplekstasandil. Funktsioon polüskaala korrutab kõik töödeldud polünoomi juured antud koefitsiendiga ja funktsiooniga polüstab paneb kõik polünoomi juured asuma ühikringi sees - selleks pööratakse absoluutväärtuses ühtsust ületavad juured ümber, st nende moodulid asendatakse nende pöördväärtustega ja nende faaside märk pööratakse ümber.

Ülejäänud selle kategooria funktsioonid on abifunktsioonid. Funktsioon sagedusruum arvutab ühtlase vahega sagedusväärtuste vektori, funktsiooni freqzplot on mõeldud sageduskarakteristikute ja funktsiooni graafikute joonistamiseks lahti pakkima võimaldab kõrvaldada ebaolulised hüpped faasi-sageduskarakteristikutes 2p võrra, otsides neid hüppeid vektorielementide vahel ja nihutades soovitud vektori fragmente 2p võrra n.

Lineaarse diskreetse filtreerimise toimimist kirjeldatakse üldiselt järgmiselt:

Siin x(k)- sisendsignaali näidised, y(k)- väljundsignaali näidised, a i Ja b j- konstantsed koefitsiendid. Maksimaalne arv m Ja n nimetatakse filtrijärjestuseks.

Eelmisi väljundnäidiseid ei tohi arvutustes kasutada, siis kõiki a i = 0 ja filtrit kutsutakse mitterekursiivne või põiksuunaline. Kui kasutatakse eelmisi väljundnäidiseid, nimetatakse filtrit rekursiivseks.

Lineaarne diskreetne filtreerimine viitab suvaliste andmete töötlemise tehnoloogiatele, seega on vastav funktsioon filter- ei kuulu signaalitöötluse paketti, vaid on MATLAB-i tuuma sisse ehitatud. Funktsioon filter2, mis on samuti osa MATLAB-i põhiteegist, rakendab kahemõõtmelist diskreetset filtreerimist.

Kuna konstantse koefitsiendi filter on lineaarne ajas muutumatu diskreetne süsteem, võib selle reaktsiooni suvalisele sisendsignaalile esitada järgmiselt. diskreetne konvolutsioon impulssreaktsiooni filtriga sisendsignaal:

Siin h(k)- filtri impulssreaktsiooni näidised. Impulssreaktsioon on filtri reaktsioon ühele sisendile rakendatud ühikuväärtuse näidisele.

Loomulikult saab konvolutsioonivalemit kasutavaid arvutusi praktikas teostada ainult filtri impulssreaktsiooni lõpliku pikkusega. Seda toimingut teostab funktsioon konv; nagu diskreetse filtreerimisalgoritmi rakendamine, ei kuulu see mitte signaalitöötluspaketti, vaid selle aluseks olevasse MATLAB teeki. Tegelikkuses taandub funktsiooni conv rakendamine funktsiooni kutsumisele filter vastavate sisendparameetritega. Funktsioon konv2 rakendab kahemõõtmelist diskreetset konvolutsiooni. Teine MATLAB-i põhiteegi funktsioon on dekonv- rakendab konvolutsiooni ümberpööramist, võimaldades määrata teise sisendvektori konvolutsiooni tulemusest ja ühest sisendvektoritest.

Nagu juba öeldud, kuuluvad ülalmainitud põhilised diskreetsed filtreerimisfunktsioonid MATLAB-i baasteeki; Tegelikult sisaldab signaalitöötluspakett funktsioone, mis lahendavad spetsiifilisemaid filtreerimisprobleeme.

Kõigepealt tuleb märkida, et funktsioon filter võimaldab juurdepääsu filtri sisemisele alg- ja lõppolekule, võimaldades seeläbi korraldada plokksignaali töötlemist. Mõnikord on vaja moodustada filtri sisemise oleku vektor, teades teatud arvu eelnevaid sisend- ja väljundnäidiseid. See arvutus tehakse funktsiooni abil filitika.

Funktsioon fftfilt rakendab diskreetset filtreerimist, kasutades kiiret Fourier' teisendust (FFT) koos signaali jagamisega plokkideks. Sel viisil saab rakendada ainult mitterekursiivseid filtreid. Funktsiooni tulemus langeb kokku (kuni arvutusvigadeni) funktsiooni abil rakendatud tavapärase filtreerimise tulemustega filter. FFT-filtreerimise arvutuskiirus võib aga olla oluliselt suurem, eriti kui sisendsignaali pikkus on kordades suurem kui filtri impulssreaktsiooni pikkus (või vastupidi).

Funktsioon filtfilt võimaldab kompenseerida tavapärase filtreerimisega tekitatud faasinihet (teisisõnu, see funktsioon rakendab filtreerimist ilma viivituseta). See saavutatakse kahesuunalise signaalitöötluse abil. Esimene filtreerimiskäik viiakse läbi tavapärasel viisil ja seejärel filtreeritakse saadud väljundsignaal teist korda - lõpust alguseni. Tänu sellele kompenseeritakse faasinihked ja sellest tulenev filtrite järjestus kahekordistub. Tuleb märkida, et saadud filter (vastab kahele filtreerimiskäigule) ei vasta põhjuslikkuse tingimusele.

Kõrge järgu rekursiivsete filtrite praktilisel rakendamisel kujutatakse neid sageli järjestikku ühendatud teist järku sektsioonidena. See võimaldab meil vähendada ümardamisvigadest ja filtrikoefitsientide kvantiseerimisest tulenevaid arvutusvigu. Seda tüüpi vigade veaanalüüsi tööriistad on koondatud filtrikujunduse paketti ja signaalitöötluspaketil on funktsioon sosfilt, mis võimaldab teil rakendada diskreetset andmete filtreerimist, kasutades teist järku jaotiste kujul esitatud filtrit.

Teine võimalik diskreetne filtristruktuur on võrestruktuur. Sellel vormil esitatud filtri abil filtreerimiseks kasutage funktsiooni latcfilt.

Funktsioon medfilt1, mis rakendab ühemõõtmelist mediaanfiltreerimist, kuulub mittelineaarsete filtreerimisalgoritmide hulka. Selle toimimise olemus seisneb selles, et sisendsignaalile rakendatakse etteantud pikkusega liugaken, akna sees olevad näidised järjestatakse ja väärtus järjestatud akna keskelt (või kahe lähima elemendi poolsummast keskele, kui aken on ühtlase pikkusega) tagastatakse väljundnäidisena. Mediaanfiltreerimist kasutatakse näiteks impulssmüra (klõpsude) kõrvaldamiseks helisignaalide töötlemisel. Funktsioon medfilt2, mis rakendab mediaanfiltrimise kahemõõtmelist versiooni, asub pilditöötluspaketis.

Funktsioon sgolayfilt teostab diskreetset filtreerimist, kasutades Savitzky-Golay filtrit. Selle olemus seisneb selles, et sisendsignaal jagatakse etteantud suurusega plokkideks ja iga ploki sees teostatakse minimaalse keskmise ruutvea kriteeriumi järgi signaali polünoomiline lähendamine antud astme polünoomiga. Kui polünoomide aste on plokkide suurusest ühe võrra väiksem, võrdub väljundsignaal sisendsignaaliga; väiksema polünoomiastmega signaal ühtlustub. Savitzky-Golay filtreid kasutatakse signaalide "puhastamiseks" mürast.

Diskreetse filtri süntees tähendab selliste koefitsientide komplektide ( a i) ja ( b i), mille puhul saadud filtri omadused vastavad kindlaksmääratud nõuetele. Rangelt võttes hõlmab projekteerimisülesanne ka sobiva filtristruktuuri valimist, võttes arvesse arvutuste lõplikku täpsust. See kehtib eriti filtrite rakendamisel riistvaras - kasutades spetsiaalseid LSI-sid või digitaalseid signaaliprotsessoreid. Arvutuste lõpliku täpsusega seotud mõjusid saab analüüsida paketi Filter Design funktsioonide abil; filtri sünteesi funktsioonid ei võta neid mõjusid arvesse.

Signaalitöötluspaketil on suur hulk funktsioone, mis rakendavad erinevaid algoritme diskreetsete filtrite sünteesiks. Esitame nende funktsioonide põhiomadused tabeli kujul ja anname seejärel mõned lisakommentaarid.

Funktsioon Filtri tüüp sageduskarakteristik Sünteesi meetod
võid Korduv Butterworth Bilineaarne z-teisendus
cheby1 Korduv esimest tüüpi Tšebõšev Bilineaarne z-teisendus
cheby2 Korduv teist tüüpi Tšebõšev Bilineaarne z-teisendus
ellip Korduv Cauera (ellipsikujuline) Bilineaarne z-teisendus
bilineaarne Korduv Bilineaarne z-teisendus
impinvar Korduv Suvaline analoog prototüüp Invariantne impulssvastuse teisendus
yulewalk Korduv Tükkide kaupa lineaarne Autoregressiivne meetod
invfrekz Korduv tasuta edastusfunktsiooni lugeja ja selle nimetaja korrutise ning soovitud sagedusreaktsiooni vahelise erinevuse minimeerimine
prony Korduv Süntees etteantud impulssreaktsioonist Eksponentsiaalne prony lähendus
kuusk1 Mitterekursiivne Multiband
kuusk2 Mitterekursiivne Tükkide kaupa lineaarne Fourier pöördteisendus akende abil
firlid Mitterekursiivne Keskmise ruutvea minimeerimine
fircls Mitterekursiivne Tükkide kaupa konstant
fircls1 Mitterekursiivne LPF, HPF Ruutkeskmise vea minimeerimine maksimaalse hälbe piiranguga
firrcos Mitterekursiivne LPF Koosinuse silumine
sissetung Mitterekursiivne LPF Minimaalne ligikaudne väärtus
remez Mitterekursiivne Tükkide kaupa lineaarne üleminekutriipudega Minimaalne ligikaudne väärtus
cremez Mitterekursiivne (sh mittelineaarse faasivastuse ja komplekssete koefitsientidega) Tükkide kaupa lineaarne üleminekutriipudega Minimaalne ligikaudne väärtus

Diskreetsete filtrite sünteesimise meetodid võib jagada kahte suurde rühma: analoogprototüübiga ja ilma. Prototüübi analoogfiltri kasutamisel on vaja kuidagi esindada s-domeenis defineeritud analoogedastusfunktsiooni z-domeenis defineeritud diskreetseks ülekandefunktsiooniks. Signaalitöötluse pakett rakendab selliseks teisenduseks kahte meetodit: invariantset impulssreaktsiooni meetodit ja bilineaarset z-teisendusmeetodit. Mõlema meetodi tulemuseks on rekursiivsed diskreetsed filtrid.

Invariantse impulssvastuse meetodi kasutamisel valitakse analoogprototüübi impulssreaktsioon. Saadud diskreetfiltri sageduskarakteristik on vastavalt analoogprototüübi perioodiliselt korduv sageduskarakteristik. Sel põhjusel ei sobi see meetod kõrgpääsfiltrite ja üldiselt selliste filtrite sünteesiks, mille ülekandekoefitsient ei kipu sageduse suurenedes nulli minema. Invariantne impulssreaktsiooni meetod on realiseeritud paketis Signal Processing funktsiooni abil impinvar.

Bilineaarse z-teisendusmeetodi kasutamisel moonutatakse analoogprototüübi omadusi ainult piki sagedustelge. Sel juhul teisendatakse analoogfiltri sagedusvahemik (nullist lõpmatuseni) diskreetfiltri töösagedusvahemikuks (nullist pooleni diskreetimissagedusest). Sagedustelje teisendust kirjeldatakse arktangensi funktsiooniga, nii et diskreetimissagedusest oluliselt madalamad sagedused teisendatakse ligikaudu lineaarselt. Seda meetodit rakendatakse funktsiooni abil bilineaarne suvalise analoogprototüübi jaoks. Lisaks on olemas valmisfunktsioonid madal- ja kõrgpääsfiltrite, ribapääs- ja sälkfiltrite arvutamiseks bilineaarse z-teisendusmeetodi abil, kasutades analoogprototüüpe, mille sagedusreaktsioon on Butterworth, esimest ja teist tüüpi Chebyshev, samuti Cauer (elliptilised filtrid). Seda vastavalt funktsioonile või, cheby1, cheby2 Ja ellip. Kõiki neid funktsioone saab kasutada ka analoogfiltrite arvutamiseks (vt varem). Diskreetse arvutusvõimaluse märk on stringi “s” puudumine sisendparameetrite loendis. Samuti on olemas funktsioonid nende filtrite vajaliku järjekorra määramiseks kindlaksmääratud sageduskarakteristiku parameetrite alusel (läbipääsu- ja seiskamisribade piirsagedused, samuti nende sagedusalade lubatud pulsatsioon). Seda vastavalt funktsioonile buttord, cheb1ord, cheb2ord, ellipord. Nii nagu filtrite sünteesi funktsioonid, võimaldavad need funktsioonid määrata analoogfiltrite jaoks vajaliku järjestuse (vt varem). Diskreetse arvutusvõimaluse märk on stringi “s” puudumine sisendparameetrite loendis.

Näitena sünteesime neljandat järku elliptilise madalpääsfiltri, millel on samad parameetrid nagu analoogfiltril ühes eelmistes näidetes (läbisagedus 3 kHz, sagedusreaktsiooni pulsatsioon pääsuribas 1 dB ja signaali summutus stopperibal). 20 dB). Võtame diskreetimissageduseks 12 kHz. Pärast sünteesi koostame funktsiooni abil saadud filtri sageduskarakteristiku ja faasireaktsiooni graafikud freqz.

    Fs = 12000; % diskreetimissagedus
    F0 = 3000; % lõikesagedus
    = ellip(4, 1, 20, F0/Fs*2); % filtri arvutamine
    freqz(b, a, , Fs); % graafiku väljund

Sünteesimeetodeid, mis ei kasuta analoogprototüüpi, nimetatakse otsesteks. Need võib omakorda jagada ka kahte rühma: meetodid rekursiivsete ja mitterekursiivsete filtrite sünteesimiseks.

Mitterekursiivsete filtrite otsese sünteesi funktsioonid hõlmavad järgmist:

  • Funktsioonid, mis rakendavad filtri sünteesi soovitud sageduskarakteristiku Fourier' pöördteisendusega ja sellele järgneva impulssreaktsiooni korrutamisega teatud kaalumisfunktsiooniga (aknaga), et summutada Gibbsi efekti tõttu tekkivaid sagedusreaktsiooni pulsatsioone. Need on funktsioonid kuusk1 Ja kuusk2. See hõlmab ka madalpääsfiltri sünteesi funktsiooni koos sageduskarakteristiku koosinussilumisega - firrcos. Lisaks funktsioon kaiserord võimaldab sageduskarakteristiku etteantud parameetrite alusel hinnata sünteesi käigus Kaiseri akna abil filtrite vajalikku järjestust.
  • Funktsioonid, mis minimeerivad saadud filtri sageduskarakteristiku standardhälbe määratud filtrist. Need on funktsioonid firlid, fircls Ja fircls1. Viimased kaks funktsiooni lahendavad optimeerimisprobleemi, piirates sagedusreaktsiooni maksimaalset kõrvalekallet määratud funktsioonist. See võimaldab vältida suurte sageduskarakteristiku emissioonide ilmnemist üleminekuribade läheduses.
  • Funktsioonid, mis rakendavad minimaxi optimeerimist, st minimeerivad saadud filtri sageduskarakteristiku tipphälbe määratud filtrist. Tulemuseks on ühtlase sageduskarakteristiku pulsatsiooniga filtrid. See rühm sisaldab funktsioone remez(Remezi meetodi standardversioon, mis on rakendatud signaalitöötluspaketi esimestes versioonides) ja cremez(laiendatud versioon, mis toetab mittelineaarse faasireaktsiooni ja komplekssete koefitsientidega filtrite sünteesi). Lisaks funktsioon remezord võimaldab sageduskarakteristiku etteantud parameetrite alusel hinnata sünteesi käigus vajalikku filtrijärjestust Remezi meetodil.

Näitena sünteesime Remezi meetodil 32. järku mitterekursiivse madalpääsfiltri samade lõike- ja diskreetimissagedustega nagu eelmises näites (läbisagedus 3 kHz, diskreetimissagedus 12 kHz). Seadke stopperi alguseks 3,5 kHz. Peale sünteesi koostame graafikud impulssreaktsioonist ja ka saadud filtri sageduskarakteristikust (filtri sageduskarakteristik on lineaarne, seega pole mõtet selle graafikut kuvada). Kuvame sageduskarakteristiku lineaarsel vertikaalsel skaalal, et selgelt näidata selle pulsatsioonide ühtlust.

    Fs = 12000; % diskreetimissagedus
    F0 = 3000; % lõikesagedus
    F1 = 3500; Stopriba algus %
    b = remez(32, , ); % filtri arvutamine
    impz(b) % impulssvastuse graafik
    = freqz(b, 1, , Fs); % kompleksne ülekandetegur
    kujund
    plot(f, abs(h)) % sageduskarakteristiku graafik
    võre

Rekursiivsete filtrite otsese sünteesi funktsioonid hõlmavad järgmist:

  • yulewalk- rekursiivse filtri süntees suvalise tükkhaaval lineaarse sagedusreaktsiooniga Yule-Walkeri meetodil.
  • invfrekz- see funktsioon on mõeldud süsteemide tuvastamise probleemi lahendamiseks; see võimaldab teil määrata diskreetse süsteemi ülekandefunktsiooni lugeja ja nimetaja koefitsiendid selle ülekandefunktsiooni erinevatel sagedustel väärtuste komplektist.

Kokkuvõtteks loetleme rea funktsioone, mis ei kuulu ülaltoodud rühmadesse. Funktsioon maxflat on mõeldud üldistatud Butterworthi filtri sünteesiks (selliste filtrite puhul ületab ülekandefunktsiooni nullide arv selle pooluste arvu). Funktsioon sissetung teostab signaali filtreerimiseks mõeldud filtrite sünteesi interpoleerimise ja detsimeerimise ajal. Vektorkonvolutsiooni operatsiooni saab esitada vektor-maatriksi korrutisena ja selles korrutises osaleva maatriksi saab arvutada funktsiooni abil convmtx. Lõpuks funktsioon sgolay teostab Savitzky-Golay silumisfiltri sünteesi. Kuna, nagu eespool kirjeldatud, töötleb Savitzky-Golay filter üksikuid signaaliplokke, ei ole selline filter statsionaarne süsteem. Seetõttu funktsioon sgolay tagastab terve samaväärse mitterekursiivse filtri ajas muutuvate koefitsientide maatriksi.

Lisaks signaalitöötluse paketile on side- ja filtrikujunduspakettides saadaval mitmeid diskreetseid filtri sünteesifunktsioone.

Sõnad "spektraalanalüüs" on paljude MATLABi kasutajate meelest funktsiooniga tugevalt seotud fft(vt täiendavat jaotist "Diskreetsete signaalide teisendamise funktsioonid"), mis teostab diskreetse Fourier' teisenduse (DFT). See on aga vaid üks-ühele lineaarne teisendus, andmine esitus deterministlik signaal sageduspiirkonnas. Kui analüüsitav signaal on juhuslik, tema jaoks on see ainult mõttekas hinne spektraalne tihedus võimsus, mille arvutamiseks on vaja ühel või teisel viisil teostada olemasolevate andmete keskmistamine. Lisaks teame teatud juhtudel analüüsitava signaali kohta mingit lisateavet ning seda infot on soovitav spektraalanalüüsi käigus arvesse võtta.

Juhuslike signaalide spektraalanalüüsi meetodid jagunevad kahte suurde klassi - mitteparameetrilised ja parameetrilised. IN mitteparameetriline(mitteparameetrilised) meetodid kasutavad ainult analüüsitud signaali näidistes sisalduvat teavet. Parameetriline(parameetrilised) meetodid eeldavad mõne statistilise olemasolu olemasolu mudelid juhuslik signaal ja spektraalanalüüs hõlmab sel juhul määramist parameetrid see mudel. Kasutatakse ka terminit Model-Based Spectrum Analysis (MBSA).

Signal Processing pakett sisaldab funktsioone, mis rakendavad erinevaid spektraalanalüüsi meetodeid – nii parameetrilisi kui ka mitteparameetrilisi (tuleb veel kord rõhutada, et spektraalanalüüsi all peame silmas hindamist juhusliku protsessi võimsusspektri tihedus). Lisaks on olemas funktsioonid juhuslike diskreetsete signaalide muude keskmistatud karakteristikute saamiseks.

Diskreetse juhusliku protsessi spektraalkarakteristikute määramiseks arvutatakse selle piiratud pikkusega fragmendi keskmine võimsusspekter ja seejärel kaldub fragmendi pikkus lõpmatuseni:

. (1)

Siin x(k) - juhusliku protsessi näidised, T- proovivõtuperiood. Ülaltoodud riba tähistab teostuste kogumi keskmistamist.

Lisaks saab seda spektrit väljendada juhusliku protsessi korrelatsioonifunktsiooni kaudu:

. (2)

See avaldis on Wiener-Khinchin teoreemi diskreetne analoog: diskreetse juhusliku protsessi spekter on selle korrelatsioonifunktsiooni Fourier' teisendus.

Nagu juba mainitud, kasutatakse mitteparameetriliste meetodite kasutamisel juhusliku protsessi spektri arvutamiseks ainult signaali näidistes sisalduvat teavet, ilma täiendavate eeldusteta. Signaalitöötluse pakett rakendab kolme sellist meetodit – periodogrammi, Welchi meetodit ja Thomsoni meetodit.

Perioodogramm on võimsusspektri tiheduse hinnang, mis on saadud N loeb üks teostus juhuslik protsess definitsiooni (1) järgi (loomulikult mitte piirangut võttes, vaid lõpliku arvu termineid keskmistades). Kui spektriarvutustes kasutatakse kaalumisfunktsiooni (akent), kutsutakse välja saadud võimsusspektri hinnang modifitseeritud periodogramm(muudetud periodogramm):

Seos (2) on täidetud ainult lõpmatu arvu kasutatud valimite puhul, seega mis tahes lõpliku korral N Võimsusspektri tiheduse periodogrammi hinnang osutub ümberasustatud- selgub, et summa (2) sees korrutatakse signaali korrelatsioonifunktsioon kolmnurkse kaalufunktsiooniga. Lisaks saab näidata, et periodogramm ei ole võimsusspektri tiheduse kehtiv hinnang, kuna dispersioon selline hinnang on võrreldav selle matemaatilise ootuse ruuduga N. Kasutatavate proovide arvu suurenedes hakkavad periodogrammi väärtused üha kiiremini kõikuma - selle graafik muutub üha sakilisemaks.

Signaalitöötluspaketis arvutatakse periodogramm (ka modifitseeritud) funktsiooni abil periodogramm.

Perioodogrammi sakilisuse vähendamiseks on vaja rakendada mingisugust keskmistamist. Bartlett tegi ettepaneku jagada analüüsitud signaal mittekattuvateks segmentideks, arvutada iga segmendi jaoks periodogramm ja seejärel need periodogrammid keskmistada. Kui signaali korrelatsioonifunktsioon segmendi kestuse jooksul väheneb tühiste väärtusteni, võib üksikute segmentide periodogramme pidada sõltumatuks. Welch täiustas Bartletti meetodit kaks korda: kasutas kaalumisfunktsiooni ja jagas signaali kattuv killud. Kaalumisfunktsiooni kasutamine võimaldab vähendada spektri hajumist ja võimsustiheduse spektri tulemuseks oleva hinnangu kallutatust eraldusvõime kerge halvenemise hinnaga. Kattuvad segmendid võeti kasutusele nende arvu suurendamiseks ja hinnangu dispersiooni vähendamiseks.

Arvutused Welchi meetodil (nimetatakse ka keskmistatud modifitseeritud periodogrammi meetodiks) on korraldatud järgmiselt: signaali valimite vektor jagatakse kattuvateks segmentideks, iga segment korrutatakse kasutatud kaalumisfunktsiooniga, kaalutud segmentide jaoks arvutatakse modifitseeritud periodogrammid, periodogrammid kõigist segmentidest on keskmistatud.

Welchi meetod on spektraalanalüüsi kõige populaarsem periodogrammi meetod. Signaalitöötluspaketis on see realiseeritud funktsiooni abil pwelch.

Funktsiooniga realiseeritud Tomsoni meetod pmtm, olenevalt kasutusest pikendada sferoidseid funktsioone(prolaadi sferoidsed funktsioonid). Need piiratud kestusega funktsioonid tagavad energia maksimaalse kontsentratsiooni antud sagedusribas. Lisaks spektraalsele hindamisele endale funktsioon pmtm võib tagastada oma usaldusvahemiku. Prolate sfääriliste funktsioonide arvutamine võtab aega, nii et funktsiooni mitu korda kasutades pmtm Arvutamist saate kiirendada, kui arvutate eelnevalt välja analüüsiks vajalikud funktsioonid ja salvestate need andmebaasi. Sellise andmebaasiga töötamiseks (see on MAT-fail nimega dpss.mat) on funktsioonide perekond, mille nimed algavad tähtedega dpss (dpss- funktsioonide arvutamine, dpssload- funktsioonide perekonna laadimine andmebaasist, dpsssave- funktsioonide perekonna salvestamine andmebaasi, dpssdir- andmebaasi kataloogi väljund, dpssclear- funktsioonide perekonna kustutamine andmebaasist).

Näitena moodustame eksponentsiaalselt korrelatsiooniga juhusliku protsessi teostuse ja teostame selle spektraalanalüüsi, kasutades kolme loetletud meetodit. Juhuslik signaal, mida vajame, genereeritakse normaalse diskreetse valge müra laskmisega läbi esimest järku rekursiivse filtri:

X0 = randn(1, 1000);
a = 0,9;
X = filter(1, , X0);

Koostame periodogrammi:

periodogramm (X, , , 1)

Nagu näete, osutub periodogramm üsna sakiliseks. Nüüd hindame sama teostuse spektrit, kasutades Welchi meetodit:

pwelch(X, , , , 1)

Graafiku ebakorrapärasus osutub palju väiksemaks. Lõpuks kasutame Thomsoni meetodit:

pmtm(X, , , 1)

Funktsiooni väljundis pmtm Graafik näitab usaldusvahemiku piire koos võimsusspektri hinnanguga.

Parameetriliste meetodite kasutamine eeldab teatud matemaatika olemasolu mudelid analüüsitud juhuslik protsess. Sel juhul taandub spektraalanalüüs optimeerimisprobleemi lahendamisele ehk sellise otsimisele parameetrid mudelid, milles see on tegelikult vaadeldavale signaalile kõige lähemal. Signaalitöötluse pakett rakendab mitut tüüpi autoregressiivset analüüsi ja kahte meetodit, mis põhinevad signaali korrelatsioonimaatriksi omaväärtuste ja vektorite analüüsil: MUSIC (Multiple SIgnal Classification) ja EV (EigenVectors).

Vastavalt autoregressiivne mudel signaal genereeritakse diskreetse valge müra laskmisega läbi "puhtalt rekursiivse" filtri N- järjekorras. Sellise signaali võimsusspektri tihedus on võrdeline kujundava filtri ülekandefunktsiooni koefitsiendi mooduli ruuduga. Seega taandub see spektraalanalüüsi meetod etteantud järjekorras filtrikoefitsientide määramisele, põneva valge müra võimsuse hindamisele ja võimsuse spektraaltiheduse analüütilisele arvutamisele. Mudeli koefitsientide määramiseks on viga minimeeritud lineaarne ennustus signaal. Teoreetiline analüüs näitab, et mudeli optimaalsed koefitsiendid määratakse ainult signaali korrelatsioonifunktsiooniga.

Praktikas me ei tea uuritava signaali tegelikku korrelatsioonifunktsiooni, seetõttu kasutame ennustusvea minimeerimiseks hinnanguid Aja keskmistamisega saadud CF-d. Välja on töötatud mitmeid autoregressiivseid analüüsimeetodeid, mis erinevad peamiselt lähenemise poolest servaefektide töötlemisele (st nende servasignaalide valimite arvutustesse kaasamise meetodi poolest, mille puhul CF arvutamisel nihutatud paar puudub). Signaalitöötluse pakett rakendab Burgi meetodit, kovariatsioonimeetodit, modifitseeritud kovariatsioonimeetodit ja autoregressiivset Yule-Walkeri meetodit.

Autoregressiivse spektri analüüsi meetodid sobivad kõige paremini signaalide jaoks, mis on tõeliselt autoregressiivsed protsessid. Üldiselt annavad need meetodid häid tulemusi, kui analüüsitava signaali spektril on selgelt määratletud piigid. Eelkõige hõlmavad sellised signaalid mitme müraga sinusoidi summat.

Autoregressiivsete meetodite kasutamisel on oluline valida õigesti autoregressiivse mudeli järjestus - see peaks olema kaks korda suurem siinusvõnkumiste arvust, mida analüüsitav signaal peaks sisaldama.

Iga autoregressiivse analüüsi meetod Signal Processing paketis vastab kahele funktsioonile – mudeli koefitsientide arvutamise funktsioonile ja spektraalanalüüsi enda funktsioonile. Spektri analüüsi funktsioon kutsub välja mudeli koefitsiendi arvutamise funktsiooni ja arvutab seejärel spektri. Funktsioonide nimed on kokku võetud järgmises tabelis.

Meetodi nimi

Funktsioon mudeli koefitsientide arvutamiseks

Spektraalanalüüsi funktsioon

Kovariatsiooni meetod arcov pcov
Modifitseeritud kovariatsioonimeetod armcov pmcov
Bergi meetod arburg pburg
Autoregressiivne Yule-Walkeri meetod aryule pylear

Ülaltoodud näites genereeritud eksponentsiaalselt korreleeritud juhuslik signaal on esimest järku autoregressiivne protsess, mistõttu on loetletud spektraalanalüüsi meetodid selle jaoks üsna piisavad. Rakendame Bergi meetodit, määrates autoregressiivse mudeli järjekorra võrdseks ühega (see on funktsiooni teine ​​parameeter pburg):

pburg(X, 1, , 1)

Saadud sujuv kõver langeb praktiliselt kokku selle juhusliku protsessi teoreetilise spektriga.

MUSIC (Multiple SIgnal Classification) meetod on mõeldud selliste signaalide spektraalanalüüsiks, mis on valge müraga mitme sinusoidi (täpsemalt üldjuhul mitme kompleksse eksponentsiaali) summa. Selliste signaalide spektraalanalüüsi eesmärk ei ole reeglina spektri kui sellise arvutamine, vaid harmooniliste komponentide sageduste ja tasemete (amplituudide või võimsuste) määramine. MUSIC meetod on just selleks mõeldud, seetõttu nimetatakse selle abil saadud signaalitaseme sõltuvust sagedusest pseudospekter(pseudospekter).

Meetod põhineb signaali korrelatsioonimaatriksi omaväärtuste ja omavektorite analüüsil. Analüüsi läbiviimisel on vaja täpsustada mudeli järjekorda ehk signaalis eeldatavalt sisalduvate komplekssete eksponentsiaalide arvu.

Signal Processing paketis on MUSIC meetod realiseeritud funktsiooni abil pmuusika ja funktsioon juurmuusika võimaldab teil saada hinnanguid signaali harmooniliste komponentide sageduste ja võimsuste kohta.

MUUSIKA lähisugulane on omavektorite (EV) meetod. Selle ainus erinevus seisneb selles, et arvutusvalemites korrutatakse omavektorid vastavate omaväärtustega pöördvõrdeliste kaalukoefitsientidega. Kirjanduses teatatakse, et EV-meetod tekitab vähem valespektri piike kui MUSIC ja annab üldiselt parema esituse müra spektri kujust.

Signal Processing paketis on EV meetod realiseeritud funktsiooni abil peig ja funktsioon rooteig võimaldab teil saada hinnanguid signaali harmooniliste komponentide sageduste ja võimsuste kohta.

Tuleb rõhutada, et pseudospektrid ei ole tegeliku võimsustiheduse spektri hinnangud, vaid on ainult spektraalsed pseudohinnangud, mis võimaldab hinnata sinusoidsete või kitsaribaliste signaalikomponentide sagedusi autoregressiivsete meetodite omast veidi kõrgema eraldusvõimega.

Diskreetne Fourier' teisendus, mida kasutatakse kõigis mitteparameetrilistes spektraalhinnangu meetodites, eeldab analüüsitud signaalifragmendi perioodilist jätkamist. Sel juhul võivad fragmentide ristmikel tekkida hüpped, mis põhjustavad spektripiirkonnas märkimisväärse tasemega külgsagarate ilmumist. Selle efekti nõrgendamiseks korrutatakse signaal enne DFT sooritamist keskelt servadeni väheneva signaaliga. kaalufunktsioon (aken). Selle tulemusena väheneb hüpete suurus segmentide ristmikel ja ka spektri soovimatute külgsagarate tase muutub väiksemaks - selle hind on spektripiikide teatav laienemine.

Lisaks spektraalanalüüsile kasutatakse kaalumisfunktsioone mitterekursiivsete filtrite sünteesil soovitud sagedusreaktsiooni Fourier pöördteisendusega. Sel juhul võimaldavad need pääsuriba mõningase laienemise tõttu suurendada signaali summutamist filtri peatusribas.

Praegu sisaldab Signal Processing pakett kümmekond kaalumisfunktsiooni. Osade levik on tingitud arvutuslikust lihtsusest, teised on mõnes mõttes optimaalsed.

Lihtsaim on funktsiooni abil rakendatud ristkülikukujuline aken rectwin(paketi versioonides kuni 5.0 (kaasa arvatud) oli sellel funktsioonil nimi kastiauto). Ristkülikukujuline aken vastab kaalumise puudumisele; see funktsioon sisaldub paketis ainult kaalumisfunktsioonide komplekti formaalseks täielikuks. Kolmnurkne aken on realiseeritud funktsiooniga kolmnurk, on Bartletti aknal ka kolmnurkne kuju (funktsioon bartlett), erineb see ainult veidi arvutusmeetodi poolest.

Mitmed kaalumisfunktsioonid on harmooniliste komponentide kombinatsioonid. Loetleme need koosinusliikmete arvu suurenevas järjekorras:

  • Hanna aken (funktsioon hann), mida mõnikord nimetatakse valesti Hanningi aknaks, on üks koosinustermin.
  • Hamming aken (funktsioon löömine) – üks koosinusliige.
  • Blackmani aken (funktsioon must mees) – kaks koosinusterminit.
  • Blackman-Harrise aken (funktsioon blackmanharris) – kolm koosinusterminit.
  • Nuttall aken (Blackman-Harrise akna alternatiivne versioon, funktsioon nuttallwin) – kolm koosinusterminit.

Ülejäänud aknaid kirjeldavad keerulisemad matemaatilised seosed. Gaussi akna kuju (funktsioon gausswin) on iseenesestmõistetav. Muudetud Bartlett-Hanna aken (funktsioon barthannwin) on Bartletti ja Hanna akende lineaarne kombinatsioon. Beaumani aken (funktsioon bohmanwin) on kahe identse koosinusimpulsi konvolutsioon. Tšebõševi aken (funktsioon chebwin) on fikseeritud tasemega (määratud arvutuse käigus) külgsagaratega ja see arvutatakse akna sageduskarakteristiku Fourier pöördteisendusega. Kaiseri aken (funktsioon keiser) on ka parameeter, mis reguleerib külgsagara taset ja põhisagara laiust; selle akna arvutamisel kasutatakse muudetud Besseli funktsioone. Tukey aken (funktsioon tukeywin) on koosinusega silutud servadega ristkülik. Silumiskoefitsiendi äärmuslike väärtuste korral muutub see ristkülikukujuliseks aknaks või Hanni aknaks.

Lõpuks funktsioon aken pakub üldist liidest aknaspetsiifiliste arvutusfunktsioonide kutsumiseks.

Sellesse kategooriasse kuuluvad funktsioonid arvutavad signaalide erinevaid statistilisi parameetreid. Funktsioonid võib jagada mitmeks rühmaks.

Esimene rühm on seotud korrelatsiooni- ja kovariatsioonifunktsioonide arvutamisega (siinkohal tuleb meenutada, et kodumaises ja välismaises terminoloogias need mõisted ei lange kokku, käesolevas ülevaates on kasutatud MATLABis vastu võetud välismaist versiooni). Funktsioon xcorr võimaldab hinnata signaali korrelatsioonifunktsiooni või kahe signaali ristkorrelatsioonifunktsiooni. Nimetatakse selle funktsiooni varianti, mis on mõeldud töötamiseks kahemõõtmeliste signaalidega xcorr2. Funktsioon xcov on mõeldud signaali kovariatsioonifunktsiooni või kahe signaali vastastikuse kovariatsioonifunktsiooni hindamiseks. Funktsioonid cov Ja corrcoef, mis sisaldub MATLAB-i baasteekis, võimaldavad teil saada vastavalt kovariatsioonimaatriksi ja korrelatsioonikoefitsientide maatriksi, keskmistades mitu juhuslike andmete realisatsiooni. Funktsioon corrmtx tagastab vaheandmete maatriksi, et hinnata signaali korrelatsioonimaatriksit, ja saab tagastada ka selle maatriksi enda.

Järgmine funktsioonide rühm arvutab sageduspiirkonna statistilised karakteristikud Welchi mitteparameetrilise meetodi abil (vt eespool). Funktsioon csd mõeldud hindamiseks vastastikune spektraalne tihedus kaks juhuslikku protsessi. Samuti võib see tulemuseks oleva hinnangu jaoks tagastada usaldusvahemiku. Funktsioon sidusad annab hinnangu mooduli ruudu kohta vastastikuse sidususe funktsioonid kaks juhuslikku protsessi. Funktsioon tfe võimaldab hinnata kompleksne ülekandekoefitsient süsteem oma sisend- ja väljundsignaalide rakendamiseks.

Lõpuks funktsioon psdplot Kasutatakse kõigis spektraalhinnangu funktsioonides võimsusspektri tiheduse joonistamiseks. Seda võib nimetada ka eksplitsiitselt – näiteks kuvada graafikut vaikimisi logaritmilise asemel lineaarsel skaalal või näidata ühel graafikul mitut spektrit.

Parameetriline modelleerimine ja lineaarsed ennustusfunktsioonid

Under parameetriline modelleerimine viitab juhusliku protsessi teatud matemaatilise mudeli valimisele ja sellele järgnevale selle mudeli parameetrite valikule, et tagada maksimaalne vastavus mudeli poolt genereeritud signaali ja olemasoleva reaalse andmevalimi vahel.

Üks praktikas laialdaselt kasutatav on autoregressiivne (AR) mudel, milles juhuslik signaal genereeritakse diskreetse valge müra laskmisega läbi "puhtalt rekursiivse" (st sisendsignaali viivitatud näidiseid kasutamata) kujundava filtri. Signaalitöötluspaketi neli funktsiooni - arburg, arcov, armcov Ja aryule- on mõeldud kujundava filtri koefitsientide ja filtrit erutava valge müra hajuvuse (võimsuse) hinnangute saamiseks. Nende funktsioonide poolt kasutatavad arvutusmeetodid on toodud varem, jaotises “Autoregressiivsed meetodid”, kus käsitleti autoregressiivset spektraalanalüüsi.

Kui meil on hinnang kompleksne ülekandetegur süsteemid erinevatel sagedustel, on võimalik ehitada süsteemist teostatav mudel, mille sageduskarakteristik on võimalikult lähedane mõõdetavale. Süsteemi realiseeritavus tähendab siinkohal selle ülekandefunktsiooni esindatavust murdarvulise ratsionaalfunktsiooni kujul lugeja ja nimetaja polünoomide etteantud järkudega. Parameetriline modelleerimine taandub sel juhul ülekandefunktsiooni lugeja ja nimetaja polünoomide optimaalsete koefitsientide leidmisele. Selle probleemi lahendavad kaks signaalitöötluspaketi funktsiooni: funktsioon invfrekv võimaldab teil luua analoogsüsteemi mudeli ja funktsiooni invfrekz teeb sarnase toimingu, kui seda rakendatakse diskreetsetele süsteemidele.

Parameetrilise modelleerimise probleemi teine ​​versioon hõlmab süsteemi mudeli koostamist selle olemasoleva hinnangu põhjal impulssreaktsioon. Signaalitöötluspaketis on selleks kaks funktsiooni. Funktsioon prony kasutab tõsiasja, et rekursiivse diskreetse süsteemi impulssreaktsioon mitme pooluse puudumisel on diskreetsete eksponentsiaalfunktsioonide summa (üldjuhul kompleks). Selle funktsiooniga rakendatud algoritmi töötas algselt välja 18. sajandil parun de Prony eesmärgiga sobitada eksponentsiaalse analüütilise mudeli parameetrid katseandmetega. Saadud süsteemi stabiilsus ei ole garanteeritud, vaid esimene n loeb ( n- süsteemi edastusfunktsiooni lugeja järjestus) selle impulssreaktsiooni arvutamisel täpsustatud täpseltühtivad täpsustatutega.

Süsteemi impulssreaktsiooni järgi modelleerimise teine ​​funktsioon on funktsioon stmcb- ei püüa tagada impulssreaktsioonide algsete fragmentide täpset vastavust - selle asemel minimeerib standardhälve antud karakteristikku saadud karakteristikku ehk saadud ja soovitud impulsskarakteristikute valimite erinevuste moodulite ruutude summat. Funktsioon rakendab Steiglitz-McBride iteratiivset meetodit, mis taandub lineaarvõrrandisüsteemi korduvale lahendamisele soovitud süsteemi ülekandefunktsiooni polünoomide kordajate suhtes.

Näitena saame kolmandat järku süsteemi mudeli, kasutades Prony ja Steiglitz-McBride meetodeid, seades näidisena kolmnurkse impulssreaktsiooni:

h = ; % impulssreaktsioon
= prony(h, 3, 3); % Prony meetod
= stmcb(h, 3, 3); % Steiglitz-McBride meetod
Saadud süsteemide impulssreaktsioonide % graafikud
impz(b1, a1, 30)
pealkiri ("Prony")
kujund
impz(b2, a2, 30)
pealkiri ("Stmcb")

Graafikute võrdlus näitab selgelt nende kahe algoritmi erinevusi. Prony meetodi kasutamisel langevad saadud impulssreaktsiooni esimesed neli näidist täpselt kokku määratud väärtustega, kuid edasised kõrvalekalded määratud väärtustest suurenevad oluliselt ja pärast määratud fragmendi lõppu tekib "saba" on täheldatud üsna kõrget taset, kuna funktsioon prony ei tee mingeid eeldusi nõutavate impulssreaktsiooni väärtuste kohta väljaspool antud fragmenti. Funktsioon stmcb minimeerib ruutkeskne taasesituse viga lõputu impulssreaktsioon ja selgesõnaliselt määratletud fragmendi lõpus loetakse see võrdseks nulliga. Selle tulemusena ei täheldata valimite täpset vastavust antud ja vastuvõetud impulssreaktsioonidele (erandiks on esimene), kuid karakteristiku reprodutseerimise viga "jaotub" proovide vahel ühtlasemalt.

Kui diskreetne juhuslik protsess ei ole valge müra, osutuvad selle valimid selleks korrelatsioonis koos. See võimaldab, teades protsessi korrelatsioonifunktsiooni, ennustada selle järgmise loenduse väärtus. Prognoositav väärtus arvutatakse eelmiste protsessinäidiste lineaarse kombinatsioonina. See on peamine idee lineaarne ennustus. Lineaarset ennustamist kasutatakse parameetriliseks spektraalanalüüsiks (vt varem), süsteemi tuvastamiseks, kõnesignaalide analüüsiks ja teabe kokkusurumiseks nende edastamise ajal.

Lineaarsel ennustamisel põhinevaid süsteemide mudeleid saab esitada mitmel kujul ja vastavalt kirjeldada erinevate parameetrite komplektide abil. Signaalitöötluspaketi mitmed funktsioonid võimaldavad teil teisendada mudeli kirjelduse ühest vormist teise. Need funktsioonid on loetletud järgmises tabelis.

Lõplik vorm

Autokorrelatsiooni jada

Peegeldustegurid

Ennustuskoefitsiendid

Arsiini parameetrid

Logaritmilised suhted

Spektrijoonte sagedused

Algne vorm

Autokorrelatsiooni jada

ac2rc, schurrc

Peegeldustegurid

Ennustuskoefitsiendid

Arsiini parameetrid

Logaritmilised suhted

Spektrijoonte sagedused

Lisaks on signaalitöötluspaketil mitmeid muid lineaarse ennustamisega seotud funktsioone. Seega on ennustava filtri koefitsientide arvutamiseks vaja lahendada lineaarvõrrandi süsteem, mille maatriksiks on sisendsignaali korrelatsioonimaatriks. Sellel maatriksil on mitmeid omadusi, mis võivad vähendada lineaarvõrrandisüsteemi lahendamiseks vajalike arvutusoperatsioonide arvu. Esiteks on korrelatsioonimaatriks iseliituv(see tähendab, et see ei muutu pärast selle rakendamist Hermiitlik konjugatsioon- transponeerimise kombinatsioonid komplekskonjugatsiooniga). Reaalse signaali puhul tähendab iseseisvus lihtsalt maatriksi sümmeetriat põhidiagonaali suhtes. Teiseks, statsionaarse juhusliku protsessi korral (ja ainult selliste protsesside puhul saab kasutada konstantsete parameetritega ennustavat filtrit) on korrelatsioonimaatriks Toeplitzi maatriks- piki selle diagonaale, paralleelselt peamisega, on identsed numbrid. Lõpuks tähistab võrrandisüsteemi parem pool korrelatsioonimaatriksi esimest veergu, mis on nihutatud ühe positsiooni võrra. Nimetatakse lineaarvõrrandisüsteeme maatriksitega, millel on näidatud omadused Yule-Walkeri võrrandite süsteemid ja nende lahendamiseks rekursiivne Levinson-Durbini meetod. Seda iteratiivset algoritmi rakendab funktsioon Levinson. Funktsioon rlevinson lahendab pöördülesande - võimaldab leida signaali korrelatsioonifunktsiooni näidiste vektori etteantud lineaarsete ennustuskoefitsientide põhjal.

Funktsioon lpc rakendab lineaarsete ennustuskordajate arvutamist autokorrelatsiooni meetodil ja on funktsiooni analoog aryule(Vt varasemat jaotist parameetrilise spektraalanalüüsi kohta). Ainus erinevus nende kahe funktsiooni vahel on MATLAB-kood, mida kasutatakse korrelatsioonimaatriksi hinnangu arvutamiseks. Nende saadud tulemused langevad kokku täpsusega kuni arvutusvigadeni.

Signaali genereerimise funktsioonid

Signaalitöötluse pakett sisaldab mitmeid funktsioone, mis on loodud erinevate signaalitöötlusrakenduste puhul sageli esinevate standardsete lainekujude genereerimiseks.

Mitteperioodiliste signaalide genereerimine

Kõik funktsioonid mitteperioodiliste signaalide genereerimiseks saavad parameetritena ajahetkede vektori ja genereeritud impulsi parameetreid kirjeldavad lisaargumendid. Tagastatud tulemus on saadud signaali näidiste vektor. Järgmisel kujul signaalide genereerimiseks on funktsioone:

  • rectpuls
  • - ühe ristkülikukujulise impulsi genereerimine, ainus lisaparameeter on impulsi kestus;
  • kolmik
  • - ühe kolmnurkse impulsi genereerimine, lisaparameetrid on impulsi kestus ja selle asümmeetriategur; - ristkülikukujulise spektriga impulsi genereerimine valemiga sinc( x) = patt(lk x)/(lk x). Sellel funktsioonil pole täiendavaid parameetreid;
  • gauspuls
  • - raadioimpulsi genereerimine Gaussi mähisjoonega. Täiendavad parameetrid on kandesagedus, suhteline spektraallaius ja tase (detsibellides), mille juures seda spektrilaiust mõõdetakse;
  • gmonopuls
  • - Gaussi monoimpulsi genereerimine (selle kuju on Gaussi funktsiooni esimene tuletis). Täiendav parameeter on genereeritud signaali spektri keskmine sagedus.

Perioodiliste signaalide genereerimine

Sellesse rühma kuuluvad funktsioonid saavad parameetritena ajahetkede vektori ja genereeritud impulsi parameetreid kirjeldavad lisaargumendid. Loodud signaalide periood on 2p. Erineva perioodiga signaalide genereerimiseks on vaja funktsioonile edastatud ajaargumenti vastavalt skaleerida. Tagastatud tulemus on saadud signaali näidiste vektor. Perioodiliste signaalide genereerimiseks on olemas järgmised funktsioonid:

  • ruut
  • - ristkülikukujuliste impulsside perioodilise jada genereerimine. Täiendav parameeter on impulsi töötsükkel (impulsi kestuse ja impulsi kordusperioodi suhe);
  • saehammas
  • - perioodilise saehamba signaali genereerimine. Täiendav parameeter on perioodilise jada moodustavate kolmnurksete impulsside asümmeetriategur;
  • režissöör
  • - Dirichlet funktsioon. Täiendav parameeter on funktsiooni täisarvude järjestus. Dirichleti funktsioon arvutatakse valemi diric( x) = patt( nx/2)/(n patt ( x/2));

Erineva sagedusega võnkumiste tekitamine

See rühm sisaldab kahte funktsiooni - piiksuma Ja vco. Funktsioon piiksuma tekitab võnkumisi, mille hetkesagedus varieerub vastavalt ühele kolmest võimalikust seadusest – lineaarne, ruut- või eksponentsiaalne. Funktsioonil on rohkem võimalusi vco(Voltage Controlled Oscillator – pingega juhitav ostsillaator), mis võimaldab tekitada võnkumisi hetkesageduse suvalise muutumise seadusega. Sisuliselt teostab see funktsioon sagedusmodulatsiooni.

Pulssrongi genereerimine

Funktsioon pulstraan genereerib sama kujuga impulsside piiratud jada suvaliselt määratud viivituste ja amplituudi kordajatega. Impulsside kuju saab määrata kahel viisil: impulsi genereeriva funktsiooni nimetuse või juba arvutatud näidiste vektori abil.

Näiteks kaaluge funktsioonide kasutamist pulstraan Ja sinc taastada analoogsignaal selle diskreetsetest näidistest vastavalt Kotelnikovi teoreemile.

t = -5:0,1:10; Analoogsignaali aja %
k = 0:5; diskreetse signaali näidiste arv %
sd = ; % diskreetne signaal
sa = pulstran(t, , "sinc"); % rekonstrueeritud analoogsignaal
tüve(k, sd) % graafik diskreetsest signaalist
oota
plot(t, sa, "r") % graafik analoogsignaalist
hoia ära

Diskreetsed signaali muundamise funktsioonid

Võib-olla kõige kuulsam diskreetsete signaalide teisendustest on diskreetne Fourier' teisendus (DFT). Vastav funktsioon, mis kasutab MATLABis kiire Fourier' teisenduse (FFT) algoritmi, klassifitseeritakse andmetöötlusfunktsiooniks ja on sisseehitatud (funktsioonid fft Ja ifft- ühemõõtmeline valik, fft2 Ja ifft2- kahemõõtmeline versioon, fftshift Ja kui vahetust- spektraalnäidiste vektori poolte ümberpaigutamine nullsageduse ülekandmiseks vektori keskele). Tegelikult sisaldab signaalitöötluspakett funktsioone, mis rakendavad spetsiifilisemaid teisendusi.

Nagu iga lineaarset teisendust, saab ka DFT-d esitada kui teisendusmaatriksi korrutamist teisendatud signaali näidiste veeruga. Selle DFT teisendusmaatriksi arvutab funktsioon dftmtx.

Jällegi, DFT lineaarsuse tõttu saab mis tahes spektraalset valimit esitada algse signaali töötlemise tulemusena mõne filtriga. Selle filtri esitamine rekursiivsel kujul annab Goertzeli algoritm, mida rakendab funktsioon goertzel. Kui on vaja arvutada vaid mõned spektraalnäidised, on see algoritm kiirem kui FFT.

DFT lähisugulane on diskreetne koosinusteisendus. Selle arvutamisel peegeldatakse DFT-s eeldatud signaali perioodilise jätkumise asemel jätkuva signaali külgnevaid fragmente ajas. Selle tulemusena muutub signaal aja ühtlaseks funktsiooniks ja selle spekter muutub reaalseks. Sel põhjusel ilmuvad DFT valemis keerukate eksponentsiaalide asemel ainult koosinused, mis andsid sellele teisendusele nime. Funktsioonide abil arvutatakse edasi- ja pöörddiskreetsed koosinusteisendused dct Ja idct vastavalt.

Üks oluline meetod diskreetsete arvujadade analüüsimisel on z-teisendus, mille tulemus on kompleksmuutuja funktsioon z:

.

Paljude probleemide korral on vaja arvutada z-teisendus spiraalsel kontuuril asuvatele punktidele: . Arvutuslikult tõhus z-teise arvutamine piki sellist kontuuri kasutab kiiret Fourier' teisendust; seda rakendatakse funktsioonina czt.

Mõne kiire Fourier' teisendusalgoritmi variandi rakendamisel on efektiivsuse suurendamiseks vaja töödeldava vektori elemendid ümber paigutada vastupidine bitijärjekord(see tähendab, et vektori elementide numbrite binaarsetes esitustes loetakse bitid vastupidises järjekorras ja seejärel järjestatakse vektor vastavalt uutele elementide numbritele). Sellise ümberkorraldamise tegemiseks kasutage funktsiooni bitrevorder.

Kitsasribasignaalide analüüsimisel võib olla kasulik mõelda signaalile kui võnkumisele, mille amplituud ja algfaas muutuvad ajas. Sellise esituse saamiseks kompleks analüütiline signaal, mille reaalosa langeb kokku algse signaaliga ja imaginaarne osa määratakse Hilberti teisendus algsest signaalist. Sageduspiirkonnas iseloomustab analüütilist signaali ühepoolne spekter: selle spektraalfunktsioon on nullist erinev ainult positiivsete sageduste korral. Funktsioon hilbert arvutab analüütilise signaali sageduspiirkonnas, arvutades edasisuunalise DFT, nullides poole spektrist välja ja arvutades seejärel pöörd-DFT.

Näiteks arvutame ristkülikukujulise raadioimpulsi analüütilise signaali:

s = nullid(256,1);
s(65:192) = cos(pi/2*(0:127)"); raadioimpulsside %
sa = hilbert(id); % analüütiline signaal
f = (-128:127)/128; Graafikute normaliseeritud sageduste % väärtused
alamgraafik (2, 1, 1)
plot(f, abs(fftshift(fft(s)))) % tegelik signaalispekter
alamgraafik (2, 1, 2)
plot(f, abs(fftshift(fft(sa)))) % analüütilise signaali spekter

Alumine graafik näitab selgelt spektri nullimist negatiivsete sageduste piirkonnas ja selle kahekordistumist positiivsete sageduste piirkonnas.

Tsepstraalanalüüs

Tsepstraalanalüüs on seotud homomorfse signaalitöötlusega. Sellise töötlemise suhtes kohaldatakse üldist superpositsiooniprintsiipi: kui süsteemi sisendsignaal on kombinatsioon mitmest matemaatilise tehte abil saadud signaalist A, siis väljundis kombineeritakse üksikute signaalide töötlemise tulemused operatsiooni abil B. Tsepstraalanalüüs on leidnud selle rakenduse eelkõige kõnetöötlusprobleemide puhul. Signaalitöötlusel on mitu tsestraalse analüüsiga seotud funktsiooni.

Funktsioon rceps arvutab signaali tegeliku cepstrumi, ignoreerides samal ajal faasispektris sisalduvat teavet. Sama funktsioon võimaldab teil saada minimaalse faasi rekonstrueerimine signaal. Nullid z-Sellise signaali näidiste jada teisendused asuvad komplekstasandil ühikringi sees ja selle cepstrum langeb kokku algsignaali cepstrumiga.

Funktsiooni abil arvutatud kompleksne cepstrum cceps, võtab arvesse nii amplituudi- kui faasiteavet, seega on selle seos algse signaaliga üks-ühele. Funktsioon teostab pöördteisendust, st signaali arvutamist teadaoleva kompleksse cepstrumi abil icceps.

Proovisageduse muutmine

Teisendused hõlmavad ka funktsioonide rühma, mis muudavad signaali diskreetimissagedust. Kõige sagedamini tuleb diskreetimissagedust muuta täisarvuga. Diskreetimissageduse suurendamise korral nimetatakse seda toimingut interpoleerimine ja vähenemise korral - hõrenemine(detsimeerimine). Mis tahes diskreetimissageduse ümberarvutamine nõuab mitme toimingu järjestikust sooritamist. Signaalitöötluse pakett sisaldab funktsioone, mis teostavad nii üksiktoiminguid kui ka nende vajalikke jadasid.

Interpolatsiooni teostamiseks sisestatakse signaalinäidiste vahele vajalik arv nulle (funktsioon ülesproov), siis lastakse saadud signaal läbi madalpääsfiltri. Funktsioon rakendab need kaks etappi koos interp.

Detsimeerimise teostamiseks juhitakse signaal läbi madalpääsfiltri ja seejärel iga N arv (funktsioon allaproov). Funktsioon rakendab need kaks etappi koos detsimeerima.

Interpoleerimis- ja detsimeerimisoperatsioonide kombinatsioon võimaldab muuta diskreetimissagedust suvalise ratsionaalse murdarvuga väljendatud teguri võrra. Arvutuste tõhususe suurendamiseks teostab sellist ümberarvutamist spetsiaalne funktsioon uuesti proov ja see omakorda kutsub funktsiooni välja upfirdn(nullide sisestamine, filtreerimine ja hõrenemine). Peamine erinevus nende kahe funktsiooni vahel on see upfirdn võimaldab määrata kasutatava filtri impulssreaktsiooni ja funktsiooni kasutamisel uuesti proov filter arvutatakse automaatselt.

Lõpuks võib võrdlusmomentide täiesti suvaliseks ümberarvutamiseks kasutada MATLAB-i põhiteegis sisalduvaid üldisi interpoleerimisfunktsioone, nagu näiteks interp1 Ja splain.

Näitena interpoleerime funktsioonide demonstreerimiseks ülaltoodud signaali pulstraan Ja sinc, suurendades diskreetimissagedust neli korda. Null näidised lisatakse signaali servadele, kuna funktsioon interp nõuab, et algse jada pikkus oleks vähemalt üheksa näidist.

sd = ; % algsest signaalist
t = 0:9; % diskreetne aeg algse signaali jaoks
sd4 = interp(sd, 4); % interpolatsioon
t4 = (0:39)/4; % diskreetne aeg interpoleeritud signaali jaoks
algsignaali tüve(t, sd) % graafik
oota
plot(t4, sd4, "x") % graafik interpoleeritud signaalist
hoia ära

Näidatud graafikul on algne signaal näidatud "tüvedena" ja interpoleeritud signaal on näidatud ristidena.

See rühm sisaldab üsna palju funktsioone. Paljud neist on mõeldud peamiselt sisekasutuseks - neid kutsuvad teised paketis olevad funktsioonid. Paljudel selle kategooria funktsioonidel on aga täiesti sõltumatu väärtus.

Funktsioon puhver võimaldab esitada signaalinäidiste vektori järjestikuste kaadrite maatriksiks ja need kaadrid võivad kattuda.

Funktsioonid mod Ja demod teostada vastavalt modulatsiooni ja demodulatsiooni. Toetatud on järgmised modulatsioonitüübid: amplituud, amplituud summutatud kandjaga, ühe külgriba, faas, sagedus, kvadratuur, impulsi laius, impulsi aeg.

Funktsioonid unencode Ja udecode rakendama vastavalt ühtset kvantimist ja signaali taastamist vastavalt kvantimistasemete arvule.

Funktsioon ribad mõeldud signaali graafiku kuvamiseks mitmes reas. See võib olla kasulik, kui peate vaatama pikka signaali tervikuna ja eraldusvõime piki vertikaaltelge ei oma suurt tähtsust.

Funktsioonide perekond, mille nimed algavad sümbolitega dpss, on mõeldud diskreetsete prolaatsete sfääriliste funktsioonide arvutamiseks ja arvutatud funktsioonide salvestamiseks loodud andmebaasiga töötamiseks. Diskreetseid prolaadi sferoidseid funktsioone kasutatakse spektraalanalüüsis Thomsoni meetodil (vt ülalt osa “Spektraalanalüüsi ja statistilise signaalitöötluse funktsioonid”, alajaotis “Mitteparameetrilised meetodid”).

Funktsioonid cell2sos Ja sos2cell võimaldab salvestada teavet filtri kohta, mis on esitatud teise järgu järjestikuste osade kujul, mitte ainult maatriksi, vaid ka lahtrite massiivi kujul. Need kaks funktsiooni teostavad esituse teisendamist nende kahe vormi vahel.

Funktsioon specgramm teostab signaali spektrogrammi, st libiseva akna abil eraldatud järjestikuste signaalifragmentide spektrite arvutamise. Arvutustulemusi saab tagastada maatriksina või kuvada värviliselt aja-sageduse koordinaatidena.

Funktsioon cplxpair identifitseerib kompleksarvude vektorites olevad komplekssed konjugeeritud paarid.

Funktsioon võrduspikkus võimaldab võrdsustada kahe vektori pikkuse, täites lühema vektori lõpu nullidega.

Funktsioon järgnev periood on mõeldud vektorelementide perioodilisuse kontrollimiseks ja nende kordusperioodi määramiseks.

Filtrite sünteesi ja analüüsi programm FDATool (Filter Design & Analysis Tool) on kest funktsioonide kutsumiseks diskreetsete filtrite sünteesiks ja analüüsiks. Kui teil on pakett Filter Design Toolbox, võimaldab see programm analüüsida ka filtrikoefitsientide kvantiseerimisega seotud efekte ja teha filtritüüpide teisendusi (madalpääsfilter kõrgpääsfiltriks jne).

Programm võimaldab teil mitte ainult nullist filtreid arvutada, vaid ka salvestada ja laadida tööseansse ning redigeerida varem salvestatud filtreid. Filtri määratlusi saate importida ka MATLAB-i tööruumist või XILINX CORE Generatori (*.coe) failidest. Imporditud filtreid saab ainult analüüsida.

Analüüsi ajal saate vaadata järgmisi filtri omadusi (paketi uusimates versioonides saate korraga vaadata mitut graafikut):

  • Amplituud-sagedusreaktsioon (AFC).
  • Faasisagedusreaktsioon (PFC).
  • Sagedusreaktsioon ja faasireaktsioon samaaegselt.
  • Grupi viivitus.
  • Faasi viivitus.
  • Impulssreaktsioon.
  • Üleminekuomadus.
  • Nullide ja pooluste asukoht komplekstasandil.
  • Filtri koefitsiendid.
  • Teave filtri struktuuri kohta.

Arvutatud filtrit saab kasutada järgmiselt:

  • Salvestage tööseanss edasiseks redigeerimiseks ja analüüsiks FDATool programmi laadimiseks.
  • Ekspordi MATLAB-i tööruumi.
  • Ekspordi tekstifaili.
  • Ekspordi MAT-faili.
  • Ekspordi C-päise (*.h) faili.
  • Ekspordi SPTooli (vt allpool).

Alloleval joonisel on FDATool programmi aken koos bilineaarse z-teisendusmeetodi abil elliptilise madalpääsfiltri arvutamise tulemustega. Kuvatakse sagedusreaktsiooni ja rühma viivituse graafikud.

Signaalitöötlusprogramm SPTool (Signal Processing Tool) võimaldab teha järgmisi toiminguid: importida signaale MAT-failidest või MATLAB-i tööruumist; vaadata signaaligraafikuid (sh mitut samaaegselt); rakendada signaalidele erinevaid spektraalanalüüsi meetodeid ja vaadata saadud graafikuid; arvutada diskreetseid filtreid kasutades paketifunktsioone (sh nullide ja pooluste asukohta otse redigeerides); lasta signaale läbi filtrite ja analüüsida saadud väljundsignaale.

Tuleb märkida, et filtrite analüüsi ja sünteesi osas on SPTool programmi võimalused kitsamad kui FDATool programmil (ainsaks erandiks on see, et FDATool puudub võimalus nullide ja pooluste asukohta otse redigeerida) . Neid piiranguid kompenseerib aga võimalus eksportida arvutatud filter FDAToolist SPTooli.

Allolevatel joonistel on näha SPTool programmi akna välimus signaaligraafiku vaatamisel, spektri analüüsimisel ning filtri nullide ja pooluste asukoha redigeerimisel.

Paketi versioonis 6.0 (R13) ilmunud programm WinTool (Window Design and Analysis Tool) kaalu (akna) funktsioonide sünteesiks ja analüüsimiseks on kest paketis saadaolevate akende arvutamise funktsioonide kutsumiseks. See näitab akna (või mitme akna samaaegselt) omadusi aja- ja sageduspiirkonnas.

Alloleval joonisel on WinTooli aken koos 64. järku Tšebõševi akna arvutamise tulemustega spektraalse külgsagara tasemega –100 dB. Kuvatakse akna ajadomeeni graafik ja selle spekter.