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

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 eșantioner 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 - încă trebuie 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

Întrucât parametrii osciloscopului au fost setați astfel încât matrice bidimensională 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ă circumstanță poate fi luată în considerare cu ușurință, realizându-se o coincidență 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.

Descris metode de bazăși algoritmi prelucrare digitală semnale și mijloacele acestora modelare pe calculatorîn MATLAB. Sunt prezentate elementele de bază ale limbajului algoritmic MATLAB. Sunt luate în considerare semnale discrete, sisteme discrete liniare, transformată Fourier discretă utilizând algoritmi FFT, sinteza și analiza filtrelor FIR și IIR, inclusiv punct fix, analiza spectrală a semnalelor, procesarea semnalului multi-rate și filtrarea digitală adaptivă. Tehnologia predării în procesul de modelare computerizată pe baza programelor create de autori sau GUI Utilizatorul MATLAB extinde cunoștințele teoretice și vă permite să înțelegeți multe probleme și aspecte importante aplicație practică Metode și algoritmi 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țiul de lucru Memoria spațiului 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. Sarcina de laborator*.
8.4. Un fișier script tipic pentru efectuarea lucrărilor de laborator.
8.4.1. Folosit funcții externe.
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 circumvoluț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 parogramei Daniell.
16.1.4. Metoda parodogramei lui Bartlett.
16.1.5. Metoda parogramei 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. 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 Procesare digitală a semnalului. Modelare în MATLAB / A. I. Solonina, S. M. Arbuzov. - Sankt Petersburg: BHV-Petersburg, 2008. - 816 p.: ill. - (Tutorial) ISBN 978-5-9775-0259-7 Sunt luate în considerare metodele și algoritmii de bază de procesare a semnalului digital (DSP) și modelarea lor computerizată folosind sistemul MATLAB. Sunt prezentate principalele moduri de funcționare ale sistemului MATLAB, calcule matriceale, metode numerice standard și reprezentare grafică. Specificul reprezentării semnalelor și sistemelor DSP pe limbajul MATLAB, descrie sisteme discrete liniare, sinteza filtrelor FIR și IIR, filtrarea digitală adaptivă, cuantizarea, wavelets și modelarea acestor obiecte și procese DSP software MATLAB, precum și o serie de programe grafice incluse în pachetul de extensie 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 28.02.2007. emis Serviciul federal privind supravegherea în domeniul protecției drepturilor consumatorilor și al bunăstării umane. 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: salva comenzile, sarcina .................................53 2.10. Creare propriul 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. Modelare liniară sisteme discreteîn domeniul timpului....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: funcții sos, scară ..................................... ............................................................... ..................... ..........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ță Filtre 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. Analiza 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. Import fișiere 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. Sinteză convertoare 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. Import 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 anul trecut Disciplina „Procesarea semnalului digital” și modificările acesteia sunt incluse în standardele educaționale generale ale universităților ruse. 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ă aplicată, care nu sunt fragmentare, ci sunt în întregime dedicate modelării în MATLAB, de exemplu, cartea lui R. Gonzalez și colab. „Digital image processing in 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 această carte acoperă metode și algoritmi de bază DSP, baza teoretica care sunt prezentate în multe surse, inclusiv manual de aceiași autori, „Fundamentals of Digital Signal Processing”, editura „BHV-Petersburg”, 2005. (În viitorul apropiat, a treia sa 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 mijloacelor oferite pentru rezolvarea problemelor, pot fi înțelese doar în practică, implicând sistem puternic 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ță competențe inițiale, stăpânire tehnici tipiceși definiții ale vectorului de căutare în vastul sistem MATLAB, pe care autorii au încercat să le sistematizeze și să le 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].

Scopul lucrării de laborator este de a studia metodologia de dezvoltare a programelor pentru tipuri complexe de procesare a semnalului digital, inclusiv o combinație de operații cheie (FFT, corelație, aproximare spline și reeșantionare).

Misiunea pentru muncă

Există un set de date experimentale sub forma unui tablou numeric. Este necesar să se proiecteze un program digital de procesare a datelor în limbajul intern MATLAB care implementează o determinare precisă a numărului de perioade de semnal și a frecvenței în domeniul timpului folosind mai multe operațiuni cheie DSP: FFT, corelație, aproximare spline și reeșantionare.

Baza teoretica

Una dintre cele mai importante sarcini ale procesării digitale a semnalelor zgomotoase este detectarea unui semnal informativ într-un flux de date distorsionat de zgomot și interferențe și determinarea parametrilor acestuia. Pentru aceasta se folosesc diverse metode, precum filtrarea în timp (acumularea), filtrarea optimă a frecvenței, transformarea Fourier directă și inversă și procesarea corelației. Fiecare dintre aceste operații vă permite să efectuați transformări ale semnalului original, de exemplu, trecerea unui semnal din domeniul timpului în domeniul frecvenței sau invers, iar acest lucru reduce nivelul de zgomot din semnalul procesat. În sarcinile de detectare și determinare a parametrilor semnalelor zgomotoase, îmbunătățirea efectului de suprimare a zgomotului și creșterea preciziei determinării parametrilor semnalului poate fi realizată folosind mai multe metode de procesare digitală în combinație. Un exemplu ar fi sarcina de a procesa semnalul ecou al unui spectrometru RMN

Rezultatul FFT al unui semnal ecou al spectrometrului RMN eșantionat de o anumită frecvență este numărul de perioade de semnal din fereastra de timp. Dacă se cunoaște frecvența de eșantionare sau intervalul de timp discret când se măsoară un semnal, atunci frecvența semnalului măsurat poate fi determinată de numărul de perioade din fereastra de timp. Precizia determinării frecvenței în spectrul semnalului de intrare este destul de definită și depinde de numărul de perioade p ale semnalului. Dacă numărul de perioade este un întreg, atunci frecvența poate fi găsită cu absolut exactitate folosind FFT (în absența zgomotului de semnal). Dacă numărul de perioade nu este un întreg, atunci apare o eroare în determinarea frecvenței. Valoarea maximă a erorii este 1/p. În unele cazuri practic importante, de exemplu, la procesarea semnalelor de ecou (Fig. 1) ale spectrometrelor RMN pulsate, numărul de perioade ale semnalului analizat într-o fereastră de timp este limitat în mod fundamental la aproximativ 10. În acest caz, eroarea în determinarea frecvenței folosind FFT ajunge la 1/10, adică 10%.

Influența zgomotului în semnalul înregistrat în domeniul temporal poate fi redusă semnificativ prin repetarea experimentului de mai multe ori și acumularea sincronă a semnalelor de ecou (vezi Fig. 1).

Orez. 1. Semnal inițial (A) și acumulat (B) în borat de fier.

Cu toate acestea, așa cum se arată în , creșterea numărului de acumulări face posibilă îmbunătățirea raportului semnal-zgomot fără a distorsiona forma și reducerea amplitudinii semnalului de ecou acumulat doar la o anumită limită. După această limită, acumularea nu mai aduce o îmbunătățire vizibilă a calității. În special, cu un timp de acumulare lung, semnalul de ecou începe să fie afectat de modificări treptate ale parametrilor dispozitivelor incluse în spectrometrul RMN pulsat. Atunci când se limitează timpul de analiză a substanțelor, numărul de posibile acumulări de semnal ar trebui să fie limitat sau absent cu totul. Problema procesării semnalelor de ecou în condiții de zgomot semnificativ apare și atunci când este nevoie de studierea substanțelor de concentrație scăzută. Prin urmare, sarcina de a efectua analiza de frecvență a semnalelor de eco zgomotoase este relevantă.

Utilizarea directă a FFT pentru un semnal zgomotos nu permite obținerea unei valori precise pentru numărul de perioade din fereastra de timp și frecvența semnalului măsurat în cazul în care numărul de perioade nu este un întreg, când analiza semnalul ocupă doar o parte din domeniul temporal, este modulat în amplitudine și este zgomotos. În cazurile practic importante de analiză a frecvenței semnalelor de la spectrometrele RMN, se cunosc forma și faza inițială a semnalelor eco. Acest lucru face posibilă crearea semnalelor de referință corespunzătoare semnalului de eco așteptat ca formă și faza inițială și să se facă compararea corelației acestora. Coeficientul de corelație al semnalului de ecou cu semnalul de referință va fi egal cu unu, dacă frecvențele semnalului de ecou și ale semnalului de referință sunt egale și semnalul de ecou nu este zgomotos. Prin urmare, în absența zgomotului, frecvența semnalului de ecou poate fi găsită făcând o comparație de corelație cu semnalele de referință; frecvența semnalelor de referință poate fi selectată până când este îndeplinită condiția când coeficientul de corelație este egal cu unitatea. Totuși, coeficientul de corelație scade atât când frecvențele semnalelor de ecou și de referință diferă, cât și când frecvențele coincid, dar din cauza prezenței zgomotului. Prin urmare, este imposibil să se determine frecvența unui semnal zgomotos în acest fel.

Îmbunătățirea algoritmului de determinare a frecvenței semnalului se realizează prin combinarea calităților pozitive ale abordării corelației și FFT pentru a crește acuratețea determinării frecvenței semnalului eșantionat în condițiile în care semnalul procesat în domeniul timp este zgomotos, numărul de perioade nu este un întreg, semnalul este modulat în amplitudine, iar numărul de perioade de semnal este mic.

Ideea algoritmului propus, descris în, este că într-o apropiere mică a frecvenței semnalului așteptat sau a numărului de perioade (valoarea aproximativă a frecvenței semnalului poate fi găsită folosind transformata Fourier rapidă), coeficienții de corelație sunt calculati cu mai multe semnale de referință într-o anumită vecinătate a valorii aproximative, apoi, folosind interpolarea spline și reeșantionarea, se construiește o funcție care exprimă dependența coeficientului de corelație de frecvența standardelor și se găsește maximul acestei funcții; maximul este folosit pentru a determina frecvența semnalului standard. Funcția astfel construită are forma unei parabole cu un maxim clar definit (vezi Fig. 2) atât în ​​cazul unui semnal nezgomotos, cât și în cazul unui semnal zgomotos, ceea ce face posibilă determinarea mai precisă a frecvenței semnalului ecou. decât permite FFT. În prezența zgomotului, forma funcției este păstrată, doar valoarea absolută a maximului scade.

Orez. Fig. 2. Dependența coeficientului de corelație de frecvență în absența zgomotului (A) și cu un raport semnal-zgomot de 1/3 (B). Valoarea exactă a frecvenței este 1010. Curbele de potrivire sunt construite folosind funcția de ajustare spline spaps din MATLAB.

Cu cât aproximarea inițială este mai apropiată de frecvența adevărată, cu atât este mai mare acuratețea determinării frecvenței semnalului. Prin urmare, se utilizează un calcul iterativ; la fiecare etapă de iterație, valoarea rafinată a frecvenței obținute în etapa anterioară este utilizată ca o aproximare inițială. Frecvența determinată folosind FFT este luată ca primă aproximare.

Numărul de iterații pentru a calcula frecvența cu o precizie dată folosind algoritmul descris depinde de cât de aproape este aproximarea inițială de frecvența dorită.

Investigați eficiența utilizării combinate a mai multor operațiuni de procesare digitală și a unui proces iterativ pentru a determina numărul de perioade și frecvența unui semnal în comparație cu utilizarea unei transformate Fourier rapide pentru a rezolva această problemă. Efectuați cercetări pentru diferite condiții:

    Pentru diverse cantitati iterații.

    Cu un număr întreg și non-întreg de perioade de semnal mai mici de 10.

    La diferite niveluri de zgomot ale semnalului

Instrucțiuni pentru implementare

1. Folosiți ca bază programul din anexă.

2. Faceți calcule pe baza rezultatelor primei și a doua iterații separat. Ca valoare aproximativă a numărului de perioade la prima iterație, luați rezultatul obținut folosind FFT; pentru a 2-a iterație, luați valoarea numărului de perioade rafinate ca urmare a primei iterații, valoarea vecinătății de lângă valoarea rafinată a numărului de perioade în care sunt create semnale de referință (parametrul procch în program) scade de m ori, m<=10.

3. Când studiați efectul creșterii preciziei determinării numărului de perioade și a frecvenței unui semnal în comparație cu FFT din cauza operațiunilor suplimentare de procesare digitală, măsurați numărul de perioade și frecvența semnalului în intervalul numărului de perioade de la K la K+1 cu un pas de 0,05 și calculați erorile maxime, medii și pătrate medii în determinarea numărului de perioade și a frecvenței semnalului în acest interval.

4. Când studiați efectul creșterii preciziei determinării numărului de perioade și frecvență a unui semnal în comparație cu FFT datorită operațiunilor suplimentare de procesare digitală atunci când semnalul este zgomotos, măsurați numărul de perioade și frecvența semnalului în interval a numărului de perioade de la K la K+1 cu un pas de 0,05 la valorile amplitudinii zgomotului de la 0 la 1 cu un pas de 0,1 și se calculează erorile maxime, medii și pătratice în determinarea numărului de perioade și frecvență a semnalului în acest interval pentru fiecare nivel de zgomot.

5. Când studiați dependența erorii în determinarea numărului de perioade și a frecvenței semnalului de numărul de perioade ale semnalului folosind FFT și metoda combinată, efectuați pașii 2 și 3 la valorile K = 2, 3 , ... 10 și reprezentați grafic dependența erorilor maxime, medii și pătrate medii în funcție de numărul de perioade de semnal.

    Misiunea pentru muncă.

    Textul programului dezvoltat.

    Grafice ale dependenței erorilor maxime, medii și pătrate medie la la diferite niveluri zgomot asupra numărului de perioade de semnal pentru FFT și metoda de procesare combinată studiată.

Aplicație. Textul programului de bază.

Utilizarea combinată a operațiunilor cheie DSP

Pentru a îmbunătăți acuratețea determinării numărului de perioade și frecvență

Se folosește combinația de semnal % „scurtă”.

%FFT, corelație încrucișată, aproximare spline, reeșantionare

kt=1024; % număr de numărări

f=12; %frecvența semnalului

dt=2;% pas de timp în timpul măsurării

kp=4,5;%număr de perioade de semnal

%1. GENERAREA SEMNALULUI DE MODEL

pentru i=1:kt %zeroarea matricei de semnal

pentru i=1:kt %generarea semnalului modelului

dacă(i>0)&(i<=kt/2)

y(i)=sin(2*3,14*kp*i/kt)*i*exp(i/k2)/1200;

dacă(i>kt/2)&(i<(kt))

y(i)=sin(2*3,14*kp*i/kt)*(kt-i)*exp((kt-i)/k2)/1200;

y(i)=y(i)+shum*(2*rand(1)-1);

i=1:kt; %afisare a semnalului modelului in domeniul timpului

titlu ("Domeniul timpului")

xlabel(„Numărul eșantionului”)

%2. TRANSFORMARE FUNCȚIONALĂ (FFT)

bpfy=fft(y,kt);%FFT

bpf=bpfy.*conj(bpfy)/kt;%FFT

%f=1000*(0:256)/512;

plot(i(1:257),bpf(1:257));

title(„Domeniul de frecvență”)

xlabel(„frecvență”)

% găsire max. sens Funcții FFT pentru tabloul Y

pentru i=1:kt %căutați numărul de perioade corespunzător FFT maximă

%3. BENCHMARKING ȘI CORELARE ÎNcrucișată

procch=0,1;%zonă de căutare în procente relativ. kp_bpf

shagkor=fr*procch/3;%pas de căutare

pentru iii=fr-fr*procch:shagkor:fr+fr*procch %cycle pentru a crea 6 standarde în vecinătatea unuia aproximativ

%valoarea numărului de perioade determinate folosind FFT.

%Calculul rețelelor de semnal de referință

dacă(i>0)&(i<=kt/2)

x(i)=sin(2*3,14*iii*i/kt)*i*exp(i/k2)/1200;

dacă(i>kt/2)&(i<(kt))

x(i)=sin(2*3,14*iii*i/kt)*(kt-i)*exp((kt-i)/k2)/1200;

%calcularea valorilor medii ale semnalelor de model și de referință

%calcularea abaterii standard și a coeficientului. corelarea semnalelor de model și de referință

x_sko=x_sko+(x(i)-x_sr)*(x(i)-x_sr);

y_sko=y_sko+(y(i)-y_sr)*(y(i)-y_sr);

kor(k)=kor(k)+(x(i)-x_sr)*(y(i)-y_sr);

kor(k)=kor(k)/(sqrt(x_sko*y_sko));

sfârşitul % sfârşitul ciclului de creare a standardelor şi calcularea matricei de coeficienţi. corr.

%SPLINE APROXIMAREA ȘI RESAMPLARE

r1=sin(xx); %doar pentru testarea ajustării spline

yint=interp1(xx,kor,xi,"spline");% coeficient de corelație de aproximare spline

%%apr=csaps(xx,r1);

apr=spaps(xkor,kor,0.000001);%%%%%%%%%%%%%%%%%

plot(xkor,r1,"ro")%%%%%%%%%%%%%%%%%%

%GĂSIREA VALORII RAFINITATE A NUMĂRULUI DE PERIOADE DE SEMNAL

cmax=max(yint); %găsirea coeficientului maxim. corr.

pentru i=1:rotund((k-1)/0,1+1)

dacă (yint(i)==cmax)

kp_int=fr-fr*procch+(i-1)*shagkor/10% valoarea frecvenței specificate în funcție de funcția de coeficient MAX. corr.