Modelarea semnalelor discrete în Matlab. Procesarea semnalului digital: modelare în MATLAB (RUB 367.00)

A. I. Solonina S. M. Arbuzov Recomandat de UMO privind educația în domeniul telecomunicațiilor ca ajutor didactic pentru studenții instituțiilor de învățământ superior care studiază în domeniul formării specialiștilor atestați 210400 „Telecomunicații” Sankt Petersburg „BHV-Petersburg” 2008

Pagina 1

UDC 681.3.06 (075.8) BBK 32.973(ya73) S60 Solonina, A.I. S60 Prelucrare digitală semnale. Modelare în MATLAB / A. I. Solonina, S. M. Arbuzov. - Sankt Petersburg: BHV-Petersburg, 2008. - 816 p.: ill. - (Tutorial) ISBN 978-5-9775-0259-7 Considerat metode de bazăși algoritmi de procesare a semnalului digital (DSP) și simularea lor pe computer folosind MATLAB. Sunt prezentate principalele moduri de operare ale sistemului MATLAB, calcule matriceale, metode numerice standard și reprezentare grafică. Specificul reprezentării semnalelor și sistemelor DSP în MATLAB sunt discutate în detaliu, sunt descrise sisteme liniare discrete, sinteza filtrelor FIR și IIR, filtrarea digitală adaptivă, cuantizarea, wavelets și modelarea acestor obiecte și procese DSP folosind software-ul MATLAB, precum și un număr de programe grafice incluse într-un pachet de extensii MATLAB și concepute pentru a rezolva problemele DSP folosind o interfață grafică de utilizator fără acces direct la software-ul MATLAB. Pentru studenți și profesori universitari, precum și specialiști în procesarea semnalului digital Recenzători: M. S. Kupriyanov, doctor în științe tehnice, profesor al Universității Electrotehnice de Stat din Sankt Petersburg „LETI” V. A. Vargauzin, dr. , profesor asociat la Sankt Petersburg Universitatea Politehnică de Stat UDC 681.3.06 (075.8) BBK 32.973 (ya73) Grup de pregătire a publicației: redactor-șef adjunct. Redactor-șef șef. Editor editorial Aspect computer Coritor Design serie Design coperta Cap. produs de Ekaterina Kondukova Tatyana Lapina Grigory Dobin Nina Sedykh Natalia Smirnova Victoria Piotrovskaya Igor Tsyrulnikov Elena Belyaeva Nikolay Tverskikh Cod de licență Nr. 02429 din 24.07.00. Semnat pentru publicare la 30.05.08. Format 70×1001/16. Imprimarea fundalului. Da. ïå÷. ë. 65,78. Circulație 1500 ýêç. Ordinul ¹ „Bal-Paratórðr”, 194354, Sásíkò-Prátórðr, óë. Sanya, 5A. Incheiere sanitara si epidemiologica pentru produsul Nr 77.99.60.953.Ä.002108.02.07 din data de 28.02.2007. emis de Serviciul Federal de Supraveghere pentru Protecția Drepturilor Consumatorului și Bunăstarea Umanului. Tipărit din folii transparente gata făcute la Întreprinderea Unitară de Stat „Imprimeria „Nauka” 199034, Sashaykt-Paparya, 9-a, 12 ISBN 978-5-9775-0259-7 © Solonina A. I., Arbuzov S. M., 2008 © Editura Design, „BHV-Petersburg”, 2008

Pagina 2

Cuprins PREFAȚĂ................................................ ................................................... ......... .............1 LISTA ABREVIERILOR ÎN LIMBA RUSĂ.................... ...............................................3 LISTA ABREVIERILOR ÎN LIMBA ENGLEZĂ............... ................................. ...5 PARTEA I. INTRODUCERE ÎN MATLAB .... ................................... .................... ...................7 CAPITOLUL 1. INTRODUCERE ÎN SISTEMUL MATLAB.. .................................................. ...............9 1.1. Denumiri acceptate............................................................. ........................................................10 1.2. Instalarea și lansarea MATLAB ................................................. ...... ................................11 1.3. Interfață MATLAB............................................................. ... .................................13 1.4. Sistemul de ajutor MATLAB.................................................. ............................. ..........................16 CAPITOLUL 2. MOD DE CALCULARE DIRECT.................................................................. ...................24 2.1. Echipe.................................................................. ....... ................................................. ............. .........25 2.2. Operatori: operator de atribuire.................................................. ...... ...................26 2.3. Constante................................................................. ....... ................................................. ............. .......27 2.4. Variabile.................................................................. ....... ................................................. ............. ....34 2.5. Funcții.................................................. ....... ................................................. ............. ..........37 2.6. Expresii................................................. ....... ................................................. ............. ......43 2.7. Simboluri și funcții ale operațiilor................................................ ....... ........................44 2.8. Zona memorie de lucru Spațiu de lucru: comenzi cine, cine, șterge ..................51 2.9. Salvarea datelor pe disc: salvare, încărcare comenzi .................................. ...............53 2.10. Crearea propriului folder și salvarea căii către acesta...................................53

Pagina 3

IV Cuprins CAPITOLUL 3. LABORATORUL MATRIX................................................... ......... ........................55 3.1. Elementele matricelor și accesul la acestea.................................................. ......... ................56 3.2. Lungimea vectorului și dimensiunea matricei: lungimea funcțiilor, dimensiunea..................................58 3.3. Funcții pentru generarea matricelor standard.................................................. ....... ...............58 3.4. Formarea vectorilor și submatricilor dintr-o matrice.................................................. .........61 3.5. Concatenarea submatricelor și a vectorilor în matrici.................................................. ......63 3.6 . Copierea matricilor: funcția repmat ............................................. ....... ...............64 3.7. Operații la nivel de elemente cu matrici.................................................. ..................... ...............65 3.8. Operaţii cu matrice în probleme de algebră liniară..................................66 3.9. Operatii cu matrice in probleme de statistica matematica: functii max, min, sort, sum, prod, cumsum, diff, mean, std, var, cov, corrcoef ................. .. ................................................ ........ .................................103 CAP 4. TIPURI DE MATRICE.... .......................................... ...............................................111 4.1. Matrice numerice ............................................................. ........................................................ ..111 4.2. Matrice non-numerice.............................................................. ...... .................................114 4.3. Definirea unui tip de date: funcție de clasă................................................ ........ .......124 CAPITOLUL 5. GRAFICA.............................. ...................................................... ............ ..........127 5.1. Grafică 2D: comenzile figurează, hold on, hold off; funcția de subplot................................................... ................................................... ......... ....127 5.2. Proiectarea graficelor: comandă grilă, titlul funcțiilor, xlabel, ylabel, gtext, legend, xlim, ylim ..................... ........ ................................................ .. ........129 5.3. Grafice bidimensionale: diagramă de funcții, loglog, semilogx, semilogie, logspace, fplot.................................. .. ................................................ ........ .................130 5.4. Gestionarea proprietăților graficului.................................................. ............................. ...................135 5.5. Grafice bidimensionale speciale: funcții tulpină, scări, polar, busolă, bară, plăcintă, hist ................... .................................................. ...... ........................139 5.6. Grafică 3D............................................................. ......................................145 5.7. Formarea unei ochiuri pe planul XOY: funcția meshgrid.......................145 5.8. Grafică tridimensională: funcții plot3, mesh, meshc, meshz, surf, surfl, surfc, contour3............................. ...................................................... ............ ...............146 5.9. Gestionarea proprietăților graficelor tridimensionale: funcția colormap; shading interp, comenzi pentru bara de culori ............................................. ....... ...............................150 CAPITOLUL 6. METODE NUMERICE DE REZOLVARE A PROBLEMELOR TIPICE.. .......... ...............153 6.1. Operații cu polinoame.............................................................. ............................. ................................. .153 6.2. Rădăcinile ecuației: funcția fzero ................................................ ......... .................................159

Pagina 4

Cuprins V 6.3. Aproximare și interpolare.............................................................. ..............................................161 6.4. Minimizarea funcţiilor: funcţiile fminbnd, fminsearch ..................................169 6.5. Integrare numerică: funcții trapz, cumtrapz, quad, quad1, dblquad ..................................... .................................................. ...... ...................172 6.6. Integrarea numerică a ecuațiilor diferențiale obișnuite.................................................. ........................ ................................ ............................. ..................174 CAPITOLUL 7. MODUL DE PROGRAMARE................................................. .......... .........................187 7.1. Programe utilizator - M-files.................................................. ....... .............188 7.2. Structura fișierelor de funcții: funcțiile nargin, nargout; tipul comenzilor, global; declarație de returnare................................................. ...........................................188 7.3. Structura fișierelor script: comenzi echo on, echo off..................................................192 7.4. Dezvoltarea de programe în MATLAB............................................. ....... ...................194 7.5. Lucrul cu fișierele M.................................................. ...... .................................................208 PARTEA II. SIMULARE DSP FOLOSIND SOFTWARE-UL MATLAB............................................ ........ .................................................217 CAP 8. SEMNALE DISCRETE.... .......................................... ............................. ...................219 8.1. Reprezentarea secvențelor.................................................. .... ..........220 8.2. Secvențe aleatorii: funcțiile rand, randn, xcorr, xcov...........244 CAPITOLUL 9. SISTEME DISCRETE LINEARE...................... ...............................257 9.1. Modelarea sistemelor discrete liniare în domeniul timp....257 9.2. Modelarea sistemelor discrete liniare în domeniul z..................................................285 9.3. Modelarea sistemelor discrete liniare în domeniul frecvenței........302 CAPITOLUL 10. STRUCTURILE SISTEMELOR DISCRETE LINEARE...................... .. ..313 10.1. Tipuri de structuri ale sistemelor FIR și IIR ............................................... .......... .313 10.2. Descrierea structurilor sistemelor FIR și IIR sub formă de obiecte dfilt................318 10.3. Funcții MATLAB pentru obiecte dfilt ................................................ ....... ..........325 10.4. Aranjarea legăturilor și scalarea în obiecte dfilt: sos, funcții de scalare. .................................................. ...................................................... ...332 CAPITOLUL 11 TRANSFORMĂ DISCRETA FOURIER............................................ ........................339 11.1 . Calcul DFT: funcții fft, ifft, fftshift; funcții externe fft_e1, fft_e2 ............................................. ....... ................................................. ............. .................................342

Pagina 5

VI Cuprins 11.2. Calculul convoluției folosind DFT: funcția fftfilf; funcția externă iir_iir ............................................... .... ................................................. .......... .......356 11.3. Calcularea convoluției cu partiționare: funcția fftfilt .......................363 CAPITOLUL 12. PROCESAREA SEMNALULUI ALEATORIE PRIN SISTEME DISCRETE LINEARE......... .................................................. ...... .......................367 12.1. Formarea semnalelor aleatoare cu o lege dată de distribuție a probabilității........................................... ............ .................................367 12.2 . Formarea semnalelor aleatoare cu o funcție de corelație dată.................................................. .......................................................... ............. ..................370 12.3. Metode neparametrice de analiză spectrală: wvtool, funcții psd ........................................ ..................... ................................ ........................... ....371 12.4. Predicție liniară: funcția lpc ............................................. ....... ............381 12.5. Metode parametrice de analiză spectrală: funcțiile pcov, arcov, pmcov, armcov, pburg, arburg, pyulear, aryule .....................387 CAPITOLUL 13. SINTEZA BRIDULUI FILTRE................................................................... ........... ...............391 13.1. Filtre digitale.............................................................. ......... .................................391 13.2. Proprietățile filtrelor FIR.................................................. ......................................393 13.3. Specificarea cerințelor pentru caracteristicile de frecvență ale filtrelor FIR......395 13.4. Sinteza filtrelor FIR folosind metoda ferestrei: funcțiile fir1, kaiserord; funcții externe check_low, check_high, check_pass, check_stop, plot_fir......400 13.5. Sinteza filtrelor FIR folosind cea mai bună metodă de aproximare uniformă (Chebyshev): funcțiile firpm, firpmord, firgr; funcție externă MAG_fir................................................... .... ....................................417 13.6. Convertor digital Hilbert.................................................. ..... .......442 13.7. Diferențiator digital............................................................. ... ........................449 13.8. Următoarea structură a filtrului FIR: descrierea ca obiect dfilt.............................. ............................................................. ................... ...................453 13.9. Analizarea caracteristicilor filtrului digital: Funcția fvtool......456 CAPITOLUL 14. SINTEZA FILTRELOR IIR............................................. ...... .......................457 14.1. Proprietățile filtrelor IIR.................................................. ................................................... .457 14.2. Specificarea cerințelor pentru caracteristicile de frecvență ale filtrelor IIR și procedura de sinteză............................... ............................................................... ..................... ......458 14.3. Sinteza filtrelor analogice: funcții butter, cheby1, cheby2, ellip, buttord, cheb1ord, cheb2ord, ellipord, freqs......................... ............................460 14.4. Sinteza filtrelor IIR folosind metoda invarianței răspunsului la impuls: funcții impinvar, impuls.................................... .............................................463

Pagina 6

Cuprins VII 14.5. Sinteza filtrelor IIR folosind metoda Z-transform biliniară: funcții bilinear, butter, cheby1, cheby2, ellip, buttord, cheb1ord, cheb2ord, ellipord.................... .. ................................................ ........ ........................469 14.6. Structura filtrului IIR: descriere sub forma unui obiect dfilt..................................480 14.7 . Descrierea cerințelor pentru răspunsul în frecvență al filtrelor FIR și IIR sub formă de obiecte fdesign ................................ .... ................................................. .......... ...............481 14.8. Sinteza filtrelor FIR și IIR sub formă de obiecte dfilt bazate pe obiecte fdesign .................................. .. ................................................ ........ .................486 CAPITOLUL 15. FILTRAREA DIGITALĂ ADAPTIVĂ............... ................. ...................493 15.1. Aplicarea principiilor de adaptare în sistemele DSP...................................493 15.2. Algoritm LMS adaptiv: funcții lms și nlms pentru obiectele adaptfilt.............................. ............................................................. ................... .................................499 15.3. Algoritm RLS adaptiv: funcția rls pentru obiectul adaptfilt ..................504 CAPITOLUL 16. CUANTIZAREA ÎN SISTEME DSP CU PUNCT FIX...513 16.1. Efecte de cuantizare în structura unui filtru digital...................................515 16.2. Modelarea structurii unui filtru digital cu punct fix ............................................... ............ ................................................ ............................. .................542 16.3. Analiza caracteristicilor filtrelor FIR și IIR cu FT..................................................566 16.4. Simularea cuantizării în ADC............................................. ....... ............581 16.5. Calcularea răspunsului filtrelor FIR și IIR cu FT: funcția de filtru ......... 601 CAPITOLUL 17. SISTEME DSP MULTI-VITEZĂ............... ... ........................618 17.1. Sisteme de interpolare cu o singură lovitură............................................. ...................... ..........619 17.2. Simularea unei singure interpolări în MATLAB: funcții interp, upfirdn ....................................... ............................................................. ................... 624 17.3. Sisteme de decimare de unică folosință............................................. .................... ...............629 17.4. Simularea unei singure decimare în MATLAB: funcții decimate, upfirdn ....................................... ............................................................. ...635 17.5. Sisteme de reeșantionare cu o singură injecție........ ...................................638 17.6. Simularea reeșantionării unice în MATLAB: funcții reeșantionare, upfirdn.............................................. ............ ................................................ ..639 17.7. Descrierea structurii polifazate a sistemelor de interpolare și decimare sub formă de obiecte mfilt............................... ................ ................................642 CAP 18. PRELUCRAREA SEMNALULUI WAVELET......... ................................... ....651 18.1. Concepte de bază ale analizei wavelet.............................................. ....... ...............652 18.2. Wavelets în MATLAB: funcții wavemngr, waveinfo, wavefun, centfrq ...................................... ............................................................. ................................................... 655

Pagina 7

VIII Cuprins 18.3. Transformată wavelet continuă: funcția cwt .................................667 18.4. Filtre de scalare: funcții dbwavf, symwavf, coifwavf, biorwavf, rbiowavf.................................. . ................................................. ....... ............671 18.5. Filtre de descompunere și recuperare: funcții orthfilt, wfilters, qmf, dwt, iwdt................................... .................................................. ...... ...................672 18.6. Analiza wavelet pe mai multe niveluri: funcțiile wavedec, waverec, appcoef, detcoef, swt, iswt ......................... ......... ............................................... ... .680 18.7. Pachete Wavelet: funcţiile wpdec, wpcoef, wprec, goropy, besttree ........684 CAPITOLUL 19. INTERACŢIUNEA CU SURSE DE SEMNALE EXTERNE........690 19.1. Formate de date compatibile cu instrumentele de analiză a semnalului din MATLAB.............................................. .......................................................... ................. ...................690 19.2. Utilizarea semnalelor gata făcute: funcția wnoise ................................692 19.3. Importul fișierelor externe: funcția wavread.................................................. ........ ..697 19.4. Redare sunet: funcții sunet, soundsc, wavplay..............................700 19.5. Record fișiere de sunet: funcții wavrecord, wavwrite...................................702 PARTEA III. MODELARE DSP FOLOSIND GUI ............................................. .705 CAPITOLUL 20. PROIECTAREA FILTRELOR DIGITALE FOLOSIND GUI FDATOOL... .................................... ............................. ................................. .......................... ....707 20.1. Sinteza filtrelor digitale.................................................. ..................... ................................ ..708 20.2. Parametrii de intrare ai filtrelor digitale............................................. ...................... ....710 20.3. Exemple de sinteză a filtrelor digitale............................................. ....................... .........715 20.4. Selectarea unei structuri de filtru digital............................................. ............. ..........721 20.5. Analiza filtrelor digitale.................................................. ..................... ........................722 20.6. Sinteza convertoarelor digitale Hilbert............................................. ....724 20.7. Sinteza diferențiatorilor digitali.................................................. ...... .........726 20.8. Salvarea filtrelor digitale pe durata unei sesiuni în GUI FDATool.........728 20.9. Exportarea filtrelor digitale ca obiecte dfilt ............................................ ............729 10.20. Importarea filtrelor digitale ca obiecte dfilt ................................................ .....732 20.11. Modelarea structurii filtrelor digitale cu virgulă fixă.................................................. .......................................................... .....733 CAPITOLUL 21. FILTRAREA MODELAREA DIGITALĂ UTILIZAREA GUI SPTOOL ................................... ................ ................................. ....................... ...............742 21.1. Sinteza filtrelor digitale.................................................. ..................... ................................ ..743 21.2. Parametrii de intrare ai filtrelor digitale............................................. ...................... ....747

Pagina 8

Cuprins IX 21.3. Exemple de sinteză a filtrelor digitale............................................. ....................... .........750 21.4. Analiza filtrelor digitale.................................................. ..................... ........................755 21.5. Importul unui semnal de intrare.................................................. ..................... ................................ ..756 21.6. Simularea filtrării digitale.............................................................. ..................... .......760 21.7. Analiza semnalului în domeniul timpului............................................. ..................... .......761 21.8. Analiza semnalului în domeniul frecvenței.................................................. ....................... ..........763 21.9. Exportarea datelor din GUI SPTool ............................................. ....... .................766 21.10. Ieșirea din GUI SPTool.............................................. ..... ...................................772 CAPITOLUL 22. MODELAREA TRANSFORMAȚILOR WAVELET FOLOSIND WAVELET PACHET GUI TOOLBOX.. ................................................ ........... 773 22.1. Vizualizarea Wavelets................................................... ....................................774 22.2. Analiza wavelet discretă unidimensională.................................................. ........ .....775 22.3. Analiza wavelet de pachete unidimensionale.................................................. ..................... .........782 22.4. Analiza wavelet continuă unidimensională reală și complexă.................................................. .......................................................... ............................. ..........785 22.5. Eliminarea zgomotului dintr-un semnal unidimensional aleator staționar.....787 22.6. Estimarea densității de distribuție.................................................. ........... ................789 22.7. Estimarea regresiei.................................................. .................................................. ......791 22.8. Selectarea coeficienților wavelet................................................... ...... .................793 REFERINȚE...................... .............................................................. .................... ..................795 INDEX.......... .......................... ................................ ............................. .........798

Pagina 9

Prefață Tendințele moderne în domeniul telecomunicațiilor sunt în mare măsură asociate cu dezvoltarea echipamentelor digitale și produs software, iar acest lucru schimbă radical natura muncii inginerilor și oamenilor de știință - este din ce în ce mai redusă la modelarea computerizată. O caracteristică a dispozitivelor de procesare a semnalului digital (DSP) este că părțile software ale acestor dispozitive sunt create direct în procesul de modelare pe computer, astfel încât stăpânirea tehnologiilor sale moderne vine în prim-plan. Astfel de tehnologii, desigur, includ mediul software (sistem) MATLAB, creat de The Math Works, Inc. și destinat modelării computerizate în diverse domenii ale științei și tehnologiei. În ultimii ani, disciplina „Procesarea semnalului digital” și modificările acesteia au fost incluse în standardele educaționale generale ale universităților rusești. Este remarcabil că cărțile interne și traduse despre teoria DSP, aplicațiile sale și implementarea algoritmilor DSP sunt publicate din ce în ce mai mult - „procesul a început”. Adesea, secțiunile teoretice sunt susținute de exemple de calcul în MATLAB. Au început să apară cărți de natură aplicativă, care nu sunt fragmentare, ci sunt în întregime dedicate modelării în MATLAB, de exemplu, cartea lui R. Gonzalez și colab. „Procesarea digitală a imaginii în MATLAB”, editura „Technosphere”, 2006. Cu toate acestea, astăzi există o cerere pentru modelarea DSP în literatură în MATLAB, care depășește cu mult propunerea. Acesta este un subiect foarte larg, iar cartea propusă abordează metodele și algoritmii de bază DSP, ale căror baze teoretice sunt subliniate în multe surse, inclusiv manual de aceiași autori, „Fundamentals of Digital Signal Processing”, editura „BHV-Petersburg”, 2005. (În viitorul apropiat, a treia re-lansare este în lucru.) Să spunem imediat că MATLAB este un sistem imens, și chiar și în această zonă limitată, autorii nu pretind în niciun caz că oferă o descriere exhaustivă a capabilităților MATLAB. Nuanțele, subtilitățile și detaliile, precum și varietatea instrumentelor oferite pentru rezolvarea problemelor, pot fi înțelese doar în practică, folosind puternicul sistem de ajutor MATLAB. Metodologia de predare a modelării pe calculator este deosebită. De fapt, se rezumă la autoeducație - extinderea independentă a cunoștințelor după dobândire

Pagina 10

2 Prefață la abilitățile inițiale, stăpânirea tehnicilor standard și determinarea vectorului de căutare în vastul sistem MATLAB, pe care autorii au încercat să îl sistematizeze și să îl descrie în aplicarea modelării DSP în MATLAB. Cartea include multe exemple - cu ajutorul lor, „fără prea mult timp”, puteți stăpâni rapid tehnologia de modelare. Pentru a face mai ușor pentru utilizatorii începători și natura autonomă a cărții, este inclusă prima parte, care acoperă elementele de bază ale lucrului în MATLAB. Această carte poate fi utilă tuturor inginerilor și lucrătorilor tehnici cu interes în domeniul DSP, dar se adresează în primul rând studenților, studenților absolvenți și cadrelor didactice universitare și poate fi recomandată, în special, pentru următoarele discipline obligatorii:  Microprocesoare și procesare digitală a semnalului (specialitatea 210405);  Procesare digitală de semnal și procesoare de semnal în sisteme de comunicații mobile (specialitatea 210402);  Prelucrarea digitală a semnalelor audio și video (specialitatea 210312). Se presupune că cititorii sunt familiarizați cu elementele de bază ale teoriei și programării DSP în orice limbă nivel inalt. Cartea oferă doar scurte informații teoretice despre secțiunile relevante ale DSP. Conținutul cărții include 22 de capitole, care sunt împărțite tematic în trei părți: 1. Introducere în MATLAB. 2. Modelarea DSP folosind software-ul MATLAB. 3. Modelare DSP folosind GUI. Autorii de părți și capitole:  A. I. Solonina - partea I; în partea a II-a capitolele 8-11, 13, 14, 16, 17; în partea a III-a, capitolele 20, 21.  S. M. Arbuzov - în partea a II-a, capitolele 12, 15, 18, 19; în partea a III-a - capitolul 22. Alla Ivanovna Solonina, prof. dr., și Serghei Mihailovici Arbuzov, profesor asociat, dr., predau la Departamentul de procesare digitală a semnalului al Universității de Stat de Telecomunicații din Sankt Petersburg. prof. M.A. Bonch-Bruevich, condus de prof. Artur Abramovici, doctor în științe tehnice. Lanne, Vă rugăm să trimiteți prin e-mail toate sugestiile și comentariile care vor fi acceptate de autori cu recunoștință editurii „BHV-Petersburg”: [email protected].

Generarea semnalelor în Simulink are în mod natural propriile sale caracteristici. Să ne uităm la ele.

Să luăm două blocuri din biblioteca de blocuri Simulink: Undă sinusoidală(din sectiunea Surse) Și Domeniul de aplicare(din sectiunea Chiuvete). Conectându-le, obținem un circuit simplu (Fig. 4).

Fig.4. Circuit pentru generarea și afișarea unui semnal sinusoidal

Apoi, făcând dublu clic pe blocul osciloscop (osciloscop), activăm o fereastră care simulează ecranul osciloscopului și lansăm modelul (buton Începeți simularea). Ca rezultat, obținem o imagine a unui segment sinusoid (Fig. 5).

Fig.5. Afișarea unui segment de undă sinusoidală pe ecranul osciloscopului

După cum puteți vedea, generarea unui semnal armonic în mediul Simulink este chiar mai ușoară decât în ​​mediul MATLAB. Cu toate acestea, această primă impresie este foarte înșelătoare. Într-adevăr, este de asemenea important să poți controla parametrii semnalului armonic. Faptul că amplitudinea semnalului armonic sa dovedit a fi egală cu unitatea este pur și simplu „norocos” pentru noi. Într-adevăr, implicit amplitudinea semnalului generat este setată la unitate. Cu toate acestea, nu controlăm încă frecvența, faza inițială și durata semnalului.

Faceți dublu clic pe bloc Undă sinusoidală– ca urmare, va apărea fereastra de setări a parametrilor (Fig. 6). Făcând clic pe butonul Ajutor, primim instrucțiuni pentru acest bloc, a căror esență se rezumă la faptul că o operație este efectuată în acest bloc

Din formula de mai sus și din inscripțiile din Fig. 6, devine clar sensul a patru variabile: amplitudine, frecvență unghiulară, faza inițială și componentă constantă. Sensul variabilei „timp” rămâne criptat deocamdată.

oprindu-se acolo problema importanta, să remarcăm diferența dintre conceptele de „timp” și „timp model”. Astfel, generarea unui segment de semnal cu o durată de 1 s (timp model) poate dura semnificativ mai mult decât o perioadă mai scurtă de timp, de exemplu, 0,1 s ( în timp real). Viteza de generare depinde de cantitatea de calcule, viteza computerului și „rezolvatorul” ales, adică. algoritm de modelare etc. Apropo, efectul opus este destul de posibil - pentru un algoritm complex, procedura de modelare a unui segment de semnal cu o durată de 0,1 s poate dura câteva secunde.

Semnalul poate fi generat în două tipuri: continuu bazat pe timp si discret bazat pe mostre. În consecință, pentru a simula munca sisteme continue Se recomandă utilizarea tipului continuu bazat pe timp, și pentru modelarea funcționării sistemelor discrete - tip discret bazat pe mostre.

Dacă tipul este setat bazat pe timp, apoi parametrul Timp de probă poate lua valori:

– 0 (implicit) – unitatea funcționează în regim continuu;

– > 0 – blocul funcţionează în modul discret;

– -1 – blocul moștenește același mod ca și blocul de primire.

După cum se precizează în Ajutor, funcționarea în modul continuu poate duce la erori mari de generare pe perioade mari de timp de model.

Fig.6. Blocați fereastra de setări a parametrilor Undă sinusoidală

Funcționarea în modul discret face ca blocul să se comporte ca și cum un bloc ar fi conectat la ieșirea unui oscilator continuu Reținere la comandă zero(din secțiunea Discrete). Într-adevăr, prin asamblarea a două circuite (Fig. 7) și setarea valorii parametrului în ambele cazuri Timp de probă egal cu 0,5 (fereastră de setări bloc Reținere la comandă zero prezentată în Fig. 8), obținem rezultate identice (Fig. 9).

Fig.7. Inserarea unei undă sinusoidală într-un circuit care generează și afișează o undă sinusoidală

bloc Reținere la comandă zero

Fig.8. Blocați fereastra de setări Reținere la comandă zero

Fig.9. Identitatea rezultatului circuitelor prezentate în Fig. 7

Deci blocul Reținere la comandă zero poate fi interpretat ca un „sampler”, adică partea convertorului analog-digital (ADC) responsabilă cu eșantionarea semnalului. Uneori un bloc Reținere la comandă zero numit ADC. În opinia noastră, acest lucru nu este corect, deoarece semnalul eșantionat într-un ADC „autentic” este, de asemenea, supus cuantizării de nivel. În bloc Reținere la comandă zero, cu toate acestea, nu se efectuează nicio cuantizare.

Câteva note despre metodele de reprezentare grafică. Dincolo de bloc Domeniul de aplicare, graficul poate fi construit și folosind blocul Graficul X-Y, până la intrarea superioară X pe care trebuie să trimiteți o secvență de momente în timp folosind un bloc Ceas(ceas) și la intrarea inferioară Y– valorile semnalului generat (Fig. 10).

Fig. 10. Aplicație pentru plotarea blocurilor Graficul X-Y

Ca rezultat, preconfigurat (în fereastra de setări corespunzătoare, sunt setate valorile limită ale argumentului și funcției, iar valoarea parametrului este, de asemenea, indicată Timp de probă) plotterul va produce graficul prezentat în Fig. 11 dacă pentru bloc Graficul X-Y dat Timp de probă=-1(adică perioada de eșantionare este moștenită).

Fig. 11. Afișarea unei undă sinusoidală ca bloc Graficul X-Y

Graficul va fi ușor diferit (Fig. 12) dacă este pentru bloc Graficul X-Y dat Timp de probă=0,5.

Fig. 12. Afișarea unei undă sinusoidală ca bloc Graficul X-Y, timpul de probă=0,5

Un alt mod de a construi grafice. Cu ajutorul blocului pot fi utilizate matrice de mostre de momente de timp și valorile semnalului corespunzătoare La spațiul de lucru export din mediul Simulink în mediul MATLAB (Fig. 13).

Fig. 13. Aplicarea unui bloc La spațiul de lucru

În acest caz, după cum arată practica, cel mai bine este să setați formatul matrice pentru datele exportate (Fig. 14).

Fig. 14. Setarea formatului matrice pentru bloc La spațiul de lucru

Trasarea ulterioară în mediul MATLAB folosind comanda plot(x,y) nu este dificilă (Fig. 15).

Fig. 15. Date de trasare exportate

folosind un bloc La spațiul de lucru

Să rezumăm rezultatele obținute.

Tipul semnalului bazat pe timp atunci când unitatea de generare funcționează în modul de timp continuu, are forma unei funcții netede a timpului, iar în modul de timp discret, are forma unui semnal pas, cum ar fi dacă blocul a fost conectat la ieșirea semnalului uniform. generator Reținere la comandă zero, care este un prelevator de eșantionare de tip stocare a probelor.

Cu alte cuvinte, prin setarea modului de timp discret, evităm necesitatea folosirii blocului Reținere la comandă zero.

Acum să generăm Simulink un segment al unui semnal armonic discret cu aceiași parametri care au fost specificați în MATLAB: amplitudine 1, frecvență 100 Hz, frecvență de eșantionare 1000 Hz, faza inițială π/2, număr de eșantioane 20.

Reasamblam circuitul de la un generator și un osciloscop. În fereastra măștii setărilor generatorului, specificăm valorile numerice necesare ale parametrilor, setăm tipul bazat pe timpși atribuiți o valoare Timp de probă= 0,001 (Fig. 16).

Fig. 16. Fereastra de setări generator

După pornirea modelului, obținem pe ecranul osciloscopului o imagine complet diferită de cea pe care ne-am așteptat (Fig. 17).

Fig. 17. Rezultatul osciloscopului

Motivul este simplu - trebuie totuși să configurați parametrii de modelare: setați începutul și sfârșitul timpului modelului (în cazul nostru, acestea sunt 0, respectiv 0,02 s) și, de asemenea, selectați algoritmul de modelare (tipul „rezolvator” ). Figura 18 prezintă fereastra de setări a parametrilor de simulare, care este activată la selectarea unui element de meniu Simulare/Parametri de simulare. Adesea, acești parametri sunt configurați automat, dar cunoașterea lor este necesară pentru a izola părțile individuale ale funcției.

Fig. 18. Fereastra de setări a parametrilor de modelare

În plus, să configuram parametrii osciloscopului făcând clic pe butonul Parametrii pe geam Domeniul de aplicare(Fig. 19 a, b).

Fig. 19. Configurarea parametrilor osciloscopului:

a) configurarea filei General; b) configurarea filei Istoricul datelor

După pornirea modelului, pe ecranul osciloscopului va apărea o imagine (Fig. 20).

Fig.20. Rezultatul osciloscopului după ce au fost făcute setările

Deoarece parametrii osciloscopului au fost setați astfel încât să fie afișată o matrice bidimensională în spațiul de lucru ScopeData valorile de argument și funcție, folosind comenzi

>> y1=ScopeData(:,1);

>> y2=ScopeData(:,2);

>> grafic (y1,y2)

puteți reprezenta grafic funcția generată folosind MATLAB (Fig. 21).

Fig.21. Graficul funcției generate folosind MATLAB

Comparând Fig. 21 și Fig. 2, observăm o singură diferență - la modelarea în Simulink au fost generate 21 de puncte, în timp ce în MATLAB au fost generate 20 de puncte. Motivul diferenței este simplu: peste intervalul de timp al modelului la rata de eșantionare F s situat TF s +1 momentele de timp pentru care va fi generat semnalul. Evident, această împrejurare poate fi luată în considerare cu ușurință, realizându-se coincidența completă a rezultatelor simulării în mediile MATLAB și Simulink.

Observații finale privind 1.1.

Eșantionarea semnalelor analogice este primul pas către rezolvarea problemei interfeței dispozitivelor și sistemelor analogice cu cele discrete.

Modelarea semnalelor discrete se poate face fie în MATLAB, fie în Simulink. Pot fi partajarea aceste medii, ceea ce crește flexibilitatea setului de instrumente.

Există trei moduri de a genera semnale în MATLAB:

    în modul dialog (secvența de comenzi în fereastra de comandă);

    în modul automat, prin crearea și rularea unui m-script;

    în modul automat, prin crearea și apelarea unei funcții m.

Modelarea semnalelor în Simulink este convenabilă datorită clarității sale, dar necesită abilități familiare în setarea parametrilor blocurilor din care este construit modelul.

O caracteristică importantă a simulării în Simulink este diferența evidentă dintre conceptele de „timp real” și „timp model”. Timpul real este timpul necesar pentru efectuarea calculelor (simularilor). Timpul modelului este durata procesului simulat.

Timpul modelului poate fi continuu ( bazat pe timp) și discret ( bazat pe mostre). Se recomandă utilizarea timpului continuu la modelarea sistemelor continue (analogice), timp discret - discret (digital). Monitorizarea rezultatelor simulării în Simulink se poate face atât prin trasarea graficelor, cât și prin imprimarea valorilor tablourilor numerice.

Este mai convenabil să construiți grafice în mediul Simulink. Este mai convenabil să analizați datele numerice exportându-le în spațiul de lucru MATLAB.

Procesarea digitală a semnalului și MATLAB, Solonina A.I., Klionsky D.M., Merkucheva T.V., Perov S.N., 2013.

Sunt descrise metode și algoritmi de bază pentru procesarea semnalului digital și mijloace pentru modelarea lor computerizată în MATLAB. Bazele algoritmice limbajul MATLAB. Sunt luate în considerare semnalele discrete, sistemele discrete liniare, transformarea Fourier discretă utilizând algoritmi FFT, sinteza și analiza filtrelor FIR și IIR, inclusiv punctul fix, analiza spectrală a semnalelor, procesarea semnalului multi-rate și filtrarea digitală adaptivă. Tehnologia de instruire în procesul de modelare pe computer bazată pe programele create de autori sau pe interfața grafică cu utilizatorul MATLAB extinde cunoștințele teoretice și vă permite să înțelegeți multe probleme și aspecte importante ale aplicării practice a metodelor și algoritmilor DSP. CD-ul inclus conține programe de instruire și tabele de date sursă.
Pentru studenți, absolvenți și profesori universitari, precum și specialiști în domeniul prelucrării digitale a semnalului

2.4. Misiunea de muncă independentă
Se recomandă o sarcină independentă pentru a consolida cunoștințele dobândite și include următoarele puncte:
1C. Operatii cu matrici.
Dați un exemplu de expresie aritmetică în care toate variabilele și rezultatul calculului sunt matrici.
Calculați caracteristicile și normele statistice ale matricei rezultate.
2C. Inversarea, transpunerea și conjugarea hermitiană a unei matrice.
Efectuați pentru o matrice Toeplitz de ordinul 5.
ZS. Soluția SLAU:

Cuprins
Prefaţă.,
PARTEA 1 INTRODUCERE ÎN MATLAB.
Capitolul I. Introducere în MATLAB. Obiecte și vârfuri principale MATLAB.
1.1. Scurt context teoretic.
1.1.1. Mod de calcul direct.
1.1.2. Obiecte de bază ale limbajului MATLAB.
1.1.3. Spațiu de lucru memorie spațiu de lucru.
1.1.4. Salvarea datelor pe disc.
1.2. Conținutul lucrărilor de laborator.
1.3. Sarcina de laborator.
1.4. Misiunea de muncă independentă.
1.5. Întrebări de raportare și control.
1.6. Literatură.
Capitolul 2. Operatii cu matrici.
2.1. Scurt context teoretic.
2.1.1. Funcții pentru generarea matricelor standard.
2.1.2. Transformarea matricei.
2.1.3. Operații pe elemente cu matrici.
2.1.4. Operații cu matrici în probleme de algebră liniară.
2.1.4.1. Operatii aritmetice cu matrici.
2.1.4.2. Transpunerea și conjugarea hermitiană a matricelor.
2.1.4.3. Inversarea matricei.
2.1.4.4. Diviziunea matricei.
2.1.5. Norma de matrice și vector.
2.1.6. Operatii cu matrici in probleme de statistica matematica.
2.2. Conținutul lucrărilor de laborator.
2.3.Recapitulare - pentru lucru de laborator*.
2.4. Misiunea de muncă independentă.
2.5. Întrebări de raportare și control.
2.6. Literatură.
Capitolul 3. Tipuri de matrice.
3.1. Scurt context teoretic.
3.1.1. Matrici de tipuri numerice și logice.
3.1.2. Matrici de tip simbolic.
3.1.3. Structuri (matrice de înregistrări).
3.1.4. Matrice de celule.
3.1.5. Definirea tipului de matrice.
3.2. Conținutul lucrărilor de laborator.
3.3. Sarcina - pentru lucru de laborator*.
3.4. Misiunea de lucru independentă*.
3.5. Întrebări de raportare și control.
3.6. Literatură.
Capitolul 4. Instrumente grafice.
4.1. Scurt context teoretic.
4.1.1. Grafice bidimensionale.
4.1.2. Gestionați proprietățile diagramelor 2D.
4.1.3. Grafică tridimensională.
4.1.4. Gestionați proprietățile graficelor 3D.
4.2. Conținutul lucrărilor de laborator.
4.3. plimbare la munca de laborator.
4.4. - Sarcina pentru munca independenta.
4.5. Întrebări de raportare și control.
4.6. Literatură.
Capitolul 5. Modul de programare: fișiere script și fișiere funcții.
5.1. Scurt context teoretic.
5.1.1. Fișiere script.
5.1.2. Fișiere de funcție.
5.1.3. Proiectarea și producția de listare a fișierelor M.
5.1.4. Intrare/ieșire date.
5.1.5. Pauză și încetare anticipată a programului.
5.1.6. Crearea și stocarea fișierelor M.
5.2. Conținutul lucrărilor de laborator.
5.3. plimbare la munca de laborator.
5.4. - Sarcina pentru munca independenta.
5.5. Întrebări de raportare și control.
5.6. Literatură.
Capitolul 6. Modul de programare: organizarea ramurilor și buclelor.
6.1. Scurt context teoretic.
6.1.1. Operatori de ramificație.
6.1.2. Operatori pentru organizarea buclelor.
6.2. Conținutul lucrărilor de laborator.
6.3. plimbare la munca de laborator.
6.4. - Sarcina pentru munca independenta.
6.5. Întrebări de raportare și control.
6.6. Literatură.
PARTEA II. SIMULAREA PRELUCRĂRII SEMNALULUI DIGITAL BMATLAB.
Capitolul 7. Semnale discrete.
7.1. Scurt context teoretic.
7.1.1. Semnale discrete deterministe.
7.1.2. Semnale discrete aleatorii.
7.2. Conținutul lucrărilor de laborator.
7.3. plimbare la munca de laborator.
7.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
7.5. Misiunea de muncă independentă.
7.6. Întrebări de raportare și control.
7.7. Literatură.
Capitolul 8. Semnale discrete liniare.
8.1. Scurt context teoretic.
8.1.1. Descrierea LDS în domeniul timpului.
8.1.2. Descrierea LDS în regiunea z.
8.1.3. Descrierea LDS în domeniul frecvenței.
8.1.4. Structuri de legături de ordinul 2.
8.2. Conținutul lucrărilor de laborator.
8.3. Temă de laborator*.
8.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
8.4.1. Funcții externe utilizate.
8.5. leagăn pentru muncă independentă*.
8.6. Întrebări de raportare și control.
8.7. Literatură.
Capitolul 9. Transformată Fourier discretă (partea 1).
9.1. Scurt context teoretic.
9.1.1. Transformată Fourier discretă.
9.1.2. Izolarea armonicilor discrete ale semnalului util.
9.1.3. Restaurarea densității spectrale.
9.1.4. Restabilirea semnalului analogic.
9.2. Conținutul lucrărilor de laborator.
9.3. Temă de laborator*.
9.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
9.4.1. Funcții externe utilizate.
9.5. leagăn pentru muncă independentă.
9.6. Întrebări de raportare și control.
9.7. Literatură.
Capitolul 10. Transformată Fourier discretă (partea 2).
10.1. Scurt context teoretic.
10.1.1. Răspândirea spectrului.
10.1.2. Discriminare îmbunătățită între armonici discrete la frecvențe apropiate.
10.1.3. Calculați convoluții liniare și circulare folosind DFT.
10.1.4. Calcularea convoluțiilor partiționate folosind LPF.
10.2. Conținutul lucrărilor de laborator.
10.3. Sarcina de laborator.
10.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
10.4.1. Funcții externe utilizate.
10.5. Misiunea de muncă independentă.
10.6. Întrebări de raportare și control.
10.7. Literatură.
Capitolul 11 ​​Sintonizarea filtrelor FIR folosind metoda ferestrelor.
11.1. Scurt context teoretic.
11.1.1. Proprietățile filtrelor FIR.
11.1.2. Specificarea cerințelor pentru LCH.
11.1.3. Structuri de filtrare FIR.
11.1.4. Procedura de sintetizare a filtrelor FIR folosind metoda ferestrei.
11.1.5. Sinteza filtrelor FIR folosind metoda ferestrei în MLT1-LV.
11.2. Conținutul lucrărilor de laborator.
11.3. Sarcina de laborator.
11.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
11.4.1. Sinteza și analiza filtrului trece-jos FIR.
11.4.2. Sinteza și analiza filtrului trece-înalt FIR.
11.4.3. Sinteza si analiza filtrului PF FIR.
11.4.4. Sinteza si analiza filtrului RF FIR.
11.4.5. Funcții externe utilizate.
11.5. Misiunea de muncă independentă.
11.6. Întrebări de raportare și control.
11.7. Literatură.
Capitolul 12. Sinteza filtrelor FIR folosind cea mai bună metodă de aproximare uniformă (Chebyshev).
12.1. Scurt context teoretic.
12.1.1. Procedura de sintetizare a filtrelor FIR folosind metoda de aproximare Chebyshev.
12.1.2. Sinteza filtrelor FIR folosind metoda de aproximare Chebyshev în MATLAB.
12.1.3. Descrierea cerințelor pentru caracteristica de atenuare sub forma unui obiect fdesign.
12.1.4. Sinteza filtrelor FIR sub formă de obiecte dfild bazate pe obiecte fdesign.
12.2. Conținutul lucrărilor de laborator.
12.3. Sarcina de laborator.
12.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
12.4.1. Sinteza si analiza filtrului FIR.
12.4.2. Sinteza și analiza filtrului trece-înalt FIR.
12.4.3. Sinteza si analiza filtrului PF FIR.
12.4.4. Sinteza si analiza filtrului RF FIR.
12.4.5. Funcții externe utilizate.
12.5. Misiunea de muncă independentă.
12.6. Întrebări de raportare și control.
12.7. Literatură.
Capitolul 13. Sinteza filtrelor IIR folosind metoda Z - transformare biliniară.
13.1. Scurt context teoretic.
13.1.1. Stabilirea cerințelor pentru caracteristica de atenuare.
13.1.2. Structuri de filtrare IIR.
13.1.3. Procedura de sinteză a filtrelor IIR folosind metoda Z-transformă biliniară.
13.1.4. Sinteza filtrelor analogice în MATGAV.
13.1.5. Sinteza filtrelor IIR folosind metoda Z-transform biliniară în MATLAB.
13.1.6. Sinteza filtrelor IIR sub formă de obiecte dfild bazate pe obiecte /design.
13.1.7. Plasarea și scalarea legăturilor în structuri de filtre IIR în cascadă.
13.2. Conținutul lucrărilor de laborator.
13.3. Sarcina de laborator.
13.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
13.4.1. Sinteza si analiza filtrului IIR FIC.
13.4.2. Sinteza și analiza filtrului trece-înalt IIR.
13.4.3. Sinteza si analiza filtrului IIR PF.
13.4.4. Sinteza și analiza filtrului IIR RF.
13.4.5. Funcții externe utilizate.
13.5. Misiunea de muncă independentă.
13.6. Întrebări de raportare și control.
13.7. Literatură.
Capitolul 14. Sinteza filtrelor digitale folosind GUI FDAT Tool și FilterBuilder.
14.1. Scurt context teoretic.
14.1.1. Sinteza filtrelor digitale în GUI FDATool.
14.1.2. Exportați din FDATool GUI în Workspace.
14.1.3. Sinteza filtrelor digitale în GUI FillerBuilder.
14.2. Conținutul lucrărilor de laborator.
14.3. Sarcina de laborator.
14.4. Misiunea de muncă independentă.
14.5. Întrebări de raportare și control.
14.6. Literatură.
Capitolul 15. Filtre digitale cu punct fix.
15.1. Scurt context teoretic.
15.1.1. Efecte de cuantizare în structura CF-urilor FT.
15.1.2. Modelarea structurii filtrului digital original în GUI FDATool.
15.1.3. Modelarea structurii filtrelor digitale cu FT în GUI FDATool.
15.1.3.1. Setarea proprietăților filtrelor digitale cu FT în fila Coeficienți.
15.1.3.2. Setarea proprietăților filtrelor digitale cu FT în fila Inpul/Outpul.
15.1.3.3. Setarea proprietăților filtrelor digitale cu FT în fila Filler Internals.
15.1.4. Modelarea structurii filtrelor digitale cu GUI FT FilterBuilder.
15.2. Conținutul lucrărilor de laborator.
15.3. Sarcina de laborator.
15.4. Misiunea de muncă independentă.
15.5. Întrebări de raportare și control.
15.6. Literatură.
Capitolul 16. Analiza spectrală: metode neparametrice.
16.1. Scurt context teoretic.
16.1.1. Metoda periodogramei.
16.1.2. Indicatori cheie ai calității estimărilor JMP.
16.1.3. Metoda parodogramei Daniell.
16.1.4. Metoda parodogramei lui Bartlett.
16.1.5. Metoda parodogramei lui Welch.
16.1.6. Metoda Blackman Tukey.
16.1.7. Modelarea unei secvențe aleatoare cu LCF-ul necesar.
16.1.8. Parametrii de bază ale ferestrei.
16.1.9. Spectrograma.
16.2. Conținutul lucrărilor de laborator.
16.3. Sarcina de laborator.
16.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
16.5. Misiunea de muncă independentă.
16.6. Întrebări de raportare și control.
16.7. Literatură.
Capitolul 17. Analiza spectrală: metode parametrice.
17.1. Scurt context teoretic.
17.1.1. Modele ARSS, AR și SS.
17.1.2. Metoda Yule-Walker (autocorelare) pentru estimarea parametrilor modelului AR.
17.1.3. Metode de estimare a parametrilor modelului AR.
17.1.4. Metode de evaluare a SPM.
17.1.5. Estimarea ordinii modelului AR.
17.1.6. Comparația estimărilor PSD cu PSD-ul adevărat.
17.2. Conținutul lucrărilor de laborator.
17.3. Sarcina de laborator.
17.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
17.5. Misiunea de muncă independentă.
17.6. Întrebări de raportare și control.
17.7. Literatură.
Capitolul 18. Analiza spectrală folosind GUI SPTool.
18.1. Scurt context teoretic.
18.1.1. Acces la GUI SPTool.
18.1.2. Semnale: grup de semnale.
18.1.3. Modelarea unui sistem digital de filtrare: Grupul de filtre.
18.1.4. Analiza spectrală: grupul de spectre.
18.1.5. Exportați date din GUI SPTool.
18.2. Conținutul lucrărilor de laborator.
18.3. Sarcina de laborator.
18.4. Misiunea de muncă independentă.
18.5. Întrebări de raportare și control.
18.6. Literatură.
Capitolul 19. Sisteme DSP multi-rate.
19.1. Scurt context teoretic.
19.1.1. Sistem unic de interpolare.
19.1.2. Sistem unic de decimare.
19.1.3. Sistem unic de reeșantionare.
19.1.4. Structuri polifazate ale sistemelor cu mai multe viteze.
19.2. Conținutul lucrărilor de laborator.
19.3. Sarcina de laborator.
19.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
19.5. Misiunea de muncă independentă.
19.6. Întrebări de raportare și control.
19.7. Literatură.
Capitolul 20. Modelarea structurilor polifazate ale sistemelor cu mai multe viteze folosind GUI FDATool și FilterBuilder.
20.1. Scurt context teoretic.
20.1.1. Modelarea structurilor polifazate în GUI FDATool.
20.1.2. Modelarea structurilor polifazate în GUI FilterBuilder.
20.1.3. Modelarea sistemelor cu mai multe viteze cu structuri polifazate.
20.2. Conținutul lucrărilor de laborator.
20.3. Sarcina de laborator.
20.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
20.4.1. Sistem de interpolare single-shot cu structură polifazată.
20.4.2. Sistem unic de decimare cu structură polifazată.
20.4.3. Sistem de reeșantionare unică cu structură polifazată
la creşterea frecvenţei de eşantionare.
20.4.4. Sistem de reeșantionare unică cu structură polifazată
la scăderea ratei de eşantionare.
20.5. Misiunea de muncă independentă.
20.6. Întrebări de raportare și control.
20.7. Literatură.
Capitolul 21. Filtre adaptive.
21.1. Scurt context teoretic.
21.1.1. filtru Wiener.
21.1.2. Algoritmul 1.MS.
21.1.3. Algoritmul RLS.
21.1.4. Aplicarea filtrelor adaptive.
21.1.4.1. Identificarea sistemului.
21.1.4.2. Estimarea răspunsului la impuls al unui sistem necunoscut.
21.1.4.3. Ștergerea semnalului de zgomot.
21.1.4.4. Egalizarea răspunsului în frecvență al unui sistem necunoscut.
21.2.4.5. Estimarea parametrilor de predicție a semnalului liniar.
21.2. Conținutul lucrărilor de laborator.
21.3. Sarcina de laborator.
21.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
21.5. Misiunea de muncă independentă.
21.6. Întrebări de raportare și control.
21.7. Literatură.
Lista abrevierilor în engleză.
Lista abrevierilor în rusă.
Index de subiect.

A.B.Sergienko. Caseta de instrumente de procesare a semnalului - recenzie

Procesarea semnalului a fost întotdeauna una dintre cele mai importante domenii de aplicare ale sistemului MATLAB. Acest lucru este dovedit în primul rând de faptul că Signal Processing Toolbox a fost unul dintre primele pachete specializate - a apărut deja în 1988, la doar patru ani de la crearea sistemului MATLAB în sine.

Până în prezent, pachetul de procesare a semnalului conține aproape două sute de funcții specializate dezvoltate cu atenție, care permit rezolvarea unei game largi de probleme de analiză și procesare a semnalului.

Versiunea distribuită în prezent a MATLAB 6.1 (Versiunea 12.1) conține pachetul Signal Processing versiunea 5.1. Versiunea viitoare a MATLAB 6.5 (Versiunea 13) va include versiunea 6.0 a pachetului Signal Processing.

Conform documentație oficială Funcțiile pachetului sunt împărțite în douăzeci de categorii. Lista de mai jos combină aceste categorii în grupuri mai mari. Deci, în funcție de scopul lor, funcțiile pachetului de procesare a semnalului pot fi împărțite după cum urmează:

În plus, pachetul include trei medii grafice s:

MATLAB și pachetele sale de extensie se concentrează în primul rând pe digital procesare a semnalului, prin urmare, funcțiile legate de calculul circuitelor analogice sunt considerate auxiliare. Ele sunt destinate în primul rând să fie apelate din alte funcții care utilizează prototipuri analogice în sinteza filtrelor digitale. Cu toate acestea, aceste funcții în sine pot fi foarte utile. La rândul lor, ele pot fi împărțite în mai multe grupuri.

Primul grup este funcții pentru calcularea filtrelor analogice prototip, adică filtre trece-jos cu o frecvență de tăiere de 1 rad/s. Funcțiile returnează zerourile, polii și câștigurile filtrelor și vă permit să calculați filtre Butterworth prototip ( bate la cap), Cebîșev de primul fel ( cheb1ap), Cebyshev de al doilea fel ( cheb2ap), eliptică (Kauer) ( ellipap) și Bessel ( besselap).

Al doilea grup este funcțiile de conversie a filtrului analogic care vă permit să convertiți un prototip de filtru trece-jos într-un filtru trece-jos cu o frecvență de tăiere diferită ( lp2lp), într-un filtru trece-înalt (HPF) cu o frecvență de tăiere dată ( lp2cp), într-un filtru trece-bandă cu o frecvență medie și o lățime de bandă dată ( lp2bp) și într-un filtru notch cu o frecvență medie și lățimea benzii de oprire date ( lp2bs). Funcțiile pot accepta și returna descrieri ale filtrelor ca vectori ai coeficienților polinoamelor numărătorului și numitorului funcției de transfer sau ca parametri ai spațiului de stare.

Al treilea grup este funcțiile pentru calcularea filtrelor analogice cu parametrii dați. În timpul procesului de calcul, ei numesc funcțiile primelor două grupuri. Setul de date inițiale necesare pentru calcul include ordinea filtrului, tipul acestuia (filtru trece-jos, filtru trece-înalt, trece-bandă sau crestătură), frecvența sau mai multe frecvențe de tăiere și, de asemenea, (în funcție de prototip) parametrii de ondulare ai răspunsul amplitudine-frecvență (AFC). Există funcții pentru calcularea filtrelor Butterworth ( unt), Cebîșev de primul fel ( cheby1), Cebyshev de al doilea fel ( cheby2), eliptică (Kauer) ( elips) și Bessel ( beless). Toate aceste funcții, cu excepția funcției beless, poate fi folosit și pentru a calcula filtre discrete (vezi mai jos). Un semn al opțiunii de calcul analogic este indicarea șirului „s” ca ultimul parametru de intrare.

Al patrulea grup este funcțiile pentru determinarea ordinii de filtrare necesare pe baza parametrilor de răspuns în frecvență specificați (frecvențele de tăiere ale benzilor de trecere și oprire, precum și ondulații permise în benzile de trecere și oprire). Fiecare tip de filtru are propria sa funcție pentru a determina ordinea necesară: pentru filtrul Butterworth - buttord, pentru un filtru Chebyshev de primul fel - cheb1ord, pentru un filtru Chebyshev de al doilea fel - cheb2ord, pentru un filtru eliptic - elipord. La fel ca și funcțiile din grupul anterior, aceste funcții vă permit să determinați ordinea necesară pentru filtrele discrete (vezi mai jos). Un semn al opțiunii de calcul analogic este indicarea șirului „s” ca ultimul parametru de intrare.

A cincea grupă este funcțiile de transformare a formelor de descriere a sistemelor liniare analogice. Pentru sistemele analogice, sunt acceptate patru astfel de metode de descriere:

Pachetul de procesare a semnalului conține funcții care implementează transformări reciproce ale acestor patru forme de reprezentare a sistemelor analogice (numai funcția reziduu, care funcționează cu poli și reziduuri, nu aparține pachetului Signal Processing, ci bibliotecii de bază MATLAB). Aceste caracteristici sunt enumerate în tabelul următor.

Forma finală Coeficienți polinomi ai funcției de transfer Zerouri și poli Stalpi și reziduuri Spațiul de stat
Forma originală
tf2zp reziduu tf2ss
Zerouri și poli zp2tf zp2ss
Stalpi și reziduuri reziduu
Spațiul de stat ss2tf ss2zp

reziduu poate converti în ambele direcții. Direcția transformării este determinată de numărul de parametri de intrare și de ieșire.

Funcțiile enumerate în tabel, cu excepția funcției reziduu, poate efectua și conversii ale sistemelor discrete, deoarece formulele de conversie pentru sistemele analogice și discrete sunt aceleași.

În cele din urmă, al șaselea grup ar trebui să includă singura funcție frecvențe, care vă permite să calculați sau să afișați grafic caracteristicile de amplitudine și frecvență de fază (AFC și PFC) ale unui sistem liniar analogic. Datele inițiale sunt coeficienții polinoamelor numărătorului și numitorului funcției de transfer de sistem.

Ca exemplu de utilizare a funcțiilor pentru lucrul cu sisteme analogice, să calculăm un filtru trece-jos eliptic de ordinul al patrulea cu o frecvență de tăiere de 3 kHz, un răspuns în frecvență în banda de trecere egală cu 1 dB și suprimarea semnalului în banda de oprire egală cu 20 dB, apoi graficați răspunsul în frecvență și răspunsul de fază .

Elip(4, 1, 20, 2*pi*3000, „s”); calculul filtrului %
f = 0:10:10000; % vector de frecvență pentru calcularea răspunsului în frecvență și răspuns la fază
h = frecvențe(b, a, 2*pi*f); % coeficient de transmisie complex
subplot(2, 1, 1)

grilă
subplot(2, 1, 2)
plot(f, unwrap(angle(h))*180/pi) % plot de răspuns de fază (în grade)
grilă

Funcția utilizată în codul exemplu desfaceți elimină săriturile nesemnificative în răspunsul de fază la 360°.

Această categorie de funcții este destul de numeroasă și combină o varietate de instrumente pentru analiza sistemelor liniare discrete - prezentate de obicei sub formă de vectori de coeficienți de polinoame ai numărătorului și numitorului funcției de transfer (în z-regiuni).

Funcţie frecvz este un analog discret al funcției frecvențe, vă permite să calculați coeficientul de transmisie complex sau să reprezentați un grafic răspunsul în frecvență și răspunsul de fază sistem discret. Datele inițiale sunt coeficienții polinoamelor numărătorului și numitorului funcției de transfer de sistem.

Similar cu funcția frecvz funcția funcționează grpdelay, care vă permite să calculați sau să afișați grafic dependența de frecvență a întârzierii de grup introdusă de un filtru discret.

Funcţie impz destinate calculului sau afișaj grafic răspunsul la impuls al unui sistem discret. Datele inițiale, ca și pentru funcțiile anterioare, sunt coeficienții polinoamelor numărătorului și numitorului funcției de transfer de sistem.

Funcţie zplane vă permite să afișați zerourile și polii sistemului pe planul complex, ilustrând în plus un cerc unitar care limitează zona permisă pentru locația polilor durabil sistem discret. Datele inițiale pot fi fie vectorii de coeficienți ai polinoamelor numărătorului și numitorului, fie direct vectorii zerourilor și polilor funcției de transfer a sistemului.

Funcţie filtru norma vă permite să calculați normă filtru discret. Acest parametru este utilizat, de exemplu, la alegerea factorilor de scalare pentru secțiunile individuale ale unui filtru implementat sub formă secvențială (în cascadă), pentru a reduce erorile de rotunjire. Sunt acceptate două opțiuni: 2-norm și -norm. Norma 2 reprezintă rădăcină medie pătrată valoarea răspunsului în frecvență a filtrului (sau, ceea ce este același lucru, rădăcina sumei eșantioanelor pătrate ale răspunsului la impulsul filtrului), iar norma - este maxim valoarea răspunsului în frecvență.

Funcţie fvtool este în esență un mediu grafic conceput pentru analiza și vizualizarea caracteristicilor sistemelor discrete (Filter Visualization Tool). Cu toate acestea, spre deosebire de alte medii grafice din pachet, fvtool chiar este funcţie, deoarece atunci când este numită necesită prezența parametrilor de intrare - coeficienții polinoamelor numărătorului și numitorului funcției de transfer a filtrului analizat. Un avantaj semnificativ al acestei funcții este capacitatea de a vizualiza simultan caracteristicile mai multe filtre. Interfața grafică cu utilizatorul oferită de această funcție este aproape aceeași ca în mediul de analiză și sinteză a filtrului FDATool. Mai jos este un exemplu de apel de funcție fvtool iar fereastra grafică pe care o creează în modul de arătare a dependenței de frecvență a întârzierii de grup introdusă de filtru.

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

Un grup mare este format din funcții pentru transformarea formelor descrierilor sistemelor discrete. Sunt acceptate mai multe forme de reprezentare pentru sistemele discrete decât pentru cele analogice:

  • Coeficienții polinoamelor numărătorului și numitorului funcției de transfer de sistem.
  • Zerouri, poli și câștig de sistem (factorizarea funcției de transfer).
  • Poli și reziduuri (reprezentarea funcției de transfer a sistemului ca sumă de fracții simple).
  • Parametrii spațiului de stare.
  • Reprezentare sub forma unui set de secțiuni secvenţiale (în cascadă) de ordinul doi.
  • Reprezentare sub formă de zăbrele sau structură de zăbrele-scări.

Funcțiile care convertesc între diferite reprezentări sunt enumerate în tabelul următor.

Forma finală Coeficienți polinomi ai funcției de transfer Zerouri și poli Stalpi și reziduuri Spațiul de stat Secțiuni de ordinul doi Structură cu zăbrele
Forma originală
Coeficienți polinomi ai funcției de transfer tf2zp reziduez tf2ss tf2sos tf2latc
Zerouri și poli zp2tf zp2ss zp2sos
Stalpi și reziduuri reziduez
Spațiul de stat ss2tf ss2zp ss2sos
Secțiuni de ordinul doi sos2tf sos2zp sos2ss
Structură cu zăbrele latc2tf

După cum se vede din tabel, aceeași funcție reziduez(acesta este un analog al funcției reziduu, concepute pentru a lucra cu descrieri ale sistemelor discrete) pot efectua transformări în ambele direcții. Direcția transformării este determinată de numărul de parametri de intrare și de ieșire.

Încă două funcții manipulează vectorii coeficienți ai polinoamelor, modificând poziția rădăcinilor polinomului pe planul complex. Funcţie poliscalăînmulțește toate rădăcinile polinomului procesat cu un coeficient dat și funcția polystab face ca toate rădăcinile polinomului să se afle în interiorul cercului unitar - în acest scop, rădăcinile care depășesc unu in valoare absolută, sunt inversate, adică modulele lor sunt înlocuite cu valori inverse, iar semnul fazelor lor se schimbă în sens opus.

Funcțiile rămase din această categorie sunt auxiliare. Funcţie spatiul de frecventa calculează un vector de valori de frecvență uniform distanțate, funcția freqzplot este destinat pentru a reprezenta grafice ale caracteristicilor de frecvență și ale funcției desfaceți vă permite să eliminați salturile nesemnificative ale caracteristicilor de fază-frecvență cu 2p, căutând aceste salturi între elementele vectoriale și deplasând fragmentele vectoriale dorite cu 2p n.

Operația de filtrare liniară discretă este descrisă în general după cum urmează:

Aici x(k)- mostre de semnal de intrare, y(k)- mostre de semnal de ieșire, un iȘi B j- coeficienți constanți. Maximul numerelor mȘi n se numește ordine de filtrare.

Eșantioanele de ieșire anterioare pot să nu fie utilizate în calcule, apoi toate a i = 0 iar filtrul este numit nerecursiv sau transversal. Dacă sunt folosite mostre anterioare de ieșire, filtrul se numește recursiv.

Filtrarea liniară discretă se referă la tehnologii pentru prelucrarea datelor arbitrare, deci funcția corespunzătoare este filtru- nu aparține pachetului Signal Processing, dar este încorporat în nucleul MATLAB. Funcţie filtrul2, de asemenea parte a bibliotecii de bază MATLAB, implementează filtrarea discretă bidimensională.

Deoarece un filtru cu coeficient constant este un sistem discret liniar invariant în timp, răspunsul său la un semnal de intrare arbitrar poate fi reprezentat ca convoluție discretă semnal de intrare cu filtru de răspuns la impuls:

Aici h(k)- mostre ale răspunsului la impulsul filtrului. Răspunsul la impuls este răspunsul filtrului la o singură mostră de valoare unitară aplicată intrării.

Desigur, calculele folosind formula de convoluție pot fi implementate în practică numai dacă lungime finală răspunsul la impuls al filtrului. Această operație este efectuată de funcție conv; ca și implementarea algoritmului de filtrare discretă, nu aparține pachetului de procesare a semnalului, ci bibliotecii MATLAB de bază. În realitate, implementarea funcției conv se reduce la apelarea funcției filtru cu parametrii de intrare corespunzători. Funcţie conv2 implementează convoluția discretă bidimensională. O altă funcție a bibliotecii de bază MATLAB este deconv- implementează inversarea convoluției, permițând ca al doilea vector de intrare să fie determinat din rezultatul convoluției și unul dintre vectorii de intrare.

Funcțiile de filtrare discrete de bază menționate mai sus, așa cum sa menționat deja, aparțin bibliotecii de bază MATLAB; De fapt, pachetul de procesare a semnalului conține funcții care rezolvă probleme mai specifice de filtrare.

În primul rând, trebuie remarcat faptul că funcția filtru face posibilă accesarea stărilor interne inițiale și finale ale filtrului, permițând astfel organizarea procesării blocului de semnal. Uneori devine necesar să se formeze un vector al stării interne a filtrului, cunoscând un anumit număr de eșantioane anterioare de intrare și ieșire. Acest calcul este efectuat folosind funcția filtic.

Funcţie fftfilt implementează filtrarea discretă folosind transformarea Fourier rapidă (FFT) în combinație cu diviziunea semnalului în blocuri. Doar filtrele nerecursive pot fi implementate în acest fel. Rezultatul funcției coincide (până la erori de calcul) cu rezultatele filtrării convenționale implementate folosind funcția filtru. Cu toate acestea, viteza de calcul a filtrării FFT poate fi semnificativ mai mare, mai ales dacă lungimea semnalului de intrare este de multe ori mai mare decât lungimea răspunsului la impuls al filtrului (sau invers).

Funcţie filtfilt vă permite să compensați defazajul introdus de filtrarea convențională (cu alte cuvinte, această funcție implementează filtrarea fără a introduce o întârziere). Acest lucru se realizează prin procesarea bidirecțională a semnalului. Prima trecere de filtrare este efectuată în mod obișnuit, iar apoi semnalul de ieșire rezultat este filtrat a doua oară - de la sfârșit la început. Datorită acestui fapt, schimbările de fază sunt compensate, iar ordinea rezultată a filtrului este dublată. Trebuie remarcat faptul că filtrul rezultat (echivalent cu două treceri de filtrare) nu satisface condiția de cauzalitate.

La implementare practică Pentru filtrele recursive de ordin înalt, acestea sunt adesea reprezentate ca secțiuni de ordinul doi conectate în serie. Acest lucru ne permite să reducem erorile de calcul rezultate din erorile de rotunjire și cuantificarea coeficienților de filtru. Instrumentele de analiză a erorilor pentru acest tip de eroare sunt concentrate în pachetul Filter Design, iar pachetul Signal Processing are o funcție sosfilt, care vă permite să implementați filtrarea discretă a datelor folosind un filtru prezentat sub formă de secțiuni de ordinul doi.

O altă structură posibilă a filtrului discret este o structură cu zăbrele. Pentru a efectua filtrarea folosind un filtru prezentat în acest formular, utilizați funcția latcfilt.

Funcţie medfilt1, care implementează filtrarea mediană unidimensională, aparține algoritmilor de filtrare neliniară. Esența funcționării sale este că o fereastră glisantă de o lungime dată este aplicată semnalului de intrare, eșantioanele din fereastră sunt ordonate și valoarea din mijlocul ferestrei ordonate (sau jumătatea sumei celor două elemente cele mai apropiate la mijloc dacă fereastra are o lungime uniformă) este returnată ca probă de ieșire. Filtrarea mediană este utilizată, de exemplu, pentru a elimina zgomotul de impuls (clicuri) la procesarea semnalelor audio. Funcţie medfilt2, care implementează o versiune bidimensională de filtrare mediană, se află în pachetul de procesare a imaginii.

Funcţie sgolayfilt efectuează o filtrare discretă folosind un filtru Savitzky-Golay. Esența acestuia constă în faptul că semnalul de intrare este împărțit în blocuri de o dimensiune dată și, în cadrul fiecărui bloc, se realizează o aproximare polinomială a semnalului printr-un polinom de un grad dat după criteriul erorii pătratice medii minime. Dacă gradul polinoamelor este cu unul mai mic decât dimensiunea blocurilor, semnalul de ieșire va fi egal cu semnalul de intrare; cu un grad mai mic de polinoame, semnalul va fi netezit. Filtrele Savitzky-Golay sunt folosite pentru a „curăța” semnalele de zgomot.

Sinteza unui filtru discret înseamnă selecția unor astfel de seturi de coeficienți ( un i) Și ( b i), la care caracteristicile filtrului rezultat satisfac cerințele specificate. Strict vorbind, sarcina de proiectare include și alegerea unei structuri de filtru adecvate, ținând cont de precizia finală a calculelor. Acest lucru este valabil mai ales atunci când implementați filtre „în hardware” - folosind LSI-uri specializate sau procesoare de semnal digital. Efectele legate de precizia finală a calculelor pot fi analizate folosind funcțiile pachetului Filter Design; funcțiile de sinteză a filtrelor nu țin cont de aceste efecte.

Pachetul Signal Processing are un număr mare de funcții care implementează diverși algoritmi pentru sinteza filtrelor discrete. Prezentăm principalele caracteristici ale acestor funcții sub formă de tabel, apoi oferim câteva comentarii suplimentare.

Funcţie Tip filtru raspuns in frecventa Metoda de sinteză
unt Recursiv Butterworth Z-transformă biliniară
cheby1 Recursiv Cebyshev de primul fel Z-transformă biliniară
cheby2 Recursiv Cebyshev de al doilea fel Z-transformă biliniară
elips Recursiv Cauera (eliptică) Z-transformă biliniară
biliniar Recursiv Z-transformă biliniară
impinvar Recursiv Prototip analog arbitrar Transformarea răspunsului la impuls invariant
yulewalk Recursiv Linear pe bucăți Metoda autoregresivă
invfreqz Recursiv gratuit Minimizarea diferenței dintre numărătorul funcției de transfer și produsul numitorului acesteia și răspunsul în frecvență dorit
prony Recursiv Sinteză dintr-un răspuns la impuls dat Aproximație exponențială Prony
brad1 Nerecursiv Multibandă
brad2 Nerecursiv Linear pe bucăți Transformarea Fourier inversă folosind Windows
firls Nerecursiv Minimizarea erorii pătratice medii
fircls Nerecursiv Constanta pe bucati
fircls1 Nerecursiv LPF, HPF Minimizarea erorii pătratice medii cu o limitare maximă a abaterii
firrcos Nerecursiv LPF Netezirea cosinusului
intfilt Nerecursiv LPF Aproximație minimă
remez Nerecursiv Liniar în bucăți, cu dungi de tranziție Aproximație minimă
cremez Nerecursiv (inclusiv cu răspuns de fază neliniară și coeficienți complexi) Liniar în bucăți, cu dungi de tranziție Aproximație minimă

Metodele de sinteză a filtrelor discrete pot fi împărțite în două grupuri mari: cu și fără utilizarea unui prototip analog. Când se utilizează un filtru analogic prototip, este necesar să se reprezinte cumva funcția de transfer analogică definită în domeniul s la o funcție de transfer discretă definită în domeniul z. Pachetul de procesare a semnalului implementează două metode de astfel de transformare: metoda răspunsului la impuls invariant și metoda transformării z biliniare. Ambele metode au ca rezultat filtre recursive discrete.

Când se utilizează metoda răspunsului la impuls invariant, este eșantionat răspunsul la impuls al unui prototip analog. Răspunsul în frecvență al filtrului discret rezultat este în consecință un răspuns în frecvență repetat periodic al prototipului analogic. Din acest motiv, această metodă este nepotrivită pentru sinteza filtrelor de trecere înaltă și, în general, a filtrelor al căror coeficient de transmisie nu tinde spre zero odată cu creșterea frecvenței. Metoda răspunsului la impuls invariant este implementată în pachetul de procesare a semnalului folosind funcția impinvar.

Când se utilizează metoda biliniară z-transform, caracteristicile prototipului analogic sunt distorsionate numai de-a lungul axei frecvenței. în care gama de frecvente filtrul analogic (de la zero la infinit) este convertit în intervalul de frecvență de funcționare al unui filtru discret (de la zero la jumătate din frecvența de eșantionare). Transformarea axei frecvenței este descrisă de o funcție arctangentă, astfel încât frecvențele semnificativ mai mici decât rata de eșantionare sunt convertite aproximativ liniar. Această metodă este implementată folosind funcția biliniar pentru un prototip analog arbitrar. În plus, există funcții gata făcute calculul filtrelor de trecere joasă și înaltă, filtre trece-bandă și crestătură folosind metoda biliniară z-transform folosind prototipuri analogice cu răspuns în frecvență de Butterworth, Chebyshev de primul și al doilea fel, precum și Cauer (filtre eliptice). Acest lucru este în funcție de funcție unt, cheby1, cheby2Și elips. Toate aceste funcții pot fi folosite și pentru a calcula filtre analogice (vezi mai devreme). Un semn al unei opțiuni de calcul discrete este absența șirului „s” în lista parametrilor de intrare. Există, de asemenea, funcții pentru determinarea ordinii necesare a acestor filtre pe baza parametrilor de răspuns în frecvență specificați (frecvențele de tăiere ale benzilor de trecere și oprire, precum și ondulația permisă în aceste benzi). Acest lucru este în funcție de funcție buttord, cheb1ord, cheb2ord, ellipord. La fel ca și funcțiile de sinteză a filtrelor, aceste funcții vă permit să determinați ordinea necesară pentru filtrele analogice (vezi mai devreme). Un semn al unei opțiuni de calcul discrete este absența șirului „s” în lista parametrilor de intrare.

Ca exemplu, sintetizăm un filtru trece-jos eliptic de ordinul al patrulea cu aceiași parametri ca filtrul analogic într-unul dintre exemplele anterioare (frecvența de tăiere 3 kHz, ondulație de răspuns în frecvență în banda de trecere 1 dB și suprimarea semnalului în banda de oprire). 20 dB). Să considerăm că frecvența de eșantionare este de 12 kHz. După sinteză, vom construi grafice ale răspunsului în frecvență și al răspunsului de fază al filtrului rezultat folosind funcția frecvz.

    Fs = 12000; % frecvența de eșantionare
    F0 = 3000; % frecvența de tăiere
    = elip(4, 1, 20, F0/Fs*2); calculul filtrului %
    freqz(b, a, , Fs); % ieșire grafică

Metodele de sinteză care nu folosesc un prototip analog se numesc directe. Ele, la rândul lor, pot fi împărțite și în două grupe: metode de sinteză a filtrelor recursive și nerecursive.

Funcțiile de sinteză directă a filtrelor nerecursive includ următoarele:

  • Funcții care implementează sinteza filtrului prin transformarea Fourier inversă a răspunsului în frecvență dorit și multiplicarea ulterioară a răspunsului la impuls rezultat cu o anumită funcție de ponderare (fereastră) pentru a atenua ondulațiile răspunsului în frecvență care apar datorită efectului Gibbs. Acestea sunt funcțiile brad1Și brad2. Aceasta include, de asemenea, funcția de sinteză a filtrului trece-jos cu netezirea cosinusului răspunsului în frecvență - firrcos. În plus, funcția kaiserord permite, pe baza parametrilor dați ai răspunsului în frecvență, să se estimeze ordinea de filtrare necesară în timpul sintezei folosind fereastra Kaiser.
  • Funcții care implementează minimizarea abaterii standard a răspunsului în frecvență al filtrului rezultat față de cel specificat. Acestea sunt funcțiile firls, firclsȘi fircls1. Ultimele două funcții rezolvă o problemă de optimizare cu o limitare a abaterii maxime a răspunsului în frecvență de la cea specificată. Acest lucru vă permite să evitați apariția unor emisii mari de răspuns în frecvență în apropierea benzilor de tranziție.
  • Funcții care implementează optimizarea minimax, adică minimizarea abaterii de vârf a răspunsului în frecvență al filtrului rezultat față de cel specificat. Rezultatul sunt filtre cu pulsații uniforme de răspuns în frecvență. Acest grup include funcții remez (opțiune standard metoda Remez, implementată chiar în primele versiuni ale pachetului Signal Processing) și cremez(o versiune extinsă care acceptă sinteza filtrelor cu răspuns de fază neliniară și coeficienți complexi). În plus, funcția remezord permite, pe baza parametrilor dați ai răspunsului în frecvență, să se estimeze ordinea de filtrare necesară în timpul sintezei folosind metoda Remez.

Ca exemplu, sintetizăm un filtru trece-jos nerecursiv de ordinul 32 folosind metoda Remez cu aceleași frecvențe de tăiere și eșantionare ca în exemplul anterior (frecvența de tăiere 3 kHz, frecvența de eșantionare 12 kHz). Să setăm începutul benzii de oprire la 3,5 kHz. După sinteză, vom construi grafice ale răspunsului la impuls, precum și răspunsul în frecvență al filtrului rezultat (răspunsul în frecvență al filtrului este liniar, deci nu are sens să-i afișam graficul). Afișăm răspunsul în frecvență pe o scară verticală liniară pentru a demonstra în mod clar uniformitatea pulsațiilor sale.

    Fs = 12000; % frecvența de eșantionare
    F0 = 3000; % frecvența de tăiere
    F1 = 3500; % începutul benzii de oprire
    b = remez(32, , ); calculul filtrului %
    impz(b) % grafic răspuns la impuls
    = frecvență(b, 1, , Fs); % coeficient de transmisie complex
    figura
    plot(f, abs(h)) % grafic răspuns în frecvență
    grilă

Funcțiile de sinteză directă a filtrelor recursive includ următoarele:

  • yulewalk- sinteza unui filtru recursiv cu un răspuns în frecvență liniar pe bucăți arbitrar folosind metoda Yule-Walker.
  • invfreqz- această funcție este destinată să rezolve problema identificării sistemelor; vă permite să determinați coeficienții numărătorului și numitorului funcției de transfer a unui sistem discret dintr-un set de valori ale acestei funcții de transfer la frecvențe diferite.

În concluzie, vom enumera o serie de funcții care nu sunt incluse în grupurile enumerate mai sus. Funcţie maxflat este destinat sintezei unui filtru Butterworth generalizat (pentru astfel de filtre numărul de zerouri al funcției de transfer depășește numărul polilor acesteia). Funcţie intfilt realizează sinteza filtrelor menite să filtreze semnalul la efectuarea interpolării și decimării. Operația de convoluție vectorială poate fi reprezentată ca un produs vector-matrice, iar matricea implicată în acest produs poate fi calculată folosind funcția convmtx. În sfârșit, funcția sgolay realizează sinteza unui filtru de netezire Savitzky-Golay. Deoarece, așa cum este descris mai sus, filtrul Savitzky-Golay procesează blocuri individuale ale semnalului, un astfel de filtru nu este un sistem staționar. Prin urmare funcția sgolay returnează o întreagă matrice de coeficienți care variază în timp ai unui filtru echivalent nerecursiv.

În plus față de pachetul de procesare a semnalului, un număr de funcții de sinteză a filtrelor discrete sunt disponibile în pachetele de comunicații și design de filtru.

Cuvintele „analiza spectrală” din mintea multor utilizatori MATLAB sunt puternic asociate cu această funcție fft(vezi în continuare secțiunea „Funcții pentru transformarea semnalelor discrete”), care realizează o transformată Fourier discretă (DFT). Cu toate acestea, aceasta este doar o transformare liniară unu-la-unu, dând performanţă semnal determinist în domeniul frecvenței. Dacă semnalul analizat este Aleatoriu, pentru el are doar sens nota densitatea spectrală putere, pentru al cărui calcul este necesar să se efectueze într-un fel sau altul mediarea datelor disponibile. În plus, în unele cazuri cunoaștem câteva informații suplimentare despre semnalul analizat și este recomandabil să ținem cont de aceste informații în timpul analizei spectrale.

Metodele de analiză spectrală a semnalelor aleatoare sunt împărțite în două clase mari - neparametrice și parametrice. ÎN neparametric metodele (neparametrice) folosesc doar informațiile conținute în eșantioanele semnalului analizat. Parametric metodele (parametrice) presupun prezența unor statistici modele semnal aleator și procesul de analiză spectrală în în acest caz, include definiția parametrii acest model. Termenul de analiză de spectru bazată pe model (MBSA) este, de asemenea, utilizat.

Pachetul de procesare a semnalului conține funcții care implementează o varietate de metode de analiză spectrală - atât parametrice, cât și neparametrice (trebuie subliniat încă o dată că prin analiză spectrală înțelegem evaluarea) densitatea spectrală de putere a unui proces aleator). În plus, există funcții pentru obținerea altor caracteristici medii ale semnalelor discrete aleatorii.

Pentru a determina caracteristicile spectrale ale unui proces aleator discret, se calculează spectrul de putere medie al fragmentului său limitat în lungime, iar apoi lungimea fragmentului tinde spre infinit:

. (1)

Aici X(k) - mostre ale unui proces aleatoriu, T- perioada de prelevare. Bara de mai sus indică o medie asupra ansamblului de realizări.

În plus, acest spectru poate fi exprimat prin funcția de corelare a procesului aleator:

. (2)

Această expresie este un analog discret al teoremei Wiener-Khinchin: spectrul unui proces aleator discret este transformata Fourier a funcției sale de corelație.

După cum sa menționat deja, atunci când se utilizează metode neparametrice pentru calcularea spectrului unui proces aleatoriu, se utilizează numai informațiile conținute în eșantioanele de semnal, fără ipoteze suplimentare. Pachetul Signal Processing implementează trei astfel de metode - parodogramă, metoda Welch și metoda Thomson.

O periodogramă este o estimare a densității spectrale de putere obținute din N conteaza o singură implementare proces aleatoriu conform definiției (1) (în mod firesc, nu prin luarea unei limite, ci prin medierea unui număr finit de termeni). Dacă o funcție de ponderare (fereastră) este utilizată în calculele spectrului, estimarea spectrului de putere rezultată se numește parodogramă modificată(periodograma modificată):

Relația (2) este satisfăcută numai pentru un număr infinit de eșantioane utilizate, prin urmare, pentru orice finit N Estimarea periodogramei a densității spectrale de putere se dovedește a fi deplasat- rezultă că în interiorul sumei (2) funcția de corelare a semnalului este înmulțită cu o funcție de greutate triunghiulară. În plus, se poate demonstra că parodograma nu este o estimare validă a densității spectrale de putere, deoarece dispersie o astfel de estimare este comparabilă cu pătratul așteptărilor sale matematice pentru oricare N. Pe măsură ce numărul de eșantioane utilizate crește, valorile parogramei încep să fluctueze din ce în ce mai repede - graficul său devine din ce în ce mai zimțat.

În pachetul Signal Processing, parodograma (inclusiv cea modificată) este calculată folosind funcția parodogramă.

Pentru a reduce denivelarea parogramei, este necesar să se aplice un fel de mediere. Bartlett a propus împărțirea semnalului analizat în segmente care nu se suprapun, calcularea unei parodograme pentru fiecare segment și apoi realizarea mediei acestor periodograme. Dacă funcția de corelare a semnalului în timpul duratei segmentului scade la valori neglijabile, atunci periodogramele segmentelor individuale pot fi considerate independente. Welch a adus două îmbunătățiri metodei lui Bartlett: utilizarea unei funcții de ponderare și împărțirea semnalului în suprapuse fragmente. Utilizarea unei funcții de ponderare face posibilă reducerea răspândirii spectrului și reducerea deviației în estimarea rezultată a spectrului de densitate de putere cu prețul unei ușoare deteriorări a rezoluției. S-au introdus segmente suprapuse pentru a le crește numărul și a reduce varianța estimării.

Calculele folosind metoda Welch (numită și metoda periodogramei modificate medii) sunt organizate astfel: vectorul eșantioanelor de semnal este împărțit în segmente suprapuse, fiecare segment este înmulțit cu funcția de ponderare utilizată, periodogramele modificate sunt calculate pentru segmentele ponderate, periodogramele dintre toate segmentele sunt mediate.

Metoda Welch este cea mai populară metodă de analiză spectrală a parodogramei. În pachetul de procesare a semnalului este implementat folosind funcția pwelch.

Metoda lui Thomson implementată de funcție pmtm, în funcție de utilizare funcții sferoidale prolate(funcții sferoidale prolate). Aceste funcții cu durată finită asigură concentrația maximă de energie într-o bandă de frecvență dată. Pe lângă evaluarea spectrală în sine, funcția pmtm poate returna intervalul de încredere. Este nevoie de ceva timp pentru a calcula funcțiile sferoidale prolate, deci atunci când utilizați funcția de mai multe ori pmtm Puteți accelera calculele calculând în prealabil funcțiile necesare analizei și stocându-le în baza de date. Pentru a lucra cu o astfel de bază de date (este un fișier MAT numit dpss.mat) este o familie de funcții ale căror nume încep cu litere dpss (dpss- calculul funcțiilor, dpssload- încărcarea unei familii de funcții din baza de date, dpsssave- salvarea unei familii de funcții în baza de date, dpssdir- ieșirea directorului bazei de date, dpssclear- ștergerea unei familii de funcții din baza de date).

Ca exemplu, vom forma o implementare a unui proces aleator corelat exponențial și vom efectua analiza spectrală a acestuia folosind cele trei metode enumerate. Semnalul aleatoriu de care avem nevoie este generat prin trecerea zgomotului alb discret normal printr-un filtru recursiv de ordinul întâi:

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

Construim o parodogramă:

parodogramă (X, , , 1)

După cum puteți vedea, parodograma se dovedește a fi destul de zimțată. Acum să estimăm spectrul aceleiași implementări folosind metoda lui Welch:

pwelch(X, , , , 1)

Neregularitatea graficului se dovedește a fi mult mai mică. În cele din urmă, folosim metoda lui Thomson:

pmtm(X, , , 1)

La ieșirea funcției pmtm Graficul arată limitele intervalului de încredere împreună cu estimarea spectrului de putere.

Utilizarea metodelor parametrice presupune prezența unor matematici modele proces aleator analizat. În acest caz, analiza spectrală se reduce la rezolvarea unei probleme de optimizare, adică la căutarea unei astfel de probleme parametrii modele în care este cel mai aproape de semnalul observat efectiv. Pachetul Signal Processing implementează o serie de varietăți de analiză autoregresivă și două metode bazate pe analiza valorilor proprii și a vectorilor matricei de corelare a semnalului: MUSIC (Multiple Signal Classification) și EV (EigenVectors).

Conform model autoregresiv semnalul este generat prin trecerea unui zgomot alb discret printr-un filtru „pur recursiv”. N-a ordine. Densitatea spectrală de putere a unui astfel de semnal este proporțională cu pătratul modulului coeficientului funcției de transfer a filtrului de modelare. Astfel, această metodă de analiză spectrală se reduce la determinarea coeficienților de filtru de un ordin dat, estimarea puterii zgomotului alb excitant și calcularea analitică a densității spectrale de putere. Pentru a determina coeficienții modelului, eroarea este minimizată predicție liniară semnal. Analiza teoretică arată că coeficienții optimi ai modelului sunt determinați doar de funcția de corelație a semnalului.

În practică, nu cunoaștem adevărata funcție de corelație a semnalului studiat, prin urmare, pentru a minimiza eroarea de predicție, folosim evaluări CF obținute prin medierea timpului. Au fost dezvoltate o serie de metode de analiză autoregresivă, care diferă în principal în abordarea procesării efectelor de margine (adică în metoda implicării în calcule a acelor eșantioane de semnal de margine pentru care nu există o pereche decalată la calcularea CF). Pachetul de procesare a semnalului implementează metoda Burg, metoda covarianței, metoda covarianței modificate și metoda Yule-Walker autoregresivă.

Metodele de analiză a spectrului autoregresiv sunt cele mai potrivite pentru semnalele care sunt cu adevărat procese autoregresive. În general, aceste metode dau rezultate bune atunci când spectrul semnalului analizat are vârfuri clar definite. În special, astfel de semnale includ suma mai multor sinusoide cu zgomot.

Atunci când utilizați metode autoregresive, este important să alegeți corect ordinea modelului autoregresiv - ar trebui să fie de două ori numărul de oscilații sinusoidale care ar trebui să fie conținute în semnalul analizat.

Fiecare metodă de analiză autoregresivă din pachetul de procesare a semnalului corespunde a două funcții - funcția de calculare a coeficienților modelului și funcția de analiză spectrală în sine. Funcția de analiză a spectrului numește funcția de calcul al coeficientului modelului și apoi calculează spectrul. Numele funcțiilor sunt rezumate în tabelul următor.

Numele metodei

Funcția de calcul al coeficienților modelului

Funcția de analiză spectrală

Metoda covarianței arcov pcov
Metoda covarianței modificată armcov pmcov
metoda Berg arburg pburg
Metoda Yule-Walker autoregresivă ariule pylear

Semnalul aleator corelat exponențial generat în exemplul de mai sus este un proces autoregresiv de ordinul întâi, prin urmare metodele enumerate de analiză spectrală sunt destul de adecvate pentru acesta. Să aplicăm metoda lui Berg, stabilind ordinea modelului autoregresiv, egal cu unu(acesta este al doilea parametru al funcției pburg):

pburg(X, 1, , 1)

Curba netedă rezultată coincide practic cu spectrul teoretic al acestui proces aleatoriu.

Metoda MUSIC (Multiple SIgnal Classification) este destinată analizei spectrale a semnalelor care sunt suma mai multor sinusoide (mai precis, în cazul general, mai multe exponențiale complexe) cu zgomot alb. Scopul analizei spectrale a unor astfel de semnale, de regulă, nu este de a calcula spectrul ca atare, ci de a determina frecvențele și nivelurile (amplitudini sau puteri) componentelor armonice. Metoda MUSIC este destinată tocmai pentru aceasta, de aceea dependența nivelului semnalului de frecvența obținută cu ajutorul ei se numește pseudospectru(pseudospectru).

Metoda se bazează pe analiza valorilor proprii și a vectorilor proprii ai matricei de corelație a semnalului. Atunci când se efectuează o analiză, este necesar să se precizeze ordinea modelului, adică numărul de exponențiale complexe care se preconizează a fi conținute în semnal.

În pachetul de procesare a semnalului, metoda MUSIC este implementată folosind funcția pmusic, și funcția muzica de rădăcină vă permite să obțineți estimări ale frecvențelor și puterilor componentelor armonice ale semnalului.

O rudă apropiată a MUSIC este metoda vectorilor proprii (EV). Singura sa diferență este că în formulele de calcul vectorii proprii sunt înmulțiți cu coeficienți de ponderare invers proporționali cu valorile proprii corespunzătoare. Literatura de specialitate raportează că metoda EV produce mai puține vârfuri spectrale false decât MUSIC și, în general, oferă o reprezentare mai bună a formei spectrale a zgomotului.

În pachetul de procesare a semnalului, metoda EV este implementată folosind funcția peig, și funcția rooteig vă permite să obțineți estimări ale frecvențelor și puterilor componentelor armonice ale semnalului.

Trebuie subliniat faptul că pseudospectrele nu sunt estimări ale spectrului real de densitate de putere, ci sunt doar spectrale. pseudo-estimări, permițând să se estimeze frecvențele componentelor semnalului sinusoidal sau de bandă îngustă cu o rezoluție puțin mai mare decât cea a metodelor autoregresive.

Transformata Fourier discretă, utilizată în toate metodele de estimare spectrală neparametrică, implică o continuare periodică a fragmentului de semnal analizat. În acest caz, pot apărea salturi la joncțiunile fragmentelor, ducând la apariția de lobi laterali de un nivel semnificativ în regiunea spectrală. Pentru a slăbi acest efect, semnalul este înmulțit cu semnalul care scade de la centru spre margini înainte de a efectua DFT. functie de greutate (fereastră). Ca urmare, amploarea salturilor la joncțiunile segmentelor scade, iar nivelul lobilor laterali nedoriți ai spectrului devine, de asemenea, mai mic - prețul pentru aceasta este o anumită lărgire a vârfurilor spectrale.

În plus față de analiza spectrală, funcțiile de ponderare sunt utilizate în sinteza filtrelor nerecursive prin transformarea Fourier inversă a răspunsului în frecvență dorit. În acest caz, ele vă permit să creșteți suprimarea semnalului în banda de oprire a filtrului datorită unei anumite extinderi a benzii de trecere.

În prezent, pachetul de procesare a semnalului conține aproximativ o duzină de funcții de ponderare. Răspândirea unora dintre ele se datorează simplității de calcul, în timp ce altele sunt într-un anumit sens optime.

Cea mai simplă este o fereastră dreptunghiulară implementată de funcție rectwin(în versiunile de pachet până la 5.0 inclusiv, această funcție avea numele vagon cu camion). Fereastra dreptunghiulară corespunde absenței cântăririi; această funcție este inclusă în pachet doar pentru completitatea formală a setului de funcții de ponderare. Fereastra triunghiulară este implementată de funcție triang, fereastra Bartlett are și o formă triunghiulară (funcția bartlett), diferă doar puțin în metoda de calcul.

Mai multe funcții de ponderare sunt combinații de componente armonice. Le enumerăm în ordinea crescătoare a numărului de termeni cosinus:

  • Fereastra Hanna (funcția Hann), numită uneori greșit fereastra Hanning, este un singur termen cosinus.
  • Fereastra Hamming (funcția haming) - un termen cosinus.
  • Fereastra Blackman (funcția om negru) - doi termeni cosinus.
  • Fereastra Blackman-Harris (funcția blackmanharris) - trei termeni cosinus.
  • Fereastra Nuttall (o versiune alternativă a ferestrei Blackman-Harris, funcția nuttallwin) - trei termeni cosinus.

Ferestrele rămase sunt descrise prin relații matematice mai complexe. Forma ferestrei gaussiene (funcția gausswin) se explică de la sine. Fereastra Bartlett-Hanna modificată (funcția barthannwin) este o combinație liniară a ferestrelor Bartlett și Hanna. Fereastra Beauman (funcția bohmanwin) este convoluția a două impulsuri cosinus identice. Fereastra Chebyshev (funcția chebwin) are lobi laterali de un nivel fix (specificati in timpul calculului) si este calculat prin transformata Fourier inversa a raspunsului in frecventa al ferestrei. Fereastra Kaiser (funcția kaiser) are, de asemenea, un parametru care reglează nivelul lobilor laterali și lățimea lobului principal; funcțiile Bessel modificate sunt utilizate la calcularea acestei ferestre. Fereastra Tukey (funcția tukeywin) este un dreptunghi cu margini netezite în cosinus. La valori extreme ale coeficientului de netezire, se transformă într-o fereastră dreptunghiulară sau fereastră Hann.

În sfârșit, funcția fereastră oferă o interfață generală pentru apelarea funcțiilor de calcul specifice ferestrei.

Funcțiile care aparțin acestei categorii calculează diverși parametri statistici ai semnalelor. Funcțiile pot fi împărțite în mai multe grupuri.

Primul grup se referă la calculul funcțiilor de corelație și covarianță (trebuie amintit aici că în terminologia internă și străină aceste concepte nu coincid; această recenzie folosește versiunea străină adoptată în MATLAB). Funcţie xcorr vă permite să estimați funcția de corelare a unui semnal sau funcția de corelare încrucișată a două semnale. Se numește o variantă a acestei funcții concepută pentru a funcționa cu semnale bidimensionale xcorr2. Funcţie xcov este destinat estimării funcției de covarianță a unui semnal sau a funcției de covarianță reciprocă a două semnale. Funcții covȘi corrcoef, incluse în biblioteca de bază MATLAB, vă permit să obțineți, respectiv, o matrice de covarianță și o matrice de coeficienți de corelație prin mediarea mai multor realizări de date aleatorii. Funcţie corrmtx returnează o matrice de date intermediare pentru a estima matricea de corelație a semnalului și poate returna, de asemenea, această matrice în sine.

Următorul grup de funcții calculează caracteristicile statistice în domeniul frecvenței folosind metoda neparametrică a lui Welch (vezi mai sus). Funcţie csd destinate evaluării densitatea spectrală reciprocă două procese aleatorii. De asemenea, poate returna un interval de încredere pentru estimarea rezultată. Funcţie coeră oferă o estimare pentru modulul pătrat funcţii de coerenţă reciprocă două procese aleatorii. Funcţie tfe vă permite să evaluați coeficient de transfer complex sistem pentru implementarea semnalelor sale de intrare și ieșire.

În sfârșit, funcția psdplot Folosit de toate funcțiile de estimare spectrală pentru a reprezenta grafic densitatea spectrală de putere. Poate fi, de asemenea, apelat în mod explicit - de exemplu, pentru a afișa un grafic pe o scară liniară în locul celui logaritmic implicit sau pentru a afișa mai multe spectre pe un singur grafic.

Funcții de modelare parametrică și predicție liniară

Sub modelare parametricăînseamnă alegerea unora model matematic proces aleatoriu și selectarea ulterioară a parametrilor acestui model pentru a asigura corespondența maximă între semnalul generat de model și eșantionul de date reale disponibil.

Unul utilizat pe scară largă în practică este modelul autoregresiv (AR), în care un semnal aleator este generat prin trecerea unui zgomot alb discret printr-un filtru de modelare „pur recursiv” (adică, fără a utiliza mostre întârziate ale semnalului de intrare). Patru caracteristici ale pachetului de procesare a semnalului - arburg, arcov, armcovȘi ariule- sunt destinate obținerii estimărilor coeficienților filtrului de modelare și a dispersiei (puterii) zgomotului alb care excită filtrul. Metodele de calcul utilizate de aceste funcții au fost indicate mai devreme, în secțiunea „Metode autoregresive”, unde a fost discutată analiza spectrală autoregresivă.

Daca avem o estimare coeficient de transmisie complex sisteme la frecvențe diferite, este posibil să se construiască un model realizabil al sistemului, al cărui răspuns în frecvență să fie cât mai apropiat de cel măsurat. Realizabilitatea sistemului înseamnă aici reprezentabilitatea funcției sale de transfer sub forma unei funcții raționale fracționale cu ordine date ale polinoamelor numărătorului și numitorului. Modelarea parametrică în acest caz se reduce la găsirea coeficienților optimi ai polinoamelor numărătorului și numitorului funcției de transfer. Aceasta sarcina se rezolvă prin două funcții ale pachetului Signal Processing: funcția invfreqs vă permite să construiți un model de sistem analogic și funcția invfreqz efectuează o operație similară atunci când este aplicată sistemelor discrete.

O altă versiune a problemei de modelare parametrică implică construirea unui model al sistemului pe baza unei estimări existente a acestuia răspuns la impuls. Există două funcții în pachetul de procesare a semnalului în acest scop. Funcţie prony folosește faptul că răspunsul la impuls al unui sistem discret recursiv, în absența polilor multipli, este o sumă de funcții exponențiale discrete (în cazul general complex). Algoritmul implementat de această funcție a fost dezvoltat inițial în secolul al XVIII-lea de către Baron de Prony în scopul de a potrivi parametrii unui model analitic exponențial la datele experimentale. Nu este garantată stabilitatea sistemului rezultat, ci primul n conteaza ( n- ordinea numărătorului funcției de transfer a sistemului) a răspunsului său la impuls specificat în timpul calculului exact coincid cu cele specificate.

A doua funcție de modelare a unui sistem prin răspuns la impuls este funcția stmcb- nu caută să asigure o potrivire exactă a fragmentelor inițiale ale răspunsurilor la impuls - în schimb, minimizează deviație standard caracteristica obținută din cea dată, adică suma pătratelor modulelor diferențelor în eșantioane ale caracteristicilor de impuls obținute și dorite. Funcția implementează metoda iterativă Steiglitz-McBride, care se reduce la rezolvarea repetată a unui sistem de ecuații liniare în raport cu coeficienții polinoamelor funcției de transfer a sistemului dorit.

Ca exemplu, obținem un model de sistem de ordinul trei folosind metodele Prony și Steiglitz-McBride, stabilind un răspuns de impuls triunghiular ca probă:

h = ; % răspuns la impuls
= prony(h, 3, 3); Metoda % Prony
= stmcb(h, 3, 3); % metoda Steiglitz-McBride
% grafice ale răspunsurilor la impuls ale sistemelor rezultate
impz(b1, a1, 30)
titlu ("Prony")
figura
impz(b2, a2, 30)
titlu ("Stmcb")

O comparație a graficelor demonstrează clar diferențele dintre cei doi algoritmi. Când utilizați metoda Prony, primele patru mostre ale răspunsului la impuls rezultat coincid exact cu valorile specificate, cu toate acestea, abaterile suplimentare de la valorile specificate cresc foarte mult, iar după sfârșitul fragmentului specificat, o „coadă” cu o se observă un nivel destul de ridicat, deoarece funcția prony nu face ipoteze cu privire la valorile de răspuns la impuls necesare în afara unui fragment dat. Funcţie stmcb minimizează pătratică eroare de redare fără sfârşit răspuns la impuls, iar la sfârșitul unui fragment specificat explicit este luat în considerare egal cu zero. Ca urmare, nu se observă o corespondență exactă a eșantioanelor cu răspunsurile la impuls date și primite (cu excepția primului), dar eroarea de reproducere a caracteristicii este „răspândită” mai uniform pe probe.

Dacă un proces aleator discret nu este zgomot alb, eșantioanele sale se dovedesc a fi corelatîmpreună. Aceasta permite, cunoscând funcția de corelare a procesului, prezice valoarea următoarei sale numărări. Valoarea estimată este calculată ca o combinație liniară a probelor de proces anterioare. Aceasta este ideea principală predicție liniară. Predicția liniară este utilizată pentru analiza spectrală parametrică (vezi mai devreme), identificarea sistemului, analiza semnalelor de vorbire și compresia informațiilor în timpul transmiterii acestora.

Modelele de sisteme bazate pe predicție liniară pot fi prezentate în diferite forme și, în consecință, descrise folosind diferite seturi de parametri. O serie de funcții din pachetul de procesare a semnalului vă permit să convertiți o descriere a modelului dintr-un formular în altul. Aceste caracteristici sunt enumerate în tabelul următor.

Forma finală

Secvență de autocorelare

Coeficienții de reflexie

Coeficienți de predicție

Parametrii arcsinus

Rapoarte logaritmice

Frecvențele liniilor spectrale

Forma originală

Secvență de autocorelare

ac2rc, schurrc

Coeficienții de reflexie

Coeficienți de predicție

Parametrii arcsinus

Rapoarte logaritmice

Frecvențele liniilor spectrale

În plus, pachetul de procesare a semnalului are câteva alte funcții legate de predicția liniară. Astfel, pentru a calcula coeficienții unui filtru predictiv, este necesar să se rezolve un sistem de ecuații liniare, a cărui matrice este matricea de corelație a semnalului de intrare. Această matrice are o serie de proprietăți care pot reduce numărul de operații de calcul necesare pentru a rezolva un sistem de ecuații liniare. În primul rând, matricea de corelație este autoadjunct(adică nu se schimbă după aplicarea lui Conjugarea hermitiană- combinatii de transpunere cu conjugare complexa). Pentru un semnal real, auto-ajungere înseamnă pur și simplu simetria matricei față de diagonala principală. În al doilea rând, în cazul unui proces aleator staționar (și numai pentru astfel de procese poate fi utilizat un filtru predictiv cu parametri constanți), matricea de corelație este Matricea Toeplitz- de-a lungul diagonalelor sale, paralele cu cea principală, există numere identice. În cele din urmă, partea dreaptă a sistemului de ecuații reprezintă prima coloană a matricei de corelație deplasată cu o poziție. Se numesc sisteme de ecuații liniare cu matrice având proprietățile indicate sisteme de ecuații Yule-Walker, iar pentru a le rezolva un recursiv Metoda Levinson-Durbin. Acest algoritm iterativ este implementat de funcție Levinson. Funcţie rlevinson rezolvă problema inversă - vă permite să găsiți vectorul de eșantioane ale funcției de corelare a semnalului din coeficienții de predicție liniari dați.

Funcţie lpc implementează calculul coeficienților de predicție liniară folosind metoda autocorelației și este un analog al funcției ariule(A se vedea secțiunea anterioară despre analiza spectrală parametrică). Singura diferență dintre cele două funcții este codul MATLAB utilizat pentru a calcula estimarea matricei de corelație. Rezultatele pe care le dau coincid cu acuratețea până la erorile de calcul.

Funcții de generare a semnalului

Pachetul de procesare a semnalului are o serie de funcții concepute pentru a genera forme de undă standard care sunt adesea întâlnite în luarea deciziilor. diverse sarcini procesare a semnalului.

Generarea de semnale neperiodice

Toate funcțiile de generare a semnalelor neperiodice primesc ca parametri un vector de momente de timp și argumente suplimentare care descriu parametrii pulsului generat. Rezultatul returnat este un vector de mostre ale semnalului rezultat. Există funcții pentru generarea de semnale de următoarea formă:

  • rectpuls
  • - generarea unui singur impuls dreptunghiular, singurul parametru suplimentar este durata impulsului;
  • tripuls
  • - generarea unui singur impuls triunghiular, parametri suplimentari sunt durata impulsului și coeficientul de asimetrie al acestuia; - generarea unui impuls cu spectru dreptunghiular, conform formulei sinc( X) = păcat(p X)/(pag X). Această funcție nu are parametri suplimentari;
  • gauspuls
  • - generarea unui impuls radio cu anvelopă gaussiană. Opțiuni suplimentare sunt frecvență purtătoare, lățimea spectrală relativă și nivelul (în decibeli) la care se măsoară această lățime spectrală;
  • gmonopuls
  • - generarea unui monopuls gaussian (forma acestuia este derivata întâi a funcției gaussiene). Un parametru suplimentar este frecventa medie spectrul semnalului generat.

Generarea de semnale periodice

Funcțiile aparținând acestui grup primesc ca parametri un vector de momente în timp și argumente suplimentare care descriu parametrii pulsului generat. Perioada semnalelor generate este de 2p. Pentru a genera semnale cu o perioadă diferită, este necesar să scalați în mod corespunzător argumentul de timp transmis funcției. Rezultatul returnat este un vector de mostre ale semnalului rezultat. Există funcții pentru generarea de semnale periodice de următoarea formă:

  • pătrat
  • - generarea unei succesiuni periodice de impulsuri dreptunghiulare. Un parametru suplimentar este ciclul de lucru al impulsului (raportul dintre durata pulsului și perioada de repetare a pulsului);
  • dinți de ferăstrău
  • - generarea unui semnal periodic cu dinți de ferăstrău. Un parametru suplimentar este coeficientul de asimetrie al impulsurilor triunghiulare care alcătuiesc secvența periodică;
  • diric
  • - Funcția Dirichlet. Un parametru suplimentar este ordinea numărului întreg al funcției. Funcția Dirichlet este calculată folosind formula diric( X) = păcat( nx/2)/(n păcat( X/2));

Generarea de oscilații cu frecvență variabilă

Acest grup include două funcții - ciripitȘi vco. Funcţie ciripit generează oscilații, a căror frecvență instantanee variază în funcție de una dintre cele trei legi posibile - liniară, pătratică sau exponențială. Funcția are mai multe capacități vco(Voltage Controlled Oscillator - oscilator controlat de tensiune), care vă permite să generați oscilații cu o lege arbitrară a modificării frecvenței instantanee. În esență, această funcție realizează modularea în frecvență.

Generarea trenului de impulsuri

Funcţie pulstran servește la generarea unei secvențe finite de impulsuri de aceeași formă cu întârzieri și multiplicatori de amplitudine specificate în mod arbitrar. Forma impulsurilor poate fi specificată într-unul din două moduri: prin numele funcției care generează impulsul sau printr-un vector de probe deja calculat.

Ca exemplu, luați în considerare utilizarea funcțiilor pulstranȘi din moment ce pentru a restabili un semnal analogic din mostrele sale discrete conform teoremei lui Kotelnikov.

t = -5:0,1:10; % timp pentru semnal analogic
k = 0:5; % numărul de mostre ale unui semnal discret
sd = ; % semnal discret
sa = pulstran(t, , "sinc"); % semnal analogic reconstruit
stem(k, sd) % grafic al unui semnal discret
stai
plot(t, sa, "r") % plot al semnalului analogic
retineti

Funcții discrete de conversie a semnalului

Poate cea mai cunoscută dintre transformările semnalelor discrete este transformata Fourier discretă (DFT). Funcția corespunzătoare care utilizează algoritmul de transformare rapidă Fourier (FFT) în MATLAB este clasificată ca o funcție de procesare a datelor și este încorporată (funcții fftȘi ifft- opțiune unidimensională, fft2Și ifft2- versiune bidimensională, fftshiftȘi ifftshift- rearanjarea jumătăților de vector de probe spectrale pentru a transfera frecvența zero la mijlocul vectorului). De fapt, pachetul de procesare a semnalului conține funcții care implementează transformări mai specifice.

Ca orice transformare liniară, DFT poate fi reprezentată ca înmulțirea matricei de transformare cu o coloană de mostre ale semnalului convertit. Această matrice de transformare pentru DFT este calculată de funcție dftmtx.

Din nou, datorită liniarității DFT, orice probă spectrală poate fi reprezentată ca rezultat al procesării semnalului original de către un filtru. Reprezentarea acestui filtru în formă recursivă dă algoritmul lui Goertzel, implementat de funcție goertzel. Dacă trebuie calculate doar câteva mostre spectrale, acest algoritm este mai rapid decât FFT.

O rudă apropiată a DFT este transformata cosinus discretă. Când se calculează, în loc de continuarea periodică a semnalului, care este presupusă în DFT, fragmentele adiacente ale semnalului continuat sunt oglindite în timp. Ca urmare, semnalul devine o funcție uniformă a timpului, iar spectrul său devine real. Din acest motiv, în formula DFT, în loc de exponențiale complexe, apar doar cosinusuri, care au dat numele acestei transformări. Transformările cosinus discrete directe și inverse sunt calculate de funcții dctȘi idct respectiv.

O metodă importantă pentru analiza secvențelor de numere discrete este transformarea z, al cărei rezultat este o funcție a unei variabile complexe. z:

.

Într-o serie de probleme este necesar să se calculeze z-transformare pentru punctele situate pe conturul spiralei: . Un calcul eficient din punct de vedere al transformării z de-a lungul unui astfel de contur utilizează transformata Fourier rapidă; este implementat într-o funcție czt.

La implementarea unor variante ale algoritmului de transformare rapidă Fourier, pentru a crește eficiența, este necesară rearanjarea elementelor vectorului procesat în ordine inversă a biților(aceasta înseamnă că în reprezentările binare ale numerelor de elemente vectoriale, biții sunt citiți ordine inversă, iar apoi vectorul este ordonat în funcție de noile numere ale elementelor). Pentru a efectua o astfel de rearanjare, utilizați funcția bitrevorder.

Când se analizează semnale în bandă îngustă, poate fi util să ne gândim la semnal ca la o oscilație cu amplitudinea și faza inițială care variază în timp. Pentru a obține o astfel de reprezentare, un complex semnal analitic, a cărui parte reală coincide cu semnalul original, iar partea imaginară este determinată Transformarea Hilbert de la semnalul original. În domeniul frecvenței, un semnal analitic este caracterizat de un spectru unilateral: funcția sa spectrală este diferită de zero numai pentru frecvențele pozitive. Funcţie hilbert calculează semnalul analitic în domeniul frecvenței, calculând DFT direct, reducând la zero jumătate din spectru și apoi calculând DFT invers.

De exemplu, să calculăm semnalul analitic pentru un impuls radio dreptunghiular:

s = zerouri(256,1);
s(65:192) = cos(pi/2*(0:127)"); % număr de impulsuri radio
sa = hilbert(s); % semnal analitic
f = (-128:127)/128; Valori % ale frecvențelor normalizate pentru grafice
subplot(2,1,1)
plot(f, abs(fftshift(fft(s)))) % spectru de semnal real
subplot(2,1,2)
plot(f, abs(fftshift(fft(sa)))) % spectru al semnalului analitic

Graficul de jos arată clar reducerea la zero a spectrului în regiunea frecvențelor negative și dublarea acestuia în regiunea frecvențelor pozitive.

Analiza cepstrală

Analiza cepstrală este asociată cu procesarea semnalului homomorf. O astfel de prelucrare este supusă principiului generalizat al suprapunerii: dacă semnalul de intrare al sistemului este o combinație de mai multe semnale obținute folosind o operație matematică A, apoi la ieșire rezultatele procesării semnalelor individuale sunt combinate folosind operația B. Analiza cepstrală și-a găsit aplicația, în special, în problemele de procesare a vorbirii. Procesarea semnalului are mai multe funcții legate de analiza cepstrală.

Funcţie rceps calculează cepstrul real al semnalului, ignorând în același timp informațiile conținute în spectrul de fază. Aceeași funcție vă permite să obțineți reconstrucție în fază minimă semnal. Zerouri z-transformările secvenței de mostre ale unui astfel de semnal se află pe planul complex din interiorul cercului unitar, iar cepstrul acestuia coincide cu cepstrul semnalului original.

Cepstru complex calculat folosind funcția cceps, ia în considerare atât informațiile de amplitudine, cât și de fază, astfel încât relația sa cu semnalul original este unu-la-unu. Transformarea inversă, adică calculul semnalului folosind un cepstru complex cunoscut, este efectuată de funcția icceps.

Modificarea ratei de eșantionare

Transformările includ, de asemenea, un grup de funcții care modifică frecvența de eșantionare a unui semnal. Cel mai adesea, rata de eșantionare trebuie modificată printr-un factor întreg. În cazul creșterii frecvenței de eșantionare, se numește această operație interpolare, iar în caz de scădere - subţierea(decimare). Orice recalculare a ratei de eșantionare necesită executarea secvențială a mai multor acțiuni. Pachetul de procesare a semnalului conține funcții care implementează atât acțiunile individuale, cât și secvențele lor necesare.

Pentru a efectua interpolarea, numărul necesar de zerouri este introdus între mostrele de semnal (funcția supraeșantionare), apoi semnalul rezultat este trecut printr-un filtru trece-jos. Împreună, aceste două etape sunt implementate de funcție interp.

Pentru a efectua decimarea, semnalul este trecut printr-un filtru trece-jos și apoi fiecare N al-lea număr (funcție subesantionare). Împreună, aceste două etape sunt implementate de funcție decima.

Combinația de operații de interpolare și decimare vă permite să modificați frecvența de eșantionare cu un factor exprimat printr-o fracție rațională arbitrară. Pentru a crește eficiența calculelor, o astfel de recalculare este efectuată de o funcție specializată reeșantionațiși, la rândul său, apelează funcția upfirdn(inserarea de zerouri, filtrare și subțiere). Principala diferență dintre aceste două funcții este aceea că upfirdn vă permite să setați răspunsul la impuls al filtrului utilizat și atunci când utilizați funcția reeșantionați filtrul este calculat automat.

În cele din urmă, pentru recalcularea absolut arbitrară a momentelor de referință, acestea pot fi utilizate funcții generale interpolări conținute în biblioteca de bază MATLAB, cum ar fi interp1Și splina.

Ca exemplu, să interpolăm semnalul folosit mai sus pentru a demonstra funcțiile pulstranȘi din moment ce, crescând rata de eșantionare de patru ori. La marginile semnalului sunt adăugate zero eșantioane, deoarece funcția interp necesită ca lungimea secvenței originale să fie de cel puțin nouă eșantioane.

sd = ; % semnal original
t = 0:9; % timp discret pentru semnalul original
sd4 = interp(sd, 4); % interpolare
t4 = (0:39)/4; % timp discret pentru semnalul interpolat
stem(t, sd) % grafic al semnalului original
stai
plot(t4, sd4, "x") % plot din semnalul interpolat
retineti

În graficul prezentat, semnalul original este afișat ca „tulpini”, iar semnalul interpolat este afișat ca cruci.

Acest grup conține un număr destul de mare de funcții. Multe dintre ele sunt destinate în principal pentru „utilizare internă” - sunt numite de alte funcții din pachet. Cu toate acestea, o serie de funcții din această categorie au o valoare complet independentă.

Funcţie tampon vă permite să reprezentați un vector de mostre de semnal într-o matrice de cadre succesive, iar aceste cadre se pot suprapune.

Funcții modȘi demod efectuează modularea și respectiv demodularea. Sprijinit următoarele tipuri modulații: amplitudine, amplitudine cu purtătoare suprimată, bandă laterală unică, fază, frecvență, cuadratura, lățime a impulsului, puls timp.

Funcții unencodeȘi udecode implementează, respectiv, cuantificare uniformă și restabilire a semnalului în funcție de numărul de niveluri de cuantizare.

Funcţie benzi conceput pentru a afișa un grafic de semnal pe mai multe linii. Acest lucru poate fi util dacă trebuie să priviți un semnal lung în întregime, iar rezoluția de-a lungul axei verticale nu este de mare importanță.

O familie de funcții ale căror nume încep cu simboluri dpss, este destinat calculării funcțiilor sferoidale prolate discrete și lucrând cu o bază de date concepută pentru a stoca funcțiile calculate. Funcțiile sferoidale prolate discrete sunt utilizate în analiza spectrală prin metoda Thomson (vezi secțiunea de mai sus „Funcțiile analizei spectrale și procesarea statistică a semnalului”, subsecțiunea „Metode neparametrice”).

Funcții cell2sosȘi sos2cell vă permit să stocați informații despre filtru, prezentate sub formă de secțiuni incluse secvențial de ordinul doi, nu numai sub forma unei matrice, ci și sub forma unei matrice de celule. Aceste două funcții efectuează conversie de reprezentare între aceste două forme.

Funcţie specgrama efectuează calculul spectrogramei semnalului, adică spectrele fragmentelor de semnal succesive izolate cu ajutorul unei ferestre glisante. Rezultatele calculului pot fi returnate ca o matrice sau afișate color în coordonate timp-frecvență.

Funcţie cplxpair identifică perechi conjugate complexe în vectori de numere complexe.

Funcţie eqtflength vă permite să egalizați lungimile a doi vectori prin umplerea celui mai scurt cu zerouri finale.

Funcţie seqperiod este conceput pentru a verifica periodicitatea elementelor vectoriale și pentru a determina perioada de repetare a acestora.

Programul de analiză și sinteză a filtrelor FDATool (Filter Design & Analysis Tool) este un shell pentru apelarea funcțiilor pentru sinteza și analiza filtrelor discrete. Dacă aveți pachetul Filter Design Toolbox acest program de asemenea, vă permite să analizați efectele asociate cuantificării coeficienților de filtru și să faceți conversii ale tipurilor de filtre (filtru trece jos în filtru trece înalt etc.).

Programul vă permite nu numai să calculați filtrele de la zero, ci și să salvați și să încărcați sesiuni de lucru și să editați filtrele salvate anterior. De asemenea, puteți importa definiții de filtre din spațiul de lucru MATLAB sau din fișierele XILINX CORE Generator (*.coe). Filtrele importate pot fi doar analizate.

În timpul analizei, puteți vizualiza următoarele caracteristici ale filtrului (în ultimele versiuni pachet, puteți vizualiza mai multe diagrame simultan):

  • Răspuns amplitudine-frecvență (AFC).
  • Răspuns în frecvență de fază (PFC).
  • Răspuns în frecvență și răspuns de fază simultan.
  • Întârziere de grup.
  • Întârziere de fază.
  • Răspuns la impuls.
  • Caracteristica de tranziție.
  • Locația zerourilor și a polilor pe planul complex.
  • Coeficienții de filtrare.
  • Informații despre structura filtrului.

Filtrul calculat poate fi utilizat după cum urmează:

  • Salvați sesiunea de lucru pentru încărcarea ulterioară în programul FDATool pentru editare și analiză ulterioară.
  • Exportați în spațiul de lucru MATLAB.
  • Exportați într-un fișier text.
  • Exportați în fișierul MAT.
  • Exportați într-un fișier antet C (*.h).
  • Exportați în SPTool (vezi mai jos).

Figura de mai jos arată fereastra programului FDATool cu ​​rezultatele calculării unui filtru trece-jos eliptic utilizând metoda biliniară z-transform. Sunt afișate grafice de răspuns în frecvență și de întârziere de grup.

Programul de procesare a semnalului SPTool (Signal Processing Tool) vă permite să efectuați urmatoarele operatii: Importați semnale din fișiere MAT sau spațiu de lucru MATLAB; vizualizați grafice de semnal (inclusiv mai multe simultan); se aplică semnalelor diverse metode analiza spectrală și vizualizarea graficelor rezultate; calculați filtre discrete folosind funcții de pachet (inclusiv prin editarea directă a locației zerourilor și polilor); trece semnalele prin filtre și analizează semnalele de ieșire rezultate.

Trebuie remarcat faptul că în ceea ce privește analiza și sinteza filtrelor, capacitățile programului SPTool sunt mai înguste decât cele ale programului FDATool (singura excepție este că FDATool nu are capacitatea de a edita direct locația zerourilor și a polilor) . Cu toate acestea, aceste limitări sunt compensate de capacitatea de a exporta filtrul calculat de la FDATool la SPTool.

Figurile de mai jos arată aspectul ferestrei programului SPTool la vizualizarea unui grafic de semnal, la analizarea unui spectru și la editarea locației zerourilor și polilor filtrului.

Programul WinTool (Window Design and Analysis Tool) pentru sinteza și analiza funcțiilor de greutate (fereastră), care a apărut în versiunea 6.0 (R13) a pachetului, este un shell pentru apelarea funcțiilor de calcul ferestre disponibile în pachet. Aceasta demonstrează caracteristicile unei ferestre (sau mai multor ferestre simultan) în domeniile timp și frecvență.

Figura de mai jos arată fereastra WinTool cu ​​rezultatele calculării unei ferestre Chebyshev de ordinul 64 cu un nivel spectral al lobului lateral de –100 dB. Sunt afișate graficul domeniului temporal al ferestrei și spectrul acesteia.