V navrhovanom cykle „Modelovanie DSP digitálneho spracovania signálov v MATLAbe“ boli predchádzajúce články venované modelovaniu digitálnych filtrov (DF), FIR a IIR vrátane pevných bodov (FT), softvérové ​​nástroje MATLAB.

Literatúra

  1. Ingle V., Proakis J. Digitálne spracovanie signálu pomocou MATLABu. druhé vydanie. Thomson, 2006.
  2. Oppenheim A., Shafer R. Digitálne spracovanie signálu. M.: Technosfera, 2006.
  3. Sergienko AB Digitálne spracovanie signálu. 2. vyd. Petrohrad: PETER, 2006.
  4. Solonina AI, Ulakhovich D. A., Arbuzov S. M., Solovieva E. B. Základy digitálneho spracovania signálov. 2. vyd. Petrohrad: BHV-Petersburg, 2005.
  5. Solonina A. I., Arbuzov S. M. Digitálne spracovanie signálu. Modelovanie v MATLABE. Petrohrad: BHV-Petersburg, 2008.
  6. Solonina A. Modelovanie digitálneho spracovania signálu v MATLABE. Časť 1. Syntéza optimálnych (podľa Chebysheva) FIR filtrov pomocou softvéru MATLAB // Komponenty a technológie. 2008. Číslo 11.
  7. Solonina A. Modelovanie digitálneho spracovania signálu v MATLABE. Časť 2. Syntéza optimálnych IIR filtrov pomocou softvéru MATLAB // Komponenty a technológie. 2008. Číslo 12.
  8. Solonina A. Modelovanie digitálneho spracovania signálu v MATLABE. Časť 3. Popis štruktúr FIR a IIR filtrov v MATLAB // Komponenty a technológie. 2009. Číslo 1.
  9. Solonina A. Modelovanie digitálneho spracovania signálu v MATLABE. Časť 4. Modelovanie štruktúr digitálnych filtrov s pevným bodom pomocou softvéru MATLAB: analýza charakteristík FIR filtrov // Komponenty a technológie. 2009. Číslo 2.
  10. Solonina A. Modelovanie digitálneho spracovania signálu v MATLABE. Časť 5. Modelovanie štruktúr digitálnych filtrov s pevným bodom pomocou softvéru MATLAB: analýza charakteristík IIR filtrov // Komponenty a technológie. 2009. Číslo 3.
  11. Solonina A. Modelovanie digitálneho spracovania signálu v MATLABE. Časť 6. Modelovanie štruktúr digitálnych filtrov s pevným bodom pomocou softvéru MATLAB: kvantizácia nárazu a výpočet odozvy // Komponenty a technológie. 2009. Číslo 4.
1 V skupine Informácie o aktuálnom filtri to zodpovedá správe: Source-Designed.
2 V skupine Informácie o aktuálnom filtri to zodpovedá správe: Zdroj-importovaný.

A.B. Sergienko. Prehľad nástrojov na spracovanie signálu

Spracovanie signálu bolo vždy jednou z najdôležitejších aplikačných oblastí systému MATLAB. Svedčí o tom predovšetkým fakt, že Signal Processing Toolbox bol jedným z prvých špecializovaných balíkov – objavil sa už v roku 1988, len štyri roky po vytvorení samotného systému MATLAB.

K dnešnému dňu obsahuje balík spracovania signálu takmer dvesto starostlivo navrhnutých špecializovaných funkcií, ktoré vám umožňujú riešiť širokú škálu problémov s analýzou a spracovaním signálu.

Aktuálne distribuovaná verzia MATLABu 6.1 (vydanie 12.1) obsahuje balík na spracovanie signálu verzie 5.1. Nadchádzajúce vydanie MATLABu 6.5 (vydanie 13) bude obsahovať balík na spracovanie signálu vo verzii 6.0.

Podľa oficiálna dokumentácia Balík jeho funkcií je rozdelený do dvadsiatich kategórií. V nižšie uvedenom zozname sú tieto kategórie zoskupené do väčších skupín. Takže podľa ich účelu možno funkcie balíka na spracovanie signálu rozdeliť takto:

Okrem toho balík obsahuje tri grafické prostredia:

MATLAB a jeho nadstavbové balíčky sú primárne zamerané na digitál spracovanie signálu, preto sa funkcie súvisiace s výpočtom analógových obvodov považujú za pomocné. Sú určené hlavne na volanie z iných funkcií, ktoré používajú analógové prototypy pri syntéze digitálnych filtrov. Tieto funkcie však môžu byť veľmi užitočné aj samy o sebe. Na druhej strane ich možno rozdeliť do niekoľkých skupín.

Prvou skupinou sú funkcie na výpočet analógových prototypových filtrov, teda dolnopriepustných filtrov s medznou frekvenciou rovnou 1 rad/s. Funkcie vracajú nuly, póly a zisky filtra a umožňujú výpočet prototypu Butterworthových filtrov ( kohútik), Čebyšev prvého druhu ( cheb1ap), Čebyšev druhého druhu ( cheb2ap), eliptické (Cauer) ( elips) a Bessel ( besselap).

Druhou skupinou sú funkcie konverzie analógového filtra, ktoré vám umožňujú previesť prototyp LPF na LPF s inou medznou frekvenciou ( lp2lp), do hornopriepustného filtra (HPF) s danou medznou frekvenciou ( lp2hp), do pásmového filtra s danou priemernou frekvenciou a šírkou pásma ( lp2bp) a do zárezového filtra s danou priemernou frekvenciou a šírkou stoppásma ( lp2bs). Funkcie môžu akceptovať a vrátiť popisy filtrov ako vektory čitateľov a menovateľov prenosových funkcií polynómov alebo ako parametre stavového priestoru.

Tretia skupina - funkcie na výpočet analógových filtrov so špecifikovanými parametrami. V procese výpočtu volajú funkcie prvých dvoch skupín. Súbor počiatočných údajov potrebných na výpočet zahŕňa poradie filtra, jeho typ (dolnopriepustný filter, hornopriepustný filter, pásmová priepust alebo zárez), frekvenciu alebo niekoľko medzných frekvencií a tiež (v závislosti od prototypu) zvlnenie. parametre frekvenčnej odozvy (AFC). Existujú funkcie na výpočet Butterworthových filtrov ( maslo), Čebyšev prvého druhu ( cheby1), Čebyšev druhého druhu ( cheby2), eliptické (Cauer) ( eliptické) a Bessel ( besedovať). Všetky tieto funkcie okrem funkcie besedovať, možno použiť aj na výpočet diskrétnych filtrov (pozri nižšie). Znakom možnosti analógového výpočtu je označenie reťazca "s" ako posledného vstupného parametra.

Štvrtá skupina - slúži na určenie požadovaného poradia filtrov podľa špecifikovaných parametrov frekvenčnej odozvy (medzné frekvencie priepustného a stopového pásma, ako aj prípustné zvlnenie v priepustnom a stopovom pásme). Každý typ filtra má svoju vlastnú funkciu na určenie požadovaného poradia: pre Butterworthov filter - zadok, pre Čebyševov filter prvého druhu - cheb1ord, pre Čebyševov filter druhého druhu - cheb2ord, pre eliptický filter - ellipord. Rovnako ako funkcie predchádzajúcej skupiny, tieto funkcie umožňujú určiť požadované poradie aj pre diskrétne filtre (pozri nižšie). Znakom možnosti analógového výpočtu je označenie reťazca "s" ako posledného vstupného parametra.

Piata skupina - funkcie transformácie foriem popisu analógových lineárnych systémov. Pre analógové systémy sú podporované štyri takéto metódy popisu:

Balík na spracovanie signálu má funkcie, ktoré implementujú vzájomné transformácie týchto štyroch foriem reprezentácie analógových systémov (len funkcia zvyšok, ktorý pracuje s pólmi a zvyškami, nepatrí do balíka Signal Processing, ale do základnej knižnice MATLAB). Tieto funkcie sú uvedené v nasledujúcej tabuľke.

konečná podoba Koeficienty polynómu prenosovej funkcie Nuly a póly Poliaci a zrážky Štátny priestor
pôvodná forma
tf2zp zvyšok tf2ss
Nuly a póly zp2tf zp2ss
Poliaci a zrážky zvyšok
Štátny priestor ss2tf ss2zp

zvyšok možno konvertovať v oboch smeroch. Smer transformácie je určený počtom vstupných a výstupných parametrov.

Funkcie uvedené v tabuľke, okrem funkcie zvyšok, môže tiež vykonávať transformácie diskrétnych systémov, pretože transformačné vzorce pre analógové a diskrétne systémy sú rovnaké.

Napokon, šiesta skupina by mala obsahovať jedinú funkciu frekv, ktorý vám umožňuje vypočítať alebo graficky zobraziť amplitúdové a fázovo-frekvenčné charakteristiky (AFC a PFC) analógového lineárneho systému. Počiatočnými údajmi sú koeficienty polynómov čitateľa a menovateľa prenosovej funkcie systému.

Ako príklad toho, ako možno použiť analógové funkcie, vypočítajme 4-radový eliptický dolnopriepustný filter s medznou frekvenciou 3 kHz, 1 dB zvlnením priepustného pásma a 20 dB potlačením stoppásma, a potom vynesme jeho frekvenčnú odozvu a fázovú odozvu. ..

Ellip(4, 1, 20, 2*pi*3000, "s"); % výpočet filtra
f = 0:10:10000; % frekvenčný vektor na výpočet frekvenčnej odozvy a fázovej odozvy
h = frekv(b, a, 2*pi*f); % komplexného zisku
podzápletka (2, 1, 1)

mriežka
podzápletka (2, 1, 2)
plot(f, unwrap(uhol(h))*180/pi) % graf PFC (v stupňoch)
mriežka

Funkcia použitá v príklade kódu rozbaliť eliminuje nepodstatné skoky v PFC o 360°.

Táto kategória funkcií je pomerne početná a kombinuje rôzne prostriedky analýzy diskrétnych lineárnych systémov - spravidla reprezentovaných ako vektory koeficientov polynómov čitateľa a menovateľa prenosovej funkcie (v z- oblasti).

Funkcia frekvz je diskrétna analógia funkcie frekv, umožňuje vypočítať komplexný koeficient prenosu alebo vykresliť frekvenčnú odozvu a fázovú odozvu diskrétneho systému. Počiatočnými údajmi sú koeficienty polynómov čitateľa a menovateľa prenosovej funkcie systému.

Podobne ako funkcia frekvz bežiaca funkcia grpdelay, ktorý umožňuje vypočítať alebo graficky zobraziť frekvenčnú závislosť skupinového oneskorenia zavedeného diskrétnym filtrom.

Funkcia impz určené na výpočet alebo grafické zobrazenie impulznej odozvy diskrétneho systému. Počiatočnými údajmi sú rovnako ako u predchádzajúcich funkcií koeficienty polynómov čitateľa a menovateľa systémovej prenosovej funkcie.

Funkcia zplane umožňuje zobraziť nuly a póly systému v komplexnej rovine, navyše zobrazuje jednotkový kruh, ktorý obmedzuje povolenú plochu pre umiestnenie pólov udržateľný diskrétny systém. Počiatočnými údajmi môžu byť buď vektory koeficientov polynómov čitateľa a menovateľa, alebo priamo vektory núl a pólov systémovej prenosovej funkcie.

Funkcia norma filtra umožňuje vypočítať norma diskrétny filter. Tento parameter sa používa napríklad pri výbere faktorov mierky pre jednotlivé sekcie filtra implementovaného v sekvenčnej (kaskádovej) forme, aby sa znížili chyby zaokrúhľovania. Podporované sú dve možnosti: 2-norm a -norm. 2-norma je rms hodnota frekvenčnej odozvy filtra (alebo, čo je to isté, odmocnina zo súčtu druhých mocnín vzoriek impulznej odozvy filtra) a -norma je maximálne hodnota frekvenčnej odozvy.

Funkcia fvtool je v podstate grafické prostredie určené na analýzu a vizualizáciu charakteristík diskrétnych systémov (Filter Visualization Tool). Na rozdiel od iných grafických prostredí v balíku, fvtool naozaj je funkciu, keďže pri volaní vyžaduje prítomnosť vstupných parametrov - koeficientov polynómov čitateľa a menovateľa prenosovej funkcie analyzovaného filtra. Podstatnou výhodou tejto funkcie je možnosť súčasného zobrazenia charakteristík niekoľko filtre. GUI poskytovaná touto funkciou je prakticky rovnaká ako v prostredí analýzy a syntézy filtrov FDATool. Nižšie je uvedený príklad volania funkcie fvtool a ním vytvorené grafické okno v režime zobrazenia frekvenčnej závislosti skupinového oneskorenia zavedeného filtrom.

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

Veľkú skupinu tvoria funkcie na transformáciu foriem opisov diskrétnych systémov. Pre diskrétne systémy je podporovaných viac foriem reprezentácie ako pre analógové:

  • Koeficienty polynómov čitateľa a menovateľa systémovej prenosovej funkcie.
  • Nuly, póly a zisk systému (faktorizácia prenosovej funkcie).
  • Póly a zvyšky (zobrazenie prenosovej funkcie systému ako súčet jednoduchých zlomkov).
  • Parametre stavového priestoru.
  • Reprezentácia ako súbor sekvenčne (kaskádovaných) sekcií druhého rádu.
  • Znázornenie vo forme mriežkovej alebo mriežkovo-rebríkovej konštrukcie.

Funkcie, ktoré vykonávajú prevody medzi rôznymi formami reprezentácie, sú uvedené v nasledujúcej tabuľke.

konečná podoba Koeficienty polynómu prenosovej funkcie Nuly a póly Poliaci a zrážky Štátny priestor Sekcie druhého rádu mriežková konštrukcia
pôvodná forma
Koeficienty polynómu prenosovej funkcie tf2zp reziduaz tf2ss tf2sos tf2latc
Nuly a póly zp2tf zp2ss zp2sos
Poliaci a zrážky reziduaz
Štátny priestor ss2tf ss2zp ss2sos
Sekcie druhého rádu sos2tf sos2zp sos2ss
mriežková konštrukcia latc2tf

Ako je zrejmé z tabuľky, rovnaká funkcia reziduaz(toto je analógia funkcie zvyšok, určený na prácu s popismi diskrétnych systémov) sa môže transformovať oboma smermi. Smer transformácie je určený počtom vstupných a výstupných parametrov.

Dve ďalšie funkcie manipulujú s vektormi polynómových koeficientov úpravou polohy koreňov polynómov v komplexnej rovine. Funkcia polyscale vynásobí všetky korene spracovaného polynómu daným koeficientom a funkciou polystab spôsobí, že všetky korene polynómu ležia vo vnútri jednotkového kruhu - preto sú korene, ktoré presahujú jednotu v absolútnej hodnote, obrátené, to znamená, že ich moduly sú nahradené recipročnými a znamienko ich fáz je obrátené.

Zvyšné funkcie v tejto kategórii sú pomocné. Funkcia frekvenčný priestor vypočíta vektor rovnomerne rozložených hodnôt frekvencie, funkciu Freqzplot je určený na vykresľovanie grafov frekvenčnej odozvy a funkcie rozbaliť umožňuje eliminovať nevýznamné skoky vo fázovo-frekvenčných charakteristikách o 2p, hľadať tieto skoky medzi prvkami vektora a posúvať potrebné fragmenty vektora o 2p n.

Činnosť lineárneho diskrétneho filtrovania je všeobecne opísaná takto:

Tu x(k)- vzorky vstupného signálu, y(k)- čítanie výstupného signálu, a i a b j- konštantné koeficienty. Maximálny počet čísel m a n sa nazýva poradie filtra.

Predchádzajúce výstupné vzorky sa nemusia použiť vo výpočtoch, potom všetky i = 0 a filter sa volá nerekurzívne alebo priečny. Ak sa použijú predchádzajúce výstupné vzorky, filter sa považuje za rekurzívny.

Lineárne diskrétne filtrovanie sa vzťahuje na ľubovoľné technológie spracovania údajov, takže zodpovedajúca funkcia je filter- nepatrí do balíka Signal Processing, ale je zabudovaný do jadra MATLABu. Funkcia filter2, ktorá tiež patrí do základnej knižnice MATLAB, implementuje dvojrozmerné diskrétne filtrovanie.

Pretože filter s konštantným koeficientom je lineárny stacionárny diskrétny systém, jeho odozva na ľubovoľný vstupný signál môže byť reprezentovaná ako diskrétna konvolúcia vstupný signál s impulznou odozvou filtra:

Tu h(k)- údaje o impulznej odozve filtra. Impulzná odozva je odozva filtra na jednu vzorku jednotkovej hodnoty privedenú na vstup.

Samozrejme, výpočty pomocou konvolučného vzorca je možné v praxi realizovať len pre konečnú dĺžku impulznej odozvy filtra. Túto operáciu vykonáva funkcia konv; rovnako ako implementácia algoritmu diskrétneho filtrovania nepatrí do balíka Signal Processing, ale do základnej knižnice MATLAB. V skutočnosti sa implementácia funkcie conv redukuje na volanie funkcie filter s relevantným vstupné parametre. Funkcia konv2 implementuje dvojrozmernú diskrétnu konvolúciu. Ďalšou funkciou knižnice jadra MATLABu je dekonv- implementuje konvolučnú inverziu, čo umožňuje, aby výsledok konvolúcie a jeden zo vstupných vektorov určil druhý vstupný vektor.

Spomenuté vyššie základné funkcie diskrétne filtrovanie, ako už bolo spomenuté, patrí do základnej knižnice MATLAB; v skutočnosti balík Spracovanie signálu obsahuje funkcie, ktoré riešia špecifickejšie úlohy filtrovania.

V prvom rade si treba uvedomiť, že funkcia filter umožňuje prístup k počiatočnému a konečnému vnútornému stavu filtra, čím umožňuje organizovať spracovanie blokového signálu. Niekedy je potrebné vytvoriť vnútorný stavový vektor filtra so znalosťou určitého počtu predchádzajúcich vstupných a výstupných vzoriek. Tento výpočet sa vykonáva pomocou funkcie filtic.

Funkcia fftfilt implementuje diskrétne filtrovanie pomocou rýchlej Fourierovej transformácie (FFT) v kombinácii s blokovaním signálu. Týmto spôsobom je možné implementovať iba nerekurzívne filtre. Výsledok operácie funkcie sa zhoduje (až do výpočtových chýb) s výsledkami konvenčného filtrovania implementovaného pomocou funkcie filter. Výpočtová rýchlosť FFT filtrovania však môže byť výrazne vyššia, najmä ak dĺžka vstupného signálu je mnohonásobkom dĺžky impulznej odozvy filtra (alebo naopak).

Funkcia filtračný filter vám umožňuje kompenzovať fázový posun spôsobený konvenčným filtrovaním (inými slovami, danú funkciu implementuje filtrovanie bez zavedenia časového oneskorenia). To sa vykonáva obojsmerným spracovaním signálu. Prvý priechod filtrovania sa vykonáva obvyklým spôsobom a potom sa výsledný výstupný signál filtruje druhýkrát - od konca po začiatok. Vďaka tomu sú kompenzované fázové posuny a výsledné poradie filtra sa zdvojnásobí. Treba poznamenať, že výsledný (ekvivalentný dvom filtračným prechodom) filter nespĺňa podmienku kauzality.

Pri praktickej implementácii rekurzívnych filtrov vysokého rádu sú často reprezentované ako sekcie druhého rádu zapojené do série. To umožňuje tlmiť chyby výpočtov vznikajúce v dôsledku zaokrúhľovacích a kvantizačných chýb koeficientov filtra. Nástroje na analýzu chýb tohto druhu sú sústredené v balíku Filter Design a v balíku Signal Processing je funkcia sosfilt, ktorý umožňuje implementovať diskrétne filtrovanie údajov pomocou filtra reprezentovaného ako sekcie druhého rádu.

Ďalšou možnou štruktúrou diskrétneho filtra je mriežková štruktúra. Na implementáciu filtrovania pomocou filtra prezentovaného v tomto formulári je funkcia latcfilt.

Funkcia medfilt1, ktorý implementuje jednorozmerné mediánové filtrovanie, odkazuje na nelineárne filtrovacie algoritmy. Podstatou jeho fungovania je, že na vstupný signál sa aplikuje posuvné okno danej dĺžky, vzorky v rámci okna sa zoradia a hodnota zo stredu usporiadaného okna (alebo polovica súčtu dvoch prvkov najbližšie k stred, ak má okno párnu dĺžku) sa vráti ako výstupná vzorka. Mediánové filtrovanie sa používa napríklad na elimináciu impulzného šumu (kliknutia) pri spracovaní zvukových signálov. Funkcia medfilt2, ktorý implementuje dvojrozmerný variant filtrovania mediánu, sa nachádza v balíku Spracovanie obrazu.

Funkcia sgolayfilt vykonáva diskrétne filtrovanie pomocou filtra Savitsky-Golay. Jeho podstata spočíva v tom, že vstupný signál je rozdelený na bloky danej veľkosti a v rámci každého bloku sa vykoná polynómová aproximácia signálu polynómom daného stupňa podľa kritéria minimálnej strednej štvorcovej chyby. Ak je stupeň polynómov o jeden menší ako veľkosť blokov, výstup sa bude rovnať vstupu; s nižším stupňom polynómov bude signál vyhladený. Savitsky-Golayove filtre sa používajú na „čistenie“ signálov od šumu.

Syntéza diskrétnych filtrov sa chápe ako výber takýchto súborov koeficientov ( a i) a ( b i), pri ktorých vlastnosti výsledného filtra spĺňajú špecifikované požiadavky. Presne povedané, návrhová úloha zahŕňa aj výber vhodnej štruktúry filtra s prihliadnutím na konečnú presnosť výpočtov. Platí to najmä pri implementácii filtrov „v hardvéri“ – pomocou špecializovaných LSI alebo digitálnych signálových procesorov. Účinky spojené s konečnou presnosťou výpočtov možno analyzovať pomocou funkcií balíka Filter Design; funkcie syntézy filtra nezohľadňujú tieto efekty.

Balík na spracovanie signálu obsahuje veľké množstvo funkcií, ktoré implementujú rôzne algoritmy syntézy diskrétnych filtrov. Uvádzame hlavné charakteristiky týchto funkcií vo forme tabuľky a potom uvádzame niekoľko ďalších komentárov.

Funkcia Typ filtra frekvenčná odozva Metóda syntézy
maslo rekurzívne Butterworth Bilineárna z-transformácia
cheby1 rekurzívne Čebyšev prvého druhu Bilineárna z-transformácia
cheby2 rekurzívne Čebyšev druhého druhu Bilineárna z-transformácia
eliptické rekurzívne Cauera (eliptické) Bilineárna z-transformácia
bilineárne rekurzívne Bilineárna z-transformácia
impinvar rekurzívne Ľubovoľný analógový prototyp Invariantná transformácia impulzovej odozvy
yulewalk rekurzívne Po častiach lineárne Autoregresná metóda
invfreqz rekurzívne zadarmo Minimalizácia rozdielu medzi čitateľom prenosovej funkcie a súčinom jej menovateľa a požadovanej frekvenčnej odozvy
prony rekurzívne Syntéza z danej impulznej odozvy Exponenciálna Prony aproximácia
jedľa1 nerekurzívne Viacpásmové
jedľa2 nerekurzívne Po častiach lineárne Inverzná Fourierova transformácia pomocou systému Windows
firls nerekurzívne Minimalizácia strednej kvadratickej chyby
fircls nerekurzívne Po častiach konštantná
fircls1 nerekurzívne LPF, HPF Minimalizácia chyby RMS s obmedzením maximálnej odchýlky
firrcos nerekurzívne LPF kosínusové vyhladenie
intfiltrovať nerekurzívne LPF Minimax aproximácia
remez nerekurzívne Po častiach lineárny s prechodovými pásikmi Minimax aproximácia
krémy Nerekurzívne (vrátane nelineárnych PFC a komplexných koeficientov) Po častiach lineárny s prechodovými pásikmi Minimax aproximácia

Metódy syntézy diskrétnych filtrov možno rozdeliť na dve veľké skupiny: s analógovým prototypom a bez neho. Pri použití analógového prototypového filtra je potrebné nejako reprezentovať analógovú prenosovú funkciu definovanú v s-doméne do diskrétnej prenosovej funkcie definovanej v z-doméne. Balík na spracovanie signálu implementuje dve metódy takejto transformácie: metódu invariantnej impulznej odozvy a metódu bilineárnej z-transformácie. Výsledkom oboch metód sú rekurzívne diskrétne filtre.

Pri použití metódy invariantnej impulznej odozvy je impulzová odozva analógového prototypu diskretizovaná. Frekvenčná odozva výsledného diskrétneho filtra je teda periodicky opakovaná frekvenčná odozva analógového prototypu. Z tohto dôvodu je táto metóda nevhodná pre syntézu hornopriepustných filtrov a všeobecne filtrov, ktorých koeficient prenosu nemá tendenciu s rastúcou frekvenciou nulovať. Metóda invariantnej impulznej odozvy je implementovaná v balíku Signal Processing pomocou funkcie impinvar.

Pri použití metódy bilineárnej z-transformácie sú charakteristiky analógového prototypu skreslené iba pozdĺž frekvenčnej osi. V tomto prípade sa frekvenčný rozsah analógového filtra (od nuly do nekonečna) prevedie na rozsah pracovnej frekvencie diskrétneho filtra (od nuly do polovice vzorkovacej frekvencie). Transformácia frekvenčnej osi je opísaná funkciou arkus tangenta, takže frekvencie, ktoré sú oveľa nižšie ako vzorkovacia frekvencia, sa konvertujú približne lineárne. Táto metóda je implementovaná pomocou funkcie bilineárne pre ľubovoľný analógový prototyp. Okrem toho existujú hotové funkcie na výpočet dolnopriepustných a hornopriepustných filtrov, pásmových priepustov a vrubových filtrov pomocou bilineárnej metódy z-transformácie s použitím analógových prototypov s Butterworth, Chebyshev prvého a druhého druhu AFC a Cauer (eliptické filtre ). To je podľa funkcie maslo, cheby1, cheby2 a eliptické. Všetky tieto funkcie možno použiť aj na výpočet analógových filtrov (pozri vyššie). Znakom diskrétneho variantu výpočtu je absencia reťazca "s" v zozname vstupných parametrov. Existujú aj funkcie na určenie požadovaného poradia týchto filtrov dané parametre AFC (hraničné frekvencie priepustného a oneskoreného pásma, ako aj prípustné zvlnenie v týchto pásmach). To je podľa funkcie buttord, cheb1ord, cheb2ord, ellipord. Rovnako ako funkcie syntézy filtrov, aj tieto funkcie vám umožňujú určiť požadované poradie analógových filtrov (pozri vyššie). Znakom diskrétneho variantu výpočtu je absencia reťazca "s" v zozname vstupných parametrov.

Ako príklad sme syntetizovali eliptický dolnopriepustný filter štvrtého rádu s rovnakými parametrami ako analógový filter v jednom z predchádzajúcich príkladov (medzná frekvencia 3 kHz, zvlnenie frekvenčnej odozvy v priepustnom pásme 1 dB a potlačenie signálu v zakázanom pásme 20 dB). Vezmeme vzorkovaciu frekvenciu rovnú 12 kHz. Po syntéze pomocou funkcie vykreslíme frekvenčnú odozvu a fázovú odozvu výsledného filtra frekvz.

    Fs = 12 000; % vzorkovacej frekvencie
    F0 = 3000; % medznej frekvencie
    = elipsa (4, 1, 20, F0/Fs*2); % výpočet filtra
    freqz(b, a,, Fs); % výstup grafu

Metódy syntézy, ktoré nepoužívajú analógový prototyp, sa nazývajú priame. Môžu byť tiež rozdelené do dvoch skupín: metódy na syntézu rekurzívnych a nerekurzívnych filtrov.

Funkcie priamej syntézy nerekurzívnych filtrov zahŕňajú:

  • Funkcie, ktoré implementujú syntézu filtrov inverznou Fourierovou transformáciou požadovanej frekvenčnej odozvy s následným vynásobením výslednej impulznej odozvy nejakou váhovou funkciou (oknom), aby sa utlmilo vlnenie frekvenčnej odozvy, ktoré sa objavuje v dôsledku Gibbsovho efektu. Toto sú vlastnosti jedľa1 a jedľa2. Patrí sem aj funkcia syntézy dolnopriepustného filtra s kosínusovým vyhladzovaním frekvenčnej odozvy - firrcos. Okrem toho funkcia kaiserord umožňuje podľa daných parametrov frekvenčnej odozvy odhadnúť počas syntézy požadované poradie filtrov pomocou Kaiserovho okna.
  • Funkcie, ktoré implementujú minimalizáciu štandardnej odchýlky frekvenčnej odozvy výsledného filtra od danej. Toto sú vlastnosti firls, fircls a fircls1. Posledné dve funkcie riešia optimalizačný problém s obmedzením maximálnej odchýlky frekvenčnej charakteristiky od danej. Tým sa zabráni výskytu veľkých vrcholov frekvenčnej odozvy v blízkosti prechodových pásiem.
  • Funkcie, ktoré implementujú minimax optimalizáciu, teda minimalizáciu špičkovej odchýlky frekvenčnej charakteristiky výsledného filtra od danej. Výsledkom sú filtre s rovnomerným vlnením frekvenčnej odozvy. Táto skupina obsahuje funkcie remez (štandardná verzia Remez metóda, implementovaná v úplne prvých verziách balíka Signal Processing) a krémy(rozšírená verzia, ktorá podporuje syntézu filtrov s nelineárnou fázovou odozvou a s komplexnými koeficientmi). Okrem toho funkcia zapamätať si umožňuje odhadnúť požadované poradie filtra pri syntéze Remezovou metódou podľa daných parametrov frekvenčnej odozvy.

Ako príklad syntetizujeme nerekurzívny LPF 32. rádu pomocou Remezovej metódy s rovnakými medznými a vzorkovacími frekvenciami ako v predchádzajúcom príklade (medzná frekvencia 3 kHz, vzorkovacia frekvencia 12 kHz). Začiatok stoppásma nastavíme na 3,5 kHz. Po syntéze vykreslíme grafy impulznej odozvy, ako aj frekvenčnú odozvu výsledného filtra (PFC filtra je lineárne, takže nemá zmysel ho vykresľovať). Frekvenčná odozva sa zobrazí na lineárnej stupnici pozdĺž vertikály, aby sa jasne preukázala rovnomernosť jej pulzácií.

    Fs = 12 000; % vzorkovacej frekvencie
    F0 = 3000; % medznej frekvencie
    F1=3500; % štart pásma
    b = remez(32, , ); % výpočet filtra
    impz(b) % graf impulznej odozvy
    = frekvz(b, 1, Fs); % komplexného zisku
    postavy
    graf(f, abs(h)) % graf frekvenčnej odozvy
    mriežka

Funkcie priamej syntézy rekurzívnych filtrov zahŕňajú nasledovné:

  • yulewalk- syntéza rekurzívneho filtra s ľubovoľnou po častiach lineárnou frekvenčnou odozvou metódou Yule-Walker.
  • invfreqz- táto funkcia je určená na riešenie problému identifikácie systémov, umožňuje vám určiť koeficienty čitateľa a menovateľa prenosovej funkcie diskrétneho systému pomocou súboru hodnôt tejto prenosovej funkcie pri rôznych frekvenciách.

Na záver uvádzame množstvo funkcií, ktoré nie sú zahrnuté vo vyššie uvedených skupinách. Funkcia max byt je určený na syntézu zovšeobecneného Butterworthovho filtra (u takýchto filtrov počet núl prenosovej funkcie prevyšuje počet jej pólov). Funkcia intfiltrovať vykonáva syntézu filtrov určených na filtrovanie signálu pri vykonávaní interpolácie a decimácie. Operáciu vektorovej konvolúcie možno reprezentovať ako súčin vektorovej matice a maticu zapojenú do tohto súčinu možno vypočítať pomocou funkcie convmtx. Nakoniec funkcia sgolay vykonáva syntézu vyhladzovacieho filtra Savitsky-Golay. Keďže, ako je opísané vyššie, Savitzky-Golayov filter spracováva jednotlivé bloky signálu, takýto filter nie je stacionárnym systémom. Preto funkcia sgolay vráti celočíselnú maticu časovo premenných koeficientov ekvivalentného nerekurzívneho filtra.

Okrem balíka Spracovanie signálu je v balíkoch Communications a Filter Design k dispozícii množstvo funkcií syntézy diskrétnych filtrov.

Slová „spektrálna analýza“ v mysliach mnohých používateľov MATLABu sú silne spojené s touto funkciou fft(pozri nižšie časť "Funkcie transformácií diskrétnych signálov"), ktorý vykonáva diskrétnu Fourierovu transformáciu (DFT). Toto je však len lineárna transformácia jedna k jednej, dávanie výkon deterministický signál vo frekvenčnej oblasti. Ak je analyzovaný signál náhodný, má to zmysel len pre neho stupňa spektrálna hustota moc, na výpočet ktorých je potrebné tak či onak spriemerovať dostupné údaje. Navyše v niektorých prípadoch nejaké poznáme Ďalšie informácie o analyzovanom signáli a je žiaduce vziať túto informáciu do úvahy pri spektrálnej analýze.

Metódy spektrálnej analýzy náhodných signálov sú rozdelené do dvoch veľkých tried - neparametrické a parametrické. AT neparametrické(neparametrické) metódy využívajú len informácie obsiahnuté vo vzorkách analyzovaného signálu. Parametrický(parametrické) metódy predpokladajú prítomnosť nejakej štatistickej modelov náhodný signál a proces spektrálnej analýzy v tomto prípade zahŕňa určenie parametre tento model. Používa sa aj termín "modelová spektrálna analýza" (Model-Based Spectrum Analysis, MBSA).

Balík na spracovanie signálu obsahuje funkcie, ktoré implementujú rôzne metódy spektrálnej analýzy, parametrické aj neparametrické (treba ešte raz zdôrazniť, že spektrálna analýza tu znamená odhad výkonová spektrálna hustota náhodného procesu). Okrem toho existujú funkcie na získanie ďalších priemerných charakteristík náhodných diskrétnych signálov.

Na určenie spektrálnych charakteristík diskrétneho náhodného procesu sa vypočíta priemerné výkonové spektrum jeho fragmentu s obmedzenou dĺžkou a potom má dĺžka fragmentu tendenciu k nekonečnu:

. (1)

Tu X(k) - čítania náhodného procesu, T- obdobie odberu vzoriek. Prečiarknutie označuje priemerovanie nad súborom realizácií.

Okrem toho možno toto spektrum vyjadriť pomocou korelačnej funkcie náhodného procesu:

. (2)

Tento výraz je diskrétnym analógom Wiener-Khinchinovej vety: spektrum diskrétneho náhodného procesu je Fourierova transformácia jeho korelačnej funkcie.

Ako už bolo spomenuté, pri použití neparametrických metód na výpočet spektra náhodného procesu sa používajú iba informácie obsiahnuté vo vzorkách signálu, bez akýchkoľvek dodatočných predpokladov. V balíku na spracovanie signálu sú implementované tri takéto metódy – periodogram, Welchova metóda a Thomsonova metóda.

Periodogram je odhad výkonovej spektrálnej hustoty získaný z N odpočítavanie jedna implementácia náhodný proces podľa definície (1) (samozrejme, nie prevzatím limity, ale spriemerovaním konečného počtu členov). Ak sa na výpočet spektra použije váhová funkcia (okno), vyvolá sa výsledný odhad výkonového spektra upravený periodogram(upravený periodogram):

Vzťah (2) je splnený iba pre nekonečný počet použitých vzoriek, teda pre akúkoľvek konečnú N periodogramový odhad výkonovej spektrálnej hustoty sa ukazuje byť vysídlený- ukazuje sa, že vo vnútri súčtu (2) je funkcia signálovej korelácie vynásobená trojuholníkovou váhovou funkciou. Okrem toho je možné ukázať, že periodogram nie je konzistentným odhadom výkonovej spektrálnej hustoty, pretože disperzia takýto odhad je porovnateľný s druhou mocninou jeho matematického očakávania pre ľubovoľnú N. S nárastom počtu použitých vzoriek sa hodnoty periodogramu začínajú pohybovať čoraz rýchlejšie - jeho graf je čoraz zubatejší.

V balíku Spracovanie signálu sa výpočet periodogramu (vrátane upraveného) vykonáva pomocou funkcie periodogram.

Na zníženie nepravidelnosti periodogramu je potrebné použiť určitý druh priemerovania. Bartlett navrhol rozdeliť analyzovaný signál na neprekrývajúce sa segmenty, vypočítať periodogram pre každý segment a potom spriemerovať tieto periodogramy. Ak korelačná funkcia signálu v čase trvania segmentu klesne na zanedbateľné hodnoty, potom možno považovať periodogramy jednotlivých segmentov za nezávislé. Welch urobil dve vylepšenia Bartlettovej metódy: použitie váhovej funkcie a rozdelenie signálu na prekrývanieúlomky. Použitie váhovej funkcie umožňuje zoslabiť šírenie spektra a znížiť skreslenie získaného odhadu spektra hustoty výkonu za cenu mierneho zhoršenia rozlíšenia. Zavádza sa prekrývanie segmentov, aby sa zvýšil ich počet a znížil sa rozptyl odhadov.

Výpočty pomocou Welchovej metódy (nazývanej aj metóda spriemerovaného modifikovaného periodogramu) sú usporiadané nasledovne: vektor vzoriek signálu je rozdelený na prekrývajúce sa segmenty, každý segment je vynásobený použitou váhovou funkciou, modifikované periodogramy sú vypočítané pre vážené segmenty, periodogramy všetkých segmentov sú spriemerované .

Welchova metóda je najpopulárnejšia periodogramová metóda spektrálnej analýzy. V balíku Signal Processing je implementovaný pomocou funkcie pwelch.

Thomsonova metóda implementovaná funkciou pmtm, na základe použitia prolovať sféroidné funkcie(prolovať sféroidné funkcie). Tieto funkcie konečného trvania poskytujú maximálnu koncentráciu energie v danom frekvenčnom pásme. Okrem samotného spektrálneho odhadu funkcia pmtm môže vrátiť svoj interval spoľahlivosti. Výpočet prolačných sféroidných funkcií trvá určitý čas, takže pri opakovanom používaní funkcie pmtm výpočty môžete urýchliť predbežným výpočtom funkcií potrebných na analýzu a ich uložením do databázy. Ak chcete pracovať s takouto základňou (je to súbor MAT s názvom dpss.mat) je určený pre skupinu funkcií, ktorých názvy začínajú písmenami dpss (dpss- výpočet funkcií, dpssload- načítanie rodiny funkcií z databázy, dpsssave- uloženie rodiny funkcií do databázy, dpssdir- zobrazenie adresára databázy, dpsclear- odstránenie skupiny funkcií z databázy).

Ako príklad vytvoríme implementáciu exponenciálne korelovaného náhodného procesu a vykonáme jeho spektrálnu analýzu pomocou troch uvedených metód. Náhodný signál, ktorý potrebujeme, je generovaný prechodom normálneho diskrétneho bieleho šumu cez rekurzívny filter prvého rádu:

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

Vytvárame periodogram:

periodogram(X, , , 1)

Ako vidíte, periodogram je veľmi zubatý. Teraz odhadnime spektrum tej istej implementácie pomocou Welchovej metódy:

pwelch(X, , , , 1)

Nepravidelnosť grafu je oveľa menšia. Nakoniec použijeme Thomsonovu metódu:

pmtm(X, , , 1)

Na výstupe funkcie pmtm Graf zobrazuje hranice intervalu spoľahlivosti spolu s odhadom výkonového spektra.

Použitie parametrických metód predpokladá prítomnosť niektorých matematických metód modelov analyzovaný náhodný proces. Spektrálna analýza sa v tomto prípade redukuje na riešenie optimalizačného problému, teda nájdenie takého parametre modely, v ktorých je najbližšie k skutočne pozorovanému signálu. Balík na spracovanie signálu implementuje množstvo druhov autoregresnej analýzy a dve metódy založené na analýze vlastných hodnôt a vektorov signálovej korelačnej matice: MUSIC (Multiple SIgnal Classification) a EV (EigenVectors).

Podľa autoregresný model signál je generovaný prechodom diskrétneho bieleho šumu cez "čisto rekurzívny" filter N- poradie. Výkonová spektrálna hustota takéhoto signálu je úmerná druhej mocnine modulu koeficientu prenosovej funkcie tvarovacieho filtra. Táto metóda spektrálnej analýzy sa teda redukuje na určenie koeficientov filtra daného rádu, odhad výkonu vzrušujúceho bieleho šumu a analytický výpočet výkonovej spektrálnej hustoty. Na určenie koeficientov modelu je chyba minimalizovaná lineárna predpoveď signál. Z teoretického rozboru vyplýva, že optimálne koeficienty modelu určuje iba korelačná funkcia signálu.

V praxi nepoznáme skutočnú korelačnú funkciu sledovaného signálu, preto, aby sme minimalizovali chyby predikcie, používame odhady CF získaná časovým spriemerovaním. Bol nadizajnovaný celý riadok metódy autoregresnej analýzy, ktoré sa líšia najmä prístupom k spracovaniu okrajových efektov (teda spôsobom zapojenia do výpočtov tých vzoriek okrajových signálov, pri ktorých sa pri výpočte CF nenájde posunutý pár). Balík Signal Processing implementuje Burgovu metódu, kovariančnú metódu, modifikovanú kovariančnú metódu a Yule-Walkerovu autoregresnú metódu.

Metódy autoregresnej spektrálnej analýzy sú najvhodnejšie pre signály, ktoré sú skutočne autoregresnými procesmi. vo všeobecnosti pekné výsledky tieto metódy poskytujú, keď spektrum analyzovaného signálu má jasne definované vrcholy. Takéto signály zahŕňajú najmä súčet niekoľkých sínusoidov so šumom.

Pri použití autoregresných metód je dôležité správne zvoliť poradie autoregresného modelu - musí to byť dvojnásobok počtu sínusových kmitov, ktoré sú údajne obsiahnuté v analyzovanom signáli.

Každá metóda autoregresnej analýzy v balíku Signal Processing zodpovedá dvom funkciám - funkcii výpočtu koeficientov modelu a funkcii samotnej spektrálnej analýzy. Funkcia spektrálnej analýzy volá funkciu na výpočet koeficientov modelu a potom vypočíta spektrum. Názvy funkcií sú zhrnuté v nasledujúcej tabuľke.

Názov metódy

Funkcia výpočtu koeficientu modelu

Funkcia spektrálnej analýzy

kovariančná metóda arcov pcov
Modifikovaná kovariančná metóda armcov pmcov
Bergova metóda Arburg pburg
Youle-Walker autoregresívna metóda aryule pyulear

Exponenciálne korelovaný náhodný signál vytvorený vo vyššie uvedenom príklade je autoregresívny proces prvého rádu, takže uvedené metódy spektrálnej analýzy sú preň celkom primerané. Bergovu metódu aplikujeme tak, že poradie autoregresného modelu nastavíme rovné jednej (toto je druhý parameter funkcie pburg):

pburg(X, 1, , 1)

Výsledná hladká krivka sa prakticky zhoduje s teoretickým spektrom tohto náhodného procesu.

Metóda MUSIC (Multiple SIgnal Classification) je určená na spektrálnu analýzu signálov, ktoré sú súčtom niekoľkých sínusoidov (presnejšie vo všeobecnom prípade niekoľkých komplexných exponentov) s bielym šumom. Účelom spektrálnej analýzy takýchto signálov spravidla nie je vypočítať spektrum ako také, ale určiť frekvencie a úrovne (amplitúdy alebo výkony) harmonických zložiek. Metóda MUSIC je určená práve na to, preto je tzv pseudospektrum(pseudospektrum).

Metóda je založená na analýze vlastných hodnôt a vlastných vektorov signálovej korelačnej matice. Pri vykonávaní analýzy musíte určiť poradie modelu, to znamená počet komplexných exponentov, ktoré majú byť obsiahnuté v signáli.

V balíku Signal Processing je metóda MUSIC implementovaná pomocou funkcie pmusic a funkciu koreňová hudba umožňuje získať odhady frekvencií a výkonov harmonických zložiek signálu.

Blízkym príbuzným HUDBY je metóda vlastných vektorov (EV). Jeho jediný rozdiel je v tom, že vo výpočtových vzorcoch sú vlastné vektory vynásobené váhovými koeficientmi nepriamo úmernými zodpovedajúcim vlastným hodnotám. V literatúre sú dôkazy, že metóda EV generuje menej falošných spektrálnych vrcholov ako MUSIC a vo všeobecnosti lepšie reprodukuje tvar spektra šumu.

V balíku Signal Processing je metóda EV implementovaná pomocou funkcie peig a funkciu rooteig umožňuje získať odhady frekvencií a výkonov harmonických zložiek signálu.

Je potrebné zdôrazniť, že pseudospektrá nie sú odhady skutočného spektra hustoty výkonu, ale sú iba spektrálne pseudo odhady, ktoré umožňujú odhadnúť frekvencie sínusových alebo úzkopásmových zložiek signálu s rozlíšením o niečo vyšším ako je rozlíšenie autoregresných metód.

Diskrétna Fourierova transformácia, používaná vo všetkých neparametrických metódach spektrálneho odhadu, znamená periodické pokračovanie analyzovaného signálneho fragmentu. V tomto prípade môžu nastať skoky na križovatkách fragmentov, čo vedie k objaveniu sa bočných lalokov významnej úrovne v spektrálnej oblasti. Na zníženie tohto efektu sa signál pred vykonaním DFT vynásobí poklesom od stredu k okrajom váhová funkcia (okno). V dôsledku toho sa zmenšuje veľkosť skokov na spojoch segmentov a zmenšuje sa aj úroveň nežiaducich bočných lalokov spektra - cenou za to je určité rozšírenie spektrálnych vrcholov.

Okrem spektrálnej analýzy sa váhové funkcie používajú pri syntéze nerekurzívnych filtrov inverznou Fourierovou transformáciou požadovanej frekvenčnej odozvy. V tomto prípade umožňujú zvýšiť potlačenie signálu v stoppásme filtra v dôsledku určitého rozšírenia priepustného pásma.

V súčasnosti obsahuje balík Spracovanie signálu asi tucet váhových funkcií. Rozdelenie niektorých z nich je spôsobené jednoduchosťou výpočtov, zatiaľ čo iné sú v určitom zmysle optimálne.

Najjednoduchšie je obdĺžnikové okno implementované funkciou rectwin(vo verziách balíkov pred 5.0 vrátane mala táto funkcia názov skriňové auto). Obdĺžnikovému okienku zodpovedá absencia váženia, táto funkcia je súčasťou balíka len pre formálnu úplnosť súboru váhových funkcií. Trojuholníkové okno je implementované funkciou triang, okno Bartlett má tiež trojuholníkový tvar (funkcia bartlett), v spôsobe výpočtu sa líši len nepatrne.

Viaceré váhové funkcie sú kombináciami harmonických zložiek. Uvádzame ich vo vzostupnom poradí podľa počtu kosínusových členov:

  • Hanna okno (funkcia hann), niekedy nesprávne nazývané Hanningovo okno, je jediný kosínusový výraz.
  • Hammingovo okno (funkcia Hamming) je jeden kosínusový člen.
  • Blackmanovo okno (funkcia černoch) sú dva kosínusové členy.
  • Blackman-Harris okno (funkcia blackmanharris) sú tri kosínusové členy.
  • Okno Nuttall (alternatívna verzia okna Blackman-Harris, funkcia nuttallwin) sú tri kosínusové členy.

Zvyšné okná sú opísané zložitejšími matematickými vzťahmi. Gaussovský tvar okna (funkcia gausswin) nepotrebuje vysvetlenie. Upravené okno Bartlett-Hann (funkcia barthannwin) je lineárnou kombináciou okien Bartlett a Hann. Bohmen okno (funkcia bohmanwin) je konvolúcia dvoch rovnakých kosínusových impulzov. Chebyshev okno (funkcia chebwin) má postranné laloky pevnej (špecifikovanej vo výpočte) úrovne a je vypočítaná inverznou Fourierovou transformáciou frekvenčnej odozvy okna. Okno Kaiser (funkcia Kaiser) má aj parameter, ktorý riadi úroveň bočných lalokov a šírku hlavného laloka, pri výpočte tohto okna sa používajú upravené Besselove funkcie. Tukey okno (funkcia tukeywin) je obdĺžnik s kosínusovo hladkými okrajmi. V extréme povolené hodnoty vyhladzovacím faktorom sa zmení na obdĺžnikové okno alebo Hannovo okno.

Nakoniec funkcia okno poskytuje všeobecné rozhranie na volanie špecifických funkcií výpočtu okna.

Funkcie patriace do tejto kategórie vypočítavajú rôzne štatistické parametre signálov. Funkcie možno rozdeliť do niekoľkých skupín.

Prvá skupina sa týka výpočtu korelačných a kovariančných funkcií (tu treba pripomenúť, že v domácej a zahraničnej terminológii sa tieto pojmy nezhodujú, v tomto prehľade je použitá zahraničná verzia prevzatá v MATLABu). Funkcia xcorr umožňuje vyhodnotiť korelačnú funkciu signálu alebo funkciu vzájomnej korelácie dvoch signálov. Variant tejto funkcie, určený na prácu s dvojrozmernými signálmi, má názov xcorr2. Funkcia xcov je určený na odhad kovariančnej funkcie signálu alebo vzájomnej kovariančnej funkcie dvoch signálov. Funkcie cov a corrcoef, ktoré sú zahrnuté v základnej knižnici MATLABu, umožňujú získať kovariančnú maticu a maticu korelačných koeficientov spriemerovaním niekoľkých realizácií náhodných údajov. Funkcia corrmtx vráti maticu medziľahlých údajov na odhadnutie korelačnej matice signálu a môže vrátiť aj samotnú maticu.

Ďalšia skupina funkcií vypočítava štatistické charakteristiky vo frekvenčnej oblasti pomocou neparametrickej Welchovej metódy (pozri vyššie). Funkcia csd určené na hodnotenie vzájomná spektrálna hustota dva náhodné procesy. Môže tiež vrátiť interval spoľahlivosti pre výsledný odhad. Funkcia súdržné udáva odhad druhej mocniny modulu funkcie vzájomnej koherencie dva náhodné procesy. Funkcia tfe umožňuje hodnotiť komplexný zisk systém pre realizáciu jeho vstupných a výstupných signálov.

Nakoniec funkcia psdplot používa sa všetkými funkciami spektrálneho odhadu na vykreslenie výkonovej spektrálnej hustoty. Môže sa volať aj explicitne - napríklad zobraziť graf na lineárnej mierke namiesto predvolenej logaritmickej alebo zobraziť niekoľko spektier na jednom grafe.

Parametrické modelovanie a lineárne predikčné funkcie

Pod parametrické modelovanie je chápaný ako výber určitého matematického modelu náhodného procesu a následný výber parametrov tohto modelu pre zabezpečenie maximálnej zhody medzi signálom generovaným modelom a dostupnou reálnou vzorkou dát.

V praxi sa široko používa model autoregresie (AR), v ktorom sa náhodný signál generuje prechodom diskrétneho bieleho šumu cez „čisto rekurzívny“ (t. j. bez použitia vzoriek oneskoreného vstupného signálu) tvarovací filter. Štyri funkcie balíka na spracovanie signálu sú: Arburg, arcov, armcov a aryule- určený na získanie odhadov koeficientov tvarovacieho filtra a disperzie (výkonu) bieleho šumu, ktorý vybudí filter. Metódy výpočtu používané týmito funkciami boli špecifikované vyššie v časti „Autoregresné metódy“, kde sme hovorili o autoregresnej spektrálnej analýze.

Ak máme odhad komplexný zisk systémov na rôznych frekvenciách je možné zostrojiť realizovateľný model systému, ktorého frekvenčná charakteristika sa bude čo najviac približovať meranej. Realizovateľnosť systému tu znamená reprezentatívnosť jeho prenosovej funkcie ako zlomkovo-racionálnej funkcie s danými rádmi polynómov čitateľa a menovateľa. Parametrické modelovanie sa v tomto prípade redukuje na hľadanie optimálnych koeficientov polynómov čitateľa a menovateľa prenosovej funkcie. Túto úlohu riešia dve funkcie balíka Spracovanie signálu: funkcia invfreqs umožňuje zostaviť model analógového systému a funkcie invfreqz vykonáva podobnú operáciu pre diskrétne systémy.

Ďalší variant problému parametrického modelovania zahŕňa zostavenie modelu systému podľa dostupného odhadu impulzná odozva. Na tento účel poskytuje balík Spracovanie signálu dve funkcie. Funkcia prony využíva skutočnosť, že impulzná odozva rekurzívneho diskrétneho systému pri absencii viacerých pólov je súčtom diskrétnych exponenciálnych funkcií (vo všeobecnom prípade komplexných). Algoritmus implementovaný touto funkciou bol pôvodne vyvinutý v 18. storočí barónom de Prony s cieľom prispôsobiť parametre exponenciálneho analytického modelu experimentálnym údajom. Stabilita výsledného systému nie je zaručená, ale prvá n vzorky ( n- poradie čitateľa funkcie prenosu systému zadané vo výpočte) jeho impulznej odozvy presne tak zodpovedať daným.

Druhou funkciou modelovania systému z impulznej odozvy je funkcia stmcb- nesnaží sa zabezpečiť presnú zhodu počiatočných fragmentov impulzných odoziev - namiesto toho minimalizuje smerodajná odchýlka získanej charakteristiky z danej, teda súčtu druhých mocnín modulov rozdielov v čítaní získaných a požadovaných impulzných odoziev. Funkcia implementuje Steiglitzovu-McBrideovu iteračnú metódu, ktorá je redukovaná na viacnásobné riešenie sústavy lineárnych rovníc vzhľadom na koeficienty polynómov prenosovej funkcie požadovaného systému.

Ako príklad získame model systému tretieho rádu pomocou metód Prony a Steiglitz-McBride, pričom ako vzorku nastavíme trojuholníkovú impulznú odozvu:

h =; % impulznej odozvy
= prony(h, 3, 3); % Pronyho metóda
= stmcb(h, 3, 3); % Steiglitz-McBride metóda
% grafov impulzných odoziev získaných systémov
impz(b1, a1, 30)
titul("Prony")
postavy
impz(b2; a2; 30)
title("Stmcb")

Porovnanie grafov jasne ukazuje rozdiely medzi týmito dvoma algoritmami. Pri použití metódy Prony sa prvé štyri odčítania získanej impulznej odozvy presne zhodujú s danými, neskôr sa však odchýlky od zadaných hodnôt výrazne zväčšia a po skončení daného fragmentu sa objaví „chvost“. ” s pomerne veľkou úrovňou sa pozoruje, pretože funkcia prony nevytvára žiadne predpoklady o požadovaných hodnotách impulznej odozvy mimo daného fragmentu. Funkcia stmcb minimalizuje kvadratický chyba prednastaveného prehrávania nekonečné impulzná odozva a na konci explicitne špecifikovaného fragmentu sa považuje za rovný nule. V dôsledku toho neexistuje presná zhoda medzi hodnotami danej a získanej impulznej odozvy (s výnimkou prvej), ale chyba v reprodukcii charakteristiky je „rozmazaná“ cez odčítania rovnomernejšie.

Ak diskrétny náhodný proces nie je biely šum, ukážu sa jeho vzorky koreloval spolu. To umožňuje poznať korelačnú funkciu procesu, predpovedať hodnotu jeho ďalšieho počítania. Predpovedaná hodnota sa vypočíta ako lineárna kombinácia vzoriek z predchádzajúceho procesu. Toto je hlavná myšlienka lineárna predpoveď. Lineárna predikcia sa používa na parametrickú spektrálnu analýzu (pozri vyššie), identifikáciu systému, analýzu rečového signálu a kompresiu dát počas prenosu.

Systémové modely založené na lineárnej predikcii môžu byť reprezentované v rôznych formách a podľa toho popísané pomocou rôznych súborov parametrov. Množstvo funkcií v balíku Spracovanie signálu umožňuje previesť popis modelu z jedného formulára do druhého. Tieto funkcie sú uvedené v nasledujúcej tabuľke.

konečná podoba

Autokorelačná sekvencia

Koeficienty odrazu

Predikčné koeficienty

Arcsine parametre

Logaritmické pomery

Frekvencie spektrálnych čiar

pôvodná forma

Autokorelačná sekvencia

ac2rc, schurrc

Koeficienty odrazu

Predikčné koeficienty

Arcsine parametre

Log pomery

Frekvencie spektrálnych čiar

Okrem toho má balík Spracovanie signálu niekoľko ďalších funkcií súvisiacich s lineárnou predikciou. Na výpočet koeficientov prediktívneho filtra je teda potrebné vyriešiť sústavu lineárnych rovníc, ktorých maticou je korelačná matica vstupného signálu. Táto matica má množstvo vlastností, vďaka ktorým je možné znížiť počet výpočtových operácií potrebných na riešenie sústavy lineárnych rovníc. Po prvé, korelačná matica je samoadjunkcia(to znamená, že sa nemení po aplikácii na ňu Hermitovská konjugácia- kombinácie transpozície s komplexnou konjugáciou). Pre skutočný signál samoadjunkcia jednoducho znamená, že matica je symetrická okolo hlavnej uhlopriečky. Po druhé, v prípade stacionárneho náhodného procesu (a iba pre takéto procesy možno použiť prediktívny filter s konštantnými parametrami) je korelačná matica Toeplitzova matrica- pozdĺž jeho uhlopriečok rovnobežných s hlavnou sú rovnaké čísla. Napokon pravá strana sústavy rovníc je prvý stĺpec korelačnej matice posunutý o jednu pozíciu. Nazývajú sa sústavy lineárnych rovníc s maticami s uvedenými vlastnosťami systémy Yule-Walkerových rovníc a na ich vyriešenie rekurzívny Levinson-Durbinova metóda. Tento iteračný algoritmus je implementovaný funkciou levinson. Funkcia rlevinson rieši inverzný problém - umožňuje nájsť vektor vzoriek korelačnej funkcie signálu pre dané koeficienty lineárnej predikcie.

Funkcia lpc implementuje výpočet koeficientov lineárnej predikcie metódou autokorelácie a je analógom funkcie aryule(pozri skoršiu časť o parametrickej spektrálnej analýze). Tieto dve funkcie sa líšia iba v kóde MATLAB použitom na výpočet skóre korelačnej matice. Výsledky, ktoré poskytujú, sa zhodujú až do výpočtových chýb.

Funkcie generovania signálu

Balík na spracovanie signálu obsahuje množstvo funkcií určených na generovanie štandardných priebehov, s ktorými sa často stretávame pri riešení rôznych problémov so spracovaním signálu.

Generovanie neperiodických signálov

Všetky funkcie na generovanie neperiodických signálov prijímajú ako parametre vektor časových bodov a dodatočné argumenty popisujúce parametre generovaného impulzu. Vráteným výsledkom je vektor vzoriek výsledného signálu. Existujú funkcie na generovanie signálov nasledujúceho tvaru:

  • priamy impulz
  • - generovanie jedného obdĺžnikového impulzu, jediným dodatočným parametrom je trvanie impulzu;
  • tripulmi
  • - generovanie jedného trojuholníkového impulzu, ďalšie parametre sú trvanie impulzu a koeficient jeho asymetrie; - generovanie impulzu s pravouhlým spektrom podľa vzorca sinc( X) = hriech(str X)/(str X). Táto funkcia nemá žiadne ďalšie parametre;
  • Gauspulse
  • - generovanie rádiového impulzu s Gaussovou obálkou. Ďalšími parametrami sú nosná frekvencia, relatívna šírka pásma a úroveň (v decibeloch), pri ktorej sa táto šírka pásma meria;
  • gmonopuls
  • - generovanie Gaussovho monopulzu (jeho tvar je prvou deriváciou Gaussovej funkcie). Dodatočný parameter je priemerná frekvencia spektra generovaného signálu.

Generovanie periodických signálov

Funkcie patriace do tejto skupiny dostávajú ako parametre vektor časových bodov a dodatočné argumenty popisujúce parametre generovaného impulzu. Perióda generovaných signálov sa rovná 2p. Na generovanie signálov s inou periódou je potrebné zodpovedajúcim spôsobom škálovať časový argument odovzdaný funkcii. Vráteným výsledkom je vektor vzoriek výsledného signálu. Existujú funkcie na generovanie periodických signálov nasledujúceho tvaru:

  • námestie
  • - generovanie periodickej sekvencie pravouhlých impulzov. Ďalším parametrom je pracovný cyklus impulzov (pomer trvania impulzu k perióde ich opakovania);
  • pílový zub
  • - generovanie periodického pílovitého signálu. Ďalším parametrom je koeficient asymetrie trojuholníkových impulzov, ktoré tvoria periodickú sekvenciu;
  • diric
  • je Dirichletova funkcia. Ďalším parametrom je celočíselné poradie funkcie. Dirichletova funkcia sa vypočíta podľa vzorca diric( X) = hriech( nx/2)/(n hriech( X/2));

Generovanie kmitov s meniacou sa frekvenciou

Táto skupina zahŕňa dve funkcie - cvrlikať a vco. Funkcia cvrlikať generuje oscilácie, ktorých okamžitá frekvencia sa mení podľa jedného z troch možných zákonov – lineárneho, kvadratického alebo exponenciálneho. Funkcia má viac možností vco(Voltage Controlled Oscillator - napäťovo riadený generátor), ktorý umožňuje generovať oscilácie s ľubovoľným zákonom o zmene okamžitej frekvencie. V skutočnosti táto funkcia vykonáva frekvenčnú moduláciu.

Generovanie pulzného vlaku

Funkcia pulstran slúži na generovanie konečnej sekvencie impulzov rovnakého tvaru s ľubovoľne nastaveným oneskorením a faktormi amplitúdy. Tvar impulzov môže byť špecifikovaný jedným z dvoch spôsobov: názvom funkcie, ktorá impulz generuje, alebo už vypočítaným vzorovým vektorom.

Ako príklad zvážte použitie funkcií pulstran a sinc obnoviť analógový signál z jeho diskrétnych vzoriek podľa Kotelnikovovej vety.

t = -5:0,1:10; % času pre analógový signál
k = 0:5; % počtu diskrétnych vzoriek signálu
sd = ; % diskrétneho signálu
sa = pulstran(t, , "sinc"); % obnoveného analógového signálu
stem(k, sd) % graf diskrétneho signálu
Počkaj
plot(t, sa, "r") % graf analógového signálu
zdržať sa

Funkcie diskrétnej transformácie signálu

Asi najznámejšou z diskrétnych transformácií signálu je diskrétna Fourierova transformácia (DFT). Zodpovedajúca funkcia využívajúca algoritmus rýchlej Fourierovej transformácie (FFT) v MATLAB patrí do kategórie funkcií spracovania dát a je zabudovaná (funkcie fft a ift- jednorozmerná verzia, fft2 a ifft2- dvojrozmerná verzia, fft-shift a ifftshift- permutácia polovíc vektora spektrálnych vzoriek na prenos nulovej frekvencie do stredu vektora). V skutočnosti balík Spracovanie signálu obsahuje funkcie, ktoré implementujú špecifickejšie transformácie.

Ako každá lineárna transformácia, DFT môže byť reprezentovaná ako násobenie transformačnej matice stĺpcom vzoriek konvertovaného signálu. Táto transformačná matica pre DFT je vypočítaná funkciou dftmtx.

Opäť kvôli linearite DFT môže byť akákoľvek spektrálna vzorka reprezentovaná ako výsledok spracovania pôvodného signálu nejakým filtrom. Reprezentácia tohto filtra v rekurzívnej forme dáva Herzelov algoritmus, implementovaný funkciou goertzel. Ak je potrebné vypočítať iba niektoré spektrálne vzorky, tento algoritmus je rýchlejší ako FFT.

Blízkym príbuzným DFT je diskrétna kosínusová transformácia. Pri jej výpočte sa namiesto periodického pokračovania signálu, ktoré sa predpokladá v DFT, zrkadlia susedné fragmenty pokračujúceho signálu v čase. Výsledkom je, že signál sa stáva rovnomernou funkciou času a jeho spektrum sa stáva skutočným. Z tohto dôvodu sa namiesto zložitých exponenciál vo vzorci DFT, ktorý dal názov, objavujú iba kosínusy túto premenu. Funkcie počítajú dopredné a inverzné diskrétne kosínusové transformácie dct a idct resp.

Dôležitou metódou na analýzu diskrétnych číselných sekvencií je z-transformácia, ktorej výsledkom je funkcia komplexnej premennej z:

.

V niektorých problémoch je potrebné počítať z-transformácia pre body umiestnené na špirálovom obryse: . Výpočtovo efektívny výpočet z-transformácie pozdĺž takéhoto obrysu využíva rýchlu Fourierovu transformáciu; je implementovaný vo funkcii czt.

Pri implementácii niektorých variantov algoritmu rýchlej Fourierovej transformácie je v záujme zvýšenia efektívnosti potrebné preusporiadať prvky spracovávaného vektora v opačné poradie bitov(to znamená, že v binárnych reprezentáciách vektorových čísel prvkov sa bity čítajú v opačnom poradí a potom je vektor usporiadaný podľa nových čísel prvkov). Ak chcete vykonať takúto permutáciu, použite funkciu bitrevorder.

Pri analýze úzkopásmových signálov môže byť užitočné reprezentovať signál ako osciláciu s časovo premenlivou amplitúdou a počiatočnou fázou. Ak chcete získať takéto zobrazenie, komplex analytický signál, ktorého reálna časť sa zhoduje s pôvodným signálom a imaginárna časť je určená Hilbertova transformácia z pôvodného signálu. Vo frekvenčnej oblasti je analytický signál charakterizovaný jednostranným spektrom: jeho spektrálna funkcia je nenulová iba pre kladné frekvencie. Funkcia hilbert vypočíta analytický signál vo frekvenčnej oblasti výpočtom priameho DFT, vynulovaním polovice spektra a následným výpočtom inverzného DFT.

Ako príklad si vypočítajme analytický signál pre pravouhlý rádiový impulz:

s = nuly (256,1);
s(65:192) = cos(pi/2*(0:127)"); % počtu rádiových impulzov
sa = hilbert(y); % analytického signálu
f = (-128:127)/128; % hodnota normalizovaných frekvencií pre grafy
podkres (2,1,1)
plot(f, abs(fftshift(fft(s)))) % skutočného spektra signálu
podkres (2,1,2)
plot(f, abs(fftshift(fft(sa)))) % spektra analytického signálu

Spodný graf jasne ukazuje vynulovanie spektra v oblasti negatívnych frekvencií a jeho zdvojnásobenie v oblasti pozitívnych frekvencií.

Cepstrálna analýza

Kepstrálna analýza súvisí s homomorfným spracovaním signálu. Takéto spracovanie sa riadi všeobecným princípom superpozície: ak je vstupný signál systému kombináciou niekoľkých signálov získaných pomocou matematickej operácie ALE, potom sa na výstupe pomocou operácie spoja výsledky spracovania jednotlivých signálov B. Kepstrálna analýza našla svoje uplatnenie najmä v problémoch spracovania reči. Balík na spracovanie signálu má niekoľko funkcií súvisiacich s kepstrálnou analýzou.

Funkcia rceps vypočítava skutočný cepstrum signálu, pričom ignoruje informácie obsiahnuté v fázové spektrum. Rovnaká funkcia vám umožňuje získať rekonštrukcia minimálnej fázy signál. Nuly z-transformácie postupnosti odčítaní takéhoto signálu ležia na komplexnej rovine vo vnútri jednotkového kruhu a jeho kepstrum sa zhoduje s kepstrom pôvodného signálu.

Komplexné cepstrum vypočítané pomocou funkcie ccps, berie do úvahy informácie o amplitúde aj fáze, takže jeho vzťah s pôvodným signálom je jedna k jednej. Inverznú transformáciu, teda výpočet signálu zo známeho komplexného kepstra, vykonáva funkcia ľadovce.

Zmena vzorkovacej frekvencie

Transformácie zahŕňajú skupinu funkcií, ktoré menia vzorkovaciu frekvenciu signálu. Najčastejšie je potrebné zmeniť vzorkovaciu frekvenciu o celé číslo. V prípade zvýšenia vzorkovacej frekvencie sa táto operácia nazýva interpolácia a v prípade poklesu - rednutie(decimácia). Akýkoľvek prepočet vzorkovacej frekvencie si vyžaduje vykonanie niekoľkých krokov za sebou. Balík Spracovanie signálu obsahuje funkcie, ktoré implementujú jednotlivé akcie a ich potrebné sekvencie.

Na vykonanie interpolácie medzi vzorkami signálu sa vloží požadovaný počet núl (funkcia upsample), potom prijatý signál prechádza cez dolnopriepustný filter. Spoločne tieto dve fázy implementuje funkcia interp.

Na vykonanie decimácie signál prechádza cez dolnopriepustný filter a potom každý N-tý počet (funkcia downsample). Spoločne tieto dve fázy implementuje funkcia zdecimovať.

Kombinácia operácií interpolácie a stenčovania umožňuje meniť vzorkovaciu frekvenciu faktorom vyjadreným ľubovoľným racionálnym zlomkom. Na zvýšenie efektívnosti výpočtov takýto prepočet vykonáva špecializovaná funkcia prevzorkovať, a to zase volá funkciu upfirdn(nulové vkladanie, filtrovanie a decimovanie). Hlavný rozdiel medzi týmito dvoma funkciami je v tom upfirdn umožňuje nastaviť impulznú odozvu použitého filtra a pri použití funkcie prevzorkovať filter sa vypočíta automaticky.

Nakoniec, pre absolútne ľubovoľný prepočet referenčných momentov možno použiť bežné interpolačné funkcie obsiahnuté v knižnici jadra MATLABu, ako napr. interp1 a spline.

Ako príklad si interpolujme signál použitý vyššie na demonštráciu funkcií pulstran a sinc, čím sa vzorkovacia frekvencia zvýši štvornásobne. Nulové vzorky sa pridávajú pozdĺž okrajov signálu, pretože funkcia interp vyžaduje, aby pôvodná sekvencia bola dlhá aspoň deväť vzoriek.

sd = ; % pôvodného signálu
t = 0:9; % diskrétneho času pre pôvodný signál
sd4 = interp(sd, 4); % interpolácie
t4 = (0:39)/4; % diskrétneho času pre interpolovaný signál
stem(t, sd) % graf pôvodného signálu
Počkaj
plot(t4, sd4, "x") % graf interpolovaného signálu
zdržať sa

Vo vyššie uvedenom grafe je pôvodný signál znázornený „stopkami“ a interpolovaný signál je znázornený krížikmi.

Táto skupina obsahuje celkom veľké číslo funkcie. Mnohé z nich sú určené predovšetkým na „interné použitie“ – volajú ich ďalšie funkcie v balíku. Množstvo funkcií v tejto kategórii má však úplne nezávislú hodnotu.

Funkcia vyrovnávacej pamäte umožňuje reprezentovať vektor vzoriek signálu v matici po sebe nasledujúcich snímok a tieto snímky sa môžu prekrývať.

Funkcie mod a demod vykonávať moduláciu a demoduláciu. Podporované sú nasledujúce typy modulácie: amplitúda, amplitúdová potlačená nosná, jednostranné pásmo, fáza, frekvencia, kvadratúra, šírka impulzu, časový impulz.

Funkcie zakódovať a udecode implementovať, v tomto poradí, jednotné kvantovanie a obnovenie signálu počtom úrovní kvantovania.

Funkcia pruhy je určený na zobrazenie signálového grafu v niekoľkých riadkoch. To je užitočné, ak sa potrebujete pozrieť dlhý signálúplne a na rozlíšení pozdĺž zvislej osi príliš nezáleží.

Rodina funkcií, ktorých názvy začínajú symbolmi dpss, je určený na výpočet diskrétnych prolačných sféroidných funkcií a na prácu s databázou určenou na ukladanie vypočítaných funkcií. Diskrétne prolátové sféroidné funkcie sa používajú v spektrálnej analýze Thomsonovou metódou (pozri časť „Funkcie spektrálnej analýzy a štatistického spracovania signálu“, pododdiel „Neparametrické metódy“).

Funkcie cell2sos a sos2cell umožňujú ukladať informácie o filtri prezentované vo forme postupne zaradených sekcií druhého rádu nielen vo forme matice, ale aj vo forme poľa buniek. Tieto dve funkcie konvertujú pohľad medzi určenými dvoma formami.

Funkcia specgram vypočítava spektrogram signálu, t.j. spektrá po sebe nasledujúcich fragmentov signálu vybraných pomocou posuvného okna. Výsledky výpočtu možno vrátiť ako maticu alebo zobraziť farebne v časovo-frekvenčných súradniciach.

Funkcia cplxpair vyberá komplexne konjugované páry vo vektoroch komplexných čísel.

Funkcia eqtflength umožňuje vyrovnať dĺžky dvoch vektorov vyplnením kratšieho nulami na konci.

Funkcia nasledujúce obdobie je určený na kontrolu periodicity prvkov vektora a určenie periódy ich opakovania.

Program na syntézu a analýzu filtrov FDATool (Filter Design & Analysis Tool) je shell na volanie funkcií syntézy a analýzy diskrétnych filtrov. Ak máte nástroj Filter Design Toolbox tento program tiež umožňuje analyzovať účinky spojené s kvantizáciou koeficientov filtra a vykonávať konverzie typu filtra (LPF na HPF atď.).

Program umožňuje nielen vypočítať filtre od začiatku, ale aj uložiť a načítať pracovné relácie, upraviť predtým uložené filtre. Okrem toho môžete importovať popis filtra z pracovného priestoru MATLAB alebo zo súborov formátu XILINX CORE Generator (*.coe). Importované filtre je možné iba analyzovať.

Pri analýze si môžete pozrieť nasledujúce charakteristiky filtra (v najnovšie verzie balík, môžete zobraziť niekoľko grafov súčasne):

  • Amplitúdovo-frekvenčná charakteristika (AFC).
  • Fázová odozva (PFC).
  • AFC a PFC súčasne.
  • skupinové oneskorenie.
  • fázového oneskorenia.
  • impulzná odozva.
  • prechodová charakteristika.
  • Umiestnenie núl a pólov v komplexnej rovine.
  • Filtračné koeficienty.
  • Informácie o štruktúre filtra.

Vypočítaný filter možno použiť nasledovne:

  • Uložte reláciu na neskoršie načítanie do programu FDATool na ďalšie úpravy a analýzu.
  • Exportovať do pracovného priestoru MATLAB.
  • Exportovať do textového súboru.
  • Export do súboru MAT.
  • Export do hlavičkového (*.h) súboru jazyka C.
  • Export do SPTool (pozri nižšie).

Na obrázku nižšie je pohľad na okno programu FDATool s výsledkami výpočtu eliptického dolnopriepustného filtra pomocou metódy bilineárnej z-transformácie. Zobrazia sa grafy frekvenčnej odozvy a skupinového oneskorenia.

Program na spracovanie signálov SPTool (Signal Processing Tool) umožňuje vykonávať nasledujúce operácie: import signálov zo súborov MAT alebo pracovného priestoru MATLAB; zobraziť grafy signálov (vrátane niekoľkých súčasne); aplikovať na signály rôzne metódy spektrálna analýza a zobrazenie výsledných grafov; vypočítať diskrétne filtre pomocou funkcií balíka (vrátane priamej úpravy umiestnenia núl a pólov); prechádzajú signály cez filtre a analyzujú výsledné výstupné signály.

Treba poznamenať, že z hľadiska analýzy a syntézy filtrov sú možnosti programu SPTool užšie ako možnosti programu FDATool (jedinou výnimkou je možnosť priamo upravovať umiestnenie núl a pólov, čo vo FDATool chýba) . Tieto obmedzenia sú však kompenzované možnosťou exportovať vypočítaný filter z FDATool do SPTool.

Obrázky nižšie zobrazujú pohľad na okno programu SPTool pri prezeraní grafu signálu, pri analýze spektra a pri úprave umiestnenia núl a pólov filtra.

Program na syntézu a analýzu váhových (okenných) funkcií WinTool (Window Design and Analysis Tool), ktorý sa objavil vo verzii balíka 6.0 (R13), je shell na volanie funkcií výpočtu okna dostupných v balíku. To demonštruje charakteristiky okna (alebo niekoľkých okien súčasne) v časovej a frekvenčnej doméne.

Na obrázku nižšie je pohľad na okno programu WinTool s výsledkami výpočtu Chebyshev okna 64. rádu s úrovňou bočných lalokov spektra -100 dB. Zobrazí sa graf časovej oblasti okna a jeho spektrum.

Dizajn digitálneho filtra

4.1.1. Základné definície návrhu digitálnych filtrov

Digitálny filter (DF) je široko chápaný ako akýkoľvek digitálny systém, ktorý extrahuje digitálny signál alebo jeho parametre zo zmesi existujúcej na vstupe systému interferenčný signál.

Digitálny filter v užšom zmysle je frekvenčne selektívny obvod, ktorý poskytuje výber digitálnych signálov podľa frekvencie.

Digitálne filtre v širšom zmysle zahŕňajú:

Amplitúdové a fázové korektory frekvenčných charakteristík;

Diferenciátory;

Hilbert Transformers;

zhodné filtre.

Digitálne filtre v užšom zmysle zahŕňajú frekvenčne selektívne filtre:

Nízkopriepustný filter (LPF);

hornopriepustný filter (HPF);

Pásmový filter (PF);

Zárezový filter (RF).

Digitálne filtre môžu byť implementované:

hardvér;

Programovo;

Hardvér softvér.

Hardvérová implementácia znamená použitie funkčných prvkov vo forme registrov, sčítačiek, násobičov, pamäťových zariadení, logických prvkov.

Softvérová implementácia znamená, že filter je prezentovaný ako program napísaný v programovacom jazyku.

Hardvérovo-softvérová implementácia znamená, že časť funkcií filtra sa vykonáva hardvérovo (ADC, DAC, násobenie, príjem/prenos dát), zatiaľ čo druhá časť funkcií sa vykonáva softvérovo.

Návrh digitálneho filtra je chápaný ako proces, v dôsledku ktorého je prezentovaný program resp digitálne zariadenie ktorý spĺňa dané požiadavky.

Návrh digitálneho filtra zahŕňa nasledujúce kroky:

1. Syntéza.

2. Vývoj výpočtových algoritmov.

3. Overenie simuláciou.

4. Praktická implementácia a ladenie.

výsledok syntéza je štrukturálna schéma filter a súbor koeficientov a diferenčných rovníc a prenosových funkcií.

Vývoj výpočtového algoritmu závisí od kapacity registrov, počtu procesorových batérií, možnosti paralelizácie operácií, prítomnosti multiplikačných a akumulačných zariadení. Finálny algoritmus by mal zabezpečiť, aby filter fungoval v reálnom čase s minimálnou stratou kvality.

Overenie simulácie sa uskutočňuje v neskutočnom časovom meradle podľa štandardných signálov pomocou softvérových emulátorov. Zároveň sa odstraňujú logické chyby a kontroluje sa súlad filtra so zadanými charakteristikami.

Praktická implementácia a ladenie realizované v reálnom čase pomocou ladiacich modulov.



Všeobecné informácie o syntéze CF

Počas procesu syntézy sa vykonávajú tieto kroky:

Požiadavky na filter sú nastavené;

Vypočítajú sa koeficienty prenosovej funkcie alebo diferenčnej rovnice;

Vytvára sa bloková schéma digitálneho filtra.

Požiadavky na digitálny filter môžu byť špecifikované buď v časovej oblasti alebo vo frekvenčnej oblasti, v závislosti od účelu filtra.

Požiadavky v časovej oblasti sú zvyčajne špecifikované pre prispôsobené filtre prostredníctvom požadovanej impulznej odozvy.

Požiadavky vo frekvenčnej oblasti sú zvyčajne špecifikované pre frekvenčne selektívne filtre.

Napríklad požiadavky na pásmový filter sú charakterizované piatimi frekvenčnými pásmami (obrázok 2.1):

centrálna šírka pásma (PP);

Dva zadržiavacie pruhy (PZ1, PZ2);

Dva prechodové pruhy.

Obrázok 2.1 - schéma požiadaviek na frekvenčnú charakteristiku PF

Obrázok 1 zobrazuje:

Medzná frekvencia prvého stoppásma PZ1, ktorého šírka ;

Medzná frekvencia ľavého priepustného pásma;

Medzná frekvencia pravého priepustného pásma, šírka pásma ;

Medzná frekvencia druhého oneskorovacieho pásma PZ2, ktorého šírka ;

Prechodové pásy 1 a 2 majú šírku , , resp.

Hodnota charakterizuje maximálnu povolenú odchýlku frekvenčnej odozvy od 1 v rámci šírky pásma. Hodnota charakterizuje maximálnu prípustnú odchýlku frekvenčnej odozvy od 0 v rámci zastavovacích pásiem. Požiadavky na charakteristiky frekvenčnej odozvy v rámci prechodových pásiem zvyčajne nie sú špecifikované.

Existujú nasledujúce typy metód syntézy:

Priame metódy syntézy;

Metódy syntézy využívajúce analógový prototyp.

Priame metódy spadajú do dvoch kategórií:

Osvedčené postupy;

suboptimálne metódy.

AT osvedčené postupy na nájdenie minima danej funkcie kvality sa používajú numerické metódy. Ako minimalizovaná miera odchýlky charakteristiky filtra od danej sa používa chybovosť:



. (2.1)

Suboptimálne metódy umožňujú zjednodušiť výpočty zohľadňovaním špecifík problému.

Teoretická časť pre túto laboratórnu prácu je obsiahnutá v návode "Metódy syntézy digitálnych filtrov" (file filtrs\lecture_dsp.doc)

  1. Práca s programom qedesign 1000.

Spustite QED.exe a stiahnite si QEDESIGN 1000 Digital Filter Design System.

V hlavnej ponuke, ktorá sa otvorí, vyberte podponuku Návrh, otvorí sa okno na určenie typov filtrov pre výpočet:

Obr.1. Menu "Design" Obr.2. Ponuka možností

Tu si môžete vybrať spôsob výpočtu filtra, ktorý sa má vypočítať:

1. Výpočet IIR filtra (IIR Design).

pre IIR filtre dodatočne otvorte ponuku Možnosti a vyberte jednu z metód

    Bilineárna transformácia

    metóda invariantnej impulznej odozvy (Impulse Invariant)

2. Výpočet FIR filtra váhovou metódou pomocou okna (FIR Design (Windows))

3. Výpočet FIR filtra metódou optimálnych filtrov (FIR Equiripple FIR Filter Design)

Kliknutím ľavým tlačidlom myši vyberte požadovanú metódu.

1 - dolnopriepustný filter (dolnopriepustný)

2 - hornopriepustný filter (Highpass)

3-pásmový filter (Bandpass)

4 - zárezový filter (Bandstop)

Po výbere typu filtra sa otvorí okno pre nastavenie parametrov filtra.

Obr.3. Okno pre nastavenie parametrov dolnopriepustného filtra

Obr 4. Okno pre nastavenie parametrov hornopriepustného filtra

V tomto okne je potrebné nastaviť:

Vzorkovacia frekvencia F d

Medzné frekvencie priepustného pásma Wп (Frekvencia priepustného pásma)

Medzné frekvencie oneskoreného pásma Wз (Frekvencia zastaveného pásma)

Zvlnenie (útlm) v priepustnom pásme (Zvlnenie priechodového pásma)

Zvlnenie (útlm) v pásme oneskorenia (Zvlnenie stoppásma)

Pritom pamätajte na:

pre dolnopriepustné filtre Wp

pre hornopriepustné filtre Wп>Wз

pre pásmové filtre Wп1

pre zárezové filtre Wp1

Hraničné frekvencie musia byť nižšie ako vzorkovacia frekvencia delená 2.

Typický rozsah zvlnenia (rozpadu):

v šírke pásma 0,1 - 3 dB

v pásme oneskorenia 20 - 100 dB

Vyplňte všetky polia a kliknite na tlačidlo „Prijať“.

D
potom prejdite do hlavnej ponuky a vyberte položku ponuky "Štart".

Na tejto obrazovke pre IIR filtre je okno obr. 5.

Obr. 5. Okno pre výpočet IIR filtrov

Prototyp analógového filtra (Vyberte typ analógového filtra):

1- Butterworth;

2 - Čebyšev;

3 - reverzný Chebyshev;

4 - eliptický;

5 - Bessel;

Objednávka filtra (zadajte požadovanú objednávku)

Poradie filtra musí byť násobkom 2; nesmie byť väčšia ako odhadovaná objednávka (odhadovaná objednávka filtra).

Pre FIR filtre vypočítané okennou metódou sa otvorí okno, obr. 6

Ryža. 6. Okno pre výpočet FIR filtrov pomocou metódy okna.

Tu sú možné funkcie okna spolu s odporúčaným počtom vzoriek odhadovanej objednávky:

1 - obdĺžnikový;

2 - trojuholníkový;

4 - Hamming;

5 - Blackman;

a ďalšie.

Vyberte počet klepnutí filtra (zadajte požadovaný počet klepnutí)

Počet odčítaní by nemal byť menší ako 2 a viac ako odporúčané.

Pre optimálne FIR filtre zvoľte:

Odhadovaný počet klepnutí

Počet odčítaní by nemal byť menší ako 3 a viac ako odporúčané.

Používateľ má možnosť zobraziť na obrazovke a na tlačiarni nasledujúce grafy:

Pre IIR filtre:

Amplitúdová charakteristika (veľkosť)

Fázová odozva (Fáza);

Póly a nuly prenosovej funkcie (Poles and Nuly);

Charakteristika skupinového oneskorenia (Group Delay);

Pre FIR filtre:

Amplitúdová charakteristika (magnitúda);

Amplitúdová odozva na logaritmickej stupnici (Log10 Magnitude);

Impulzová odpoveď (Impulse Response);

Prechodná odozva (Step Response);

Otvorí sa ponuka pre uloženie výsledkov, obr.7.

Ryža. 7. Ponuka Uložiť výsledky

Na uloženie výsledkov sa používa spoločný názov súboru (napr. filtr1).

Ak bola vybratá možnosť Uložiť špecifikácie problému, špecifikácia filtra sa uloží do súboru *.spc.

Ak je vybratá možnosť Vytvoriť súbor kvantifikovaných koeficientov, koeficienty filtra sa uložia. Systém vykonáva kvantovanie koeficientov filtra. Vždy musí byť vybratá možnosť Kvantizovať koeficienty. V opačnom prípade sa koeficienty filtra neuložia.

Na obr. 8. zobrazuje okno pre nastavenie parametrov kvantizácie, ktoré obsahuje aj informácie o spôsobe implementácie filtra.

Ryža. 8. Ponuka možností kvantizácie

Pre IIR filtre sú možné dva typy implementácie:

    Kaskádová forma s blokmi 2. rádu v priamej forme (Cascaded Transposed Second Order Section);

    Kaskádová forma s blokmi 2. rádu v kanonickej forme (Cascaded Canonic Second Order Section);

    Paralelná priama forma s blokmi druhého rádu (Paralelná transponovaná sekcia druhého rádu);

    Paralelne transponovaná sekcia druhého poriadku (Paralelná transponovaná sekcia druhého poriadku);

Výsledky výpočtu koeficientov filtra sú uložené v súbore *.flt.

Nasleduje príklad obsahu súboru kvantovaných koeficientov pásmového filtra.

FILTROVAŤ SÚBOR S KOEFICIENTOM

TYP FILTRA PÁSMO VSTUP

ANALOGOVÝ FILTER TYP ELIPTICKÉHO

Zvlnenie PÁSMA V -dB -3,0000

Zvlnenie STOPBAND V -dB -20,0000

FREKVENCIE PRE PÁSMO .500000E+03 .600000E+03 HERTZ

FREKVENCIE ZASTAVOVACIEHO PÁSU .400000E+03 .700000E+03 HERTZ

FREKVENCIA ODBERU ,400000E+04 HERTZ

METÓDA NÁVRHU FILTRA: BILINEÁRNA TRANSFORMÁCIA

OBJEDNÁVKA FILTRA 4 0004h

POČET SEKCIÍ 20002h

NIE KVANTOVANÝCH BITOV 16 0010h

TYP KVANTIZÁCIE - BLOK PLÁVAJÚCI BOD

KOEFICIENTY PRE KASKÁDOVÚ FORMU II

4 FFFFFFFC /* počet posunov pre celkový zisk */

21237 000052F5 /* celkový zisk */

2 FFFFFFFE /* počet posunov pre hodnoty čitateľa sekcie 1 */

30006 00007536 /* koeficient oddielu 1 B0 */

21867 FFFFAA95 /* koeficient sekcie 1 B1 */

30006 00007536 /* koeficient sekcie 1 B2 */

1 00000001 /* počet posunov pre hodnoty menovateľa sekcie 1*/

19208 00004B08 /* koeficient sekcie 1 A1 */

15554 FFFFC33E /* koeficient sekcie 1 A2 */

3 00000003 /* počet posunov pre hodnoty čitateľa sekcie 2 */

15490 00003C82 /* koeficient sekcie 2 B0 */

25573 FFFF9C1B /* koeficient sekcie 2 B1 */

15490 00003C82 /* koeficient sekcie 2 B2 */

1 00000001 /* počet posunov pre hodnoty menovateľa sekcie 2 */

22299 0000571B /* koeficient sekcie 2 A1 */

15636 FFFFC2EC ​​​​/* koeficient sekcie 2 A2 */

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

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

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

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

9493560791015625D+00 BFEE612000000000 ,94936011E+00 /* sekcia 1 A2 */

3781799316406250D+01 400E412000000000 ,37818290E+01 /* sekcia 2 B0 */

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

3781799316406250D+01 400E412000000000 ,37818290E+01 /* sekcia 2 B2 */

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

9543914794921875D+00 BFEE8A6000000000 ,95439489E+00 /* sekcia 2 A2 */

Implementácia štruktúry kaskádovej formy IIR filtra so sekciami druhého rádu v kanonickej forme (typ) 2

Syntetizovaný filter môže byť reprezentovaný ako produkt sekcií druhého rádu:

,

kde K je celá časť (N=1)/2. H k (z) má všeobecný tvar:

Filter je možné implementovať pomocou nasledujúceho formulára pre každú sekciu druhého rádu v kanonickej forme:

Obr.9. Sekcia druhého rádu v kánonickej forme

(Aký je významný rozdiel medzi takouto implementáciou a priamou implementáciou?)

Implementácia štruktúry kaskádovej formy FIR filtra so sekciami druhého rádu v kanonickej forme

Môžeme sa rozložiť H(z) pre systémy druhého rádu:

K je celá časť (M+1)/2 (M je dĺžka filtra).

Jednoduchá kaskádová implementácia FIR filtra so sekciami druhého rádu:

Ryža. 10. Jednoduchá kaskádová implementácia FIR filtra.