7. Procesarea semnalului

Această lecție descrie elementele de bază ale procesării semnalului.

Cuprins:

7.1 Transformata Fourier discretă (DFT) și transformata Fourier rapidă (FFT)

7.2 Magnitudine și fază

7.3 Scurgerea spectrală și ferestre de netezire

7.4 Filtrare și necesitatea ei

7.5 Diferențele dintre filtrele IIR și FIR

7.1 Transformata Fourier discretă (DFT) și Transformata Fourier rapidă (FFT)

Eșantioanele unui semnal obținute de la un dispozitiv DAQ constituie reprezentarea în domeniul-timp a semnalului. Această reprezentare redă amplitudinile semnalului la momentul în care este eșantionat. În multe cazuri, poate doriți să cunoașteți conținutul de frecvență al unui semnal, mai degrabă decât amplitudinile eșantioanelor individuale. Reprezentarea unui semnal în termeni de componentele sale individuale de frecvență este cunoscută ca reprezentarea în domeniul-frecvență a semnalului. Reprezentarea în domeniul-frecvență poate oferi mai multe informații despre semnal și sistemul din care a fost generat.

Algoritmul utilizat pentru transformarea eșantioanelor de date din domeniul-timp în domeniul-frecvență este cunoscut sub numele de transformată Fourier discretă sau DFT. DFT stabilește relația dintre eșantioanele unui semnal în domeniul-timp și reprezentarea lor în domeniul-frecvență, așa cum se arată în figura următoare. DFT este utilizată în domeniile analizei spectrale, mecanicii aplicate, acusticii, imagisticii medicale, analizei numerice, instrumentației și telecomunicațiilor.

Dacă obțineți N eșantioane ale unui semnal de la un dispozitiv DAQ și aplicați DFT la N eșantioane ale reprezentării în domeniul-timp al semnalului, rezultatul este, de asemenea, de lungime N eșantioane, dar informația pe care o conține este reprezentarea în domeniul-frecvență.

Dacă semnalul este eșantionat la o rată de eșantionare de fs Hz, intervalul de timp dintre eșantioane (intervalul de eșantionare) este Δt, unde

Δt = 1 / fs

Semnalele eșantion sunt notate cu x [i], 0 ≤ i ≤ N - 1 (adică aveți un total de N eșantioane). Când transforma Fourier discretă, dată de

(7-1)

se aplică acestor N eșantioane, ieșirea rezultată (X[k], 0 ≤ k ≤ N - 1) este reprezentarea în domeniul-frecvență a lui x[i]. Observați că atât domeniul- timp x, cât și domeniul-frecvență X au un total de N eșantioane.

Analog cu distanța în timp Δt între eșantioanele lui x în domeniul-timp, aveți o distanță în frecvență de

între componentele lui X în domeniul-frecvență. Δf este, de asemenea, cunoscută sub numele de rezoluție de frecvență. Pentru a crește rezoluția de frecvență (Δf mai mică), fie creșteți numărul de eșantioane N cu fs constantă, fie reduceți frecvența de eșantionare fs cu N constant.

Exemplu de calcul DFT

Presupunem că X[0] corespunde la DC, sau valoarea medie, a semnalului. Pentru a vedea rezultatul calculării DFT a unei forme de undă cu ajutorul ecuației 7-1, luați în considerare un semnal DC cu o amplitudine constantă de +1 V. Sunt prelevate patru eșantioane ale acestui semnal, așa cum se arată în ilustrația următoare.

Fiecare dintre eșantioane are o valoare +1, oferind secvența de timp

x[0] = x[1] = x[2] = x[3] = 1

Folosind ecuația 7-1 pentru a calcula DFT a acestei secvențe și făcând uz de identitatea lui Euler,

exp (–jθ) = cos (θ) - jsin (θ)

rezultă în:

Cu excepția componentei DC, X[0], toate celelalte valori sunt zero, așa cum era de așteptat. Dar, valoarea calculată a lui X[0] depinde de valoarea lui N (numărul de eșantioane). Deoarece ați avut N = 4, X[0] = 4. Dacă N = 10, ați fi calculat X[0] = 10. Această dependență a lui X[.] de N apare și pentru celelalte componente de frecvență. De obicei, împărțiți ieșirea DFT la N pentru a obține magnitudinea corectă a componentei de frecvență.

7.2 Informații despre magnitudine și fază

Ați văzut că N eșantioane ale semnalului de intrare rezultă în N eșantioane ale DFT. Adică, numărul de eșantioane atât în ​​reprezentările de timp, cât și de frecvență este același. Din ecuația 7-1, vedeți că, indiferent dacă semnalul de intrare x[i] este real sau complex, X[k] este întotdeauna complex, deși partea imaginară poate fi zero. Deoarece DFT este complexă, conține două informații: amplitudinea și faza. Pentru semnale reale (x[i] reale), cum ar fi cele obținute de la ieșirea unui canal al unui dispozitiv DAQ, DFT este simetrică față de indicele N/2 cu următoarele proprietăți:

|X[k]| = |X[N–k]| și faza (X[k]) = – faza (X[N–k])

Magnitudinea lui X[k] este cunoscută ca simetrie pară, iar faza (X[k]) este cunoscută ca simetrie impară. Un semnal simetric par este unul care este simetric față de axa y, în timp ce un semnal simetric impar este simetric față de origine. Următoarea ilustrație demonstrează această simetrie.

Efectul net al acestei simetrii este repetarea informațiilor conținute în N eșantioane ale DFT. Datorită acestei repetări de informații, doar jumătate din eșantioanele DFT trebuie să fie de fapt calculate sau afișate. Cealaltă jumătate poate fi obținută din această repetare.

Notă Dacă semnalul de intrare este complex, DFT este nesimetric și nu puteți utiliza această metodă.

Distanța în frecvență și simetria DFT / FFT

Deoarece intervalul de eșantionare este Δt secunde și dacă primul eșantion de date (k = 0) se presupune a fi la 0 secunde, eșantionul de date k (k> 0, k întreg) este la kΔt secunde. Similar, rezoluția de frecvență fiind Δf, (unde Δf = fs/N), înseamnă că eșantionul k al DFT apare la o frecvență kΔf ​​Hz. Acest lucru este valabil doar pentru aproximativ jumătate din numărul eșantioanelor. Cealaltă jumătate reprezintă componente de frecvență negative. În funcție de numărul de eșantioane, N, par sau impar, puteți avea o interpretare diferită a frecvenței care corespunde celui de-al k eșantion al DFT.

Număr par de eșantioane

Să presupunem că N este par și că p = N/2.
Tabelul următor arată frecvența la care corespunde fiecare element al secvenței de ieșire complexe X.

Elementul p, X[p], corespunde frecvenței Nyquist. Intrările negative din a doua coloană dincolo de frecvența Nyquist reprezintă frecvențe negative.
De exemplu, dacă N = 8, p = N/2 = 4, atunci

X[0]DC
X[1]Δf
X[2]2Δf
X[3]3Δf
X[4]4Δf (frecv. Nyquist)
X[5]–3Δf
X[6]–2Δf
X[7]–Δf

[1] și X[7] au aceeași magnitudine, X[2] și X[6] au aceeași magnitudine, și X[3] și X[5] au aceeași magnitudine. Diferența este că întrucât X[1], X[2] și X[3] corespund componentelor de frecvență pozitive, X[5], X[6] și X[7] corespund componentelor de frecvență negative. Observați că X[4] este la frecvența Nyquist.

Următoarea ilustrație reprezintă această secvență complexă pentru N = 8.

Acest tip de reprezentare, unde vedeți atât frecvențele pozitive, cât și cele negative, este cunoscut sub numele de transformată bilaterală.

Număr impar de eșantioane

Presupunem că N este impar. Fie p = (N-1)/2. Tabelul următor arată frecvența la care corespunde fiecare element al secvenței de ieșire complexe X.

Când N este impar, N/2 nu este un număr întreg. Prin urmare, nu există nici o componentă la frecvența Nyquist.
Dacă N = 7, p = (N– 1)/2 = (7-1)/2 = 3, și aveți

X[0]DC
X[1]Δf
X[2]2Δf
X[3]3Δf
X[4]–3Δf
X[5]–2Δf
X[6]–Δf

X[1] și X[6] au aceeași magnitudine, X[2] și X[5] au aceeași magnitudine, și X[3] și X[4] au aceeași magnitudine. Însă, în timp ce X[1], X[2] și X[3] corespund frecvențelor pozitive, X[4], X[5] și X[6] corespund frecvențelor negative. Deoarece N este impar, nu există nici o componentă la frecvența Nyquist.

Următoarea ilustrație reprezintă tabelul precedent pentru N = 7.

Aceasta este, de asemenea, o transforma bilaterală, deoarece aveți atât frecvențe pozitive, cât și negative.

Transformate Fourier rapide

Implementarea directă a DFT, ca în ecuația 7-1, pe N eșantioane de date necesită aproximativ N2 operațiuni complexe și este un proces care necesită mult timp. Dar, atunci când dimensiunea secvenței este o putere a lui 2,

N = 2m pentru m = 1, 2, 3, ...

puteți implementa calculul DFT cu aproximativ N log2 (N) operațiuni. Acest lucru face calculul DFT mult mai rapid. Literatura DSP se referă la acești algoritmi ca transformate Fourier rapide (FFT). FFT este un algoritm rapid pentru calcularea DFT atunci când numărul de eșantioane (N) este o putere a lui 2.

Avantajele FFT includ viteza și eficiența memoriei, deoarece VI-ul efectuează transformata pe loc. Mărimea secvenței de intrare trebuie să fie o putere a lui 2. DFT poate procesa orice secvență de dimensiuni în mod eficient, dar DFT este mai lentă decât FFT și folosește mai multă memorie, deoarece stochează rezultate intermediare în timpul procesării.

Umplerea cu zero

O tehnică utilizată pentru a face dimensiunea secvenței de intrare egală cu o putere a lui 2 este să adăugați zerouri la sfârșitul secvenței, astfel încât numărul total de eșantioane să fie egal cu următoarea putere mai mare a lui 2. De exemplu, dacă aveți 10 eșantioane dintr-un semnal, puteți adăuga șase zerouri pentru a face numărul total de eșantioane egal cu 16 (= 24, o putere a lui 2). Figura următoare ilustrează acest concept.

Pe lângă faptul că face numărul total de eșantioane o putere a lui 2, astfel încât calculul mai rapid este posibil prin utilizarea FFT, umplerea cu zero ajută, de asemenea, la creșterea rezoluției de frecvență (reamintim că Δf = fs/N) prin creșterea numărului de eșantioane, N .

7.3. Spectrul de putere

DFT sau FFT al unui semnal real este un număr complex, având părți reală și imaginară. Puterea din fiecare componentă de frecvență reprezentată de DFT/FFT poate fi obținută prin pătratul magnitudinii componentei de frecvență respective. Prin urmare, puterea în componenta de frecvență k (elementul k al DFT/FFT) este dată de |X[k]|2. Graficul care arată puterea în fiecare dintre componentele de frecvență este cunoscut sub numele de spectru de putere. Deoarece DFT/FFT al unui semnal real este simetric, puterea la o frecvență pozitivă de kΔf ​​este aceeași cu puterea la frecvența negativă corespunzătoare de –kΔf, componentele DC și Nyquist neincluse. Puterea totală în componentele DC și Nyquist constă din lX[0]l2 și respectiv lX[N/2]l2.

The frequency spacing between the output samples is Δf = fs/N. In the following table, the power spectrum of a signal x[n] is represented by Sxx. If N is even, let p = N/2. The table shows the format of the output sequence Sxx corresponding to the power spectrum.

Informații privind pierderea fazei

Deoarece puterea este obținută prin pătratul magnitudinei DFT/FFT, spectrul de putere este întotdeauna real și toate informațiile de fază se pierd. Pentru a obține informații de fază, utilizați DFT/FFT, care vă oferă o ieșire complexă.

Puteți utiliza spectrul de putere în aplicații în care informațiile de fază nu sunt necesare; de exemplu, pentru a calcula puterea armonică într-un semnal. Puteți aplica o intrare sinusoidală unui sistem neliniar și puteți vedea puterea în armonici la ieșirea sistemului.

Următoarea ilustrație reprezintă informațiile din tabelul anterior pentru o undă sinusoidală cu amplitudine = 2 Vvârf (Vpk ) și N = 8.

Unitățile de ieșire ale calculului spectrului de putere sunt în volți rms pătrați (V2rms). Deci, dacă amplitudinea de vârf (Vpk) a semnalului de intrare este de 2 Vpk, valoarea sa efectivă este Vrms = 2/√2, deci V2rms = 2. Această valoare este împărțită în mod egal între componentele de frecvență pozitive și negative, rezultând graficul prezentat în ilustrația anterioară.

Dacă N este impar, fie p = (N-1)/2. Tabelul următor arată formatul secvenței de ieșire Sxx corespunzătoare spectrului de putere.

Următoarea ilustrație reprezintă informațiile din tabelul precedent pentru N = 7.

VI-ul Spectral Measurements Express

Spectral Measurements Express VI, situat pe paleta Signal Analysis, vă permite să efectuați cu ușurință diferite măsurători spectrale pe un semnal. Aceste măsurători includ calculul spectrului de putere și al magnitudinii de vârf ale unui semnal. Utilizați pagina Configure Spectral Measurements property pentru a configura acest Express VI ca să efectueze calculul fie unei magnitudini (vârf), magnitudini (RMS), spectru de putere sau densitate spectrală de putere, fie în modul liniar, fie în modul dB. În plus, puteți specifica un mod de windowing, parametrii de mediere și faza de măsurare spectrală. Consultați secțiunea Despre scurgerea spectrală și ferestre de netezire din această lecție pentru mai multe informații despre modurile de windowing.

Exercițiul 7-1 Spectrul de putere

Obiectiv: Construirea unui VI care determină spectrul de putere al unui semnal generat.

FFT este o metodă de calcul puternică pe care o puteți utiliza pentru a efectua o analiză spectrală pe date eșantionate discrete, cum ar fi cele de la un sistem DAQ. Acest exercițiu utilizează VI-uri LabVIEW Express pentru a genera un semnal și a efectua analiza spectrală a datelor.

Panoul frontal

1. Deschideți un VI gol.
2. Următorul panou frontal va rezulta din construirea diagramei bloc.

Diagrama bloc

3. Construiți următoarea diagramă bloc.

a. Plasați un Simulate Signal Express VI, situat pe paleta Functions» Signal Analysis, pe diagrama bloc. Acest Express VI creează un semnal de ieșire de un tip specificat. În caseta de dialog Configure Simulate Signals care apare, selectați setările afișate în figura următoare.

(1) Faceți clic pe butonul OK pentru a închide caseta de dialog.

(2) Redimensionați Simulate Signals Express VI pentru a afișa ieșirea error out.

(3) Faceți clic dreapta pe intrarea Frequency și selectați Create »Control din meniul de comenzi rapide.

(4) Faceți clic dreapta pe intrarea Amplitude și selectați Create »Control din meniul de comenzi rapide.

b. Amplasați Spectral Measurements Express VI, situat pe paleta Functions»Signal Analysis, pe diagrama bloc. Acest Express VI calculează spectrul de putere al unui semnal. În caseta de dialog Configure Spectral Measurements care se afișează, selectați setările afișate în figura următoare:

(1) Faceți clic pe butonul OK pentru a închide caseta de dialog.

(2) Redimensionați Spectral Measurements Express VI pentru a afișa ieșirea error out.

(3) Faceți clic dreapta pe ieșirea Power Spectrum și selectați Create» Graph Indicator din meniul de comenzi rapide.

c. Plasați funcția Or, situată în paleta Functions»Arithmetic & Comparison»Express Boolean, pe diagrama bloc.

d. Plasați funcția Unbundle by Name, situată în paleta Functions» All Functions»Cluster, pe diagrama bloc. Această funcție returnează valoarea booleană a stării de eroare. Dacă apare o eroare, While Loop se oprește.

4. Salvați VI-ul ca Power Spectrum Express.vi în directorul C:\Exercises\LabVIEW DAQ.

5. Rulați VI-ul.

6. Schimbați frecvența generată de Simulate Signal Express VI. Observați cum se deplasează vârful pe graficul spectrului.

7. Salvați și închideți VI-ul când terminați.

Sfârșitul exercițiului 7-1

7.4 Despre scurgerea spectrală și ferestre de netezire

În aplicații practice, puteți obține doar un număr finit de eșantioane ale semnalului. Când utilizați DFT/FFT pentru a găsi conținutul de frecvență al unui semnal, se presupune că datele sunt de o singură perioadă a unei forme de undă care se repetă periodic, așa cum se arată în ilustrația următoare. Prima perioadă afișată este cea eșantionată. Forma de undă care corespunde acestei perioade este apoi repetată în timp pentru a produce forma de undă periodică.

Datorită presupunerii periodicității formei de undă, apar discontinuități între perioade succesive. Acest lucru se întâmplă când eșantionați un număr neîntreg de cicluri. Aceste discontinuități artificiale apar ca frecvențe foarte mari în spectrul semnalului, frecvențe care nu sunt prezente în semnalul original. Aceste frecvențe pot fi mai înalte decât frecvența Nyquist și, după cum ați văzut anterior, vor fi dedublate (aliasing) undeva între 0 și fs/2. Spectrul pe care îl obțineți folosind DFT/FFT, prin urmare, nu va fi spectrul real al semnalului original, ci va fi o versiune „murdară”. Se pare că energia la o frecvență s-a „scurs” în toate celelalte frecvențe. Acest fenomen este cunoscut sub numele de scurgere spectrală.

Figura 7-1 prezintă o undă sinusoidală și transformata Fourier corespunzătoare. Forma de undă eșantionată din domeniul-timp eșantionat este prezentată în Graph 1. Deoarece transformata Fourier presupune periodicitate, repetați această formă de undă în timp. Forma de undă în timp periodică a undei sinusoidale din Graph 1 este prezentată în Graph 2. Reprezentarea spectrală corespunzătoare este prezentată în Graph 3. Deoarece înregistrarea timpului în Graph 2 este periodică, fără discontinuități, spectrul său este o singură linie care arată frecvența undei sinusoidale. Motivul pentru care forma de undă din Graph 2 nu are discontinuități este că ați eșantionat un număr întreg de cicluri - în acest caz, un ciclu - al formei de undă în timp.

Figura 7-1. Undă sinusoidală și transformata Fourier corespunzătoare

În Figura 7-2, vedeți reprezentarea spectrală atunci când eșantionați un număr neîntreg de cicluri ale formei de undă în timp, și anume 1,25. Graph 1 constă acum în 1,25 cicluri ale undei sinusoidale. Când repetați acest lucru periodic, forma de undă rezultată așa cum se arată în Graph 2 constă în discontinuități. Spectrul corespunzător este prezentat în Graph 3, în care energia este răspândită pe o gamă largă de frecvențe. Această împrăștiere a energiei este o scurgere spectrală. Energia s-a scurs dintr-una din liniile FFT și s-a împrăștiat în toate celelalte linii.

Figura 7-2. Reprezentare spectrală când se eșantionează un număr neîntreg de eșantioane

Scurgerile există datorită înregistrării în timp finit a semnalului de intrare. O soluție pentru depășirea scurgerilor este luarea unei înregistrări de timp infinit, de la -× la +×, apoi FFT să calculeze o singură linie la frecvența corectă. Deoarece sunteți limitat la a avea o înregistrare de timp finită, o altă tehnică cunoscută sub numele de windowing este utilizată pentru a reduce scurgerea spectrală.

Cantitatea de scurgere spectrală depinde de amplitudinea discontinuității. Cu cât discontinuitatea este mai mare, cu atât mai multă scurgere și invers. Puteți utiliza windowing pentru a reduce amplitudinea discontinuităților la limitele fiecărei perioade. Windowing constă în înmulțirea înregistrării de timp cu o fereastră de lungime finită a cărei amplitudine variază lin și treptat spre zero la margini. Acest lucru este arătat în Figura 7-3, unde semnalul în timp original este ferestruit folosind o fereastră Hamming. Forma de undă în timp a semnalului cu fereastră se reduce gradual la zero la capete. Când efectuați analize Fourier sau spectrale pe date de lungime finită, puteți utiliza ferestre pentru a minimiza marginile de tranziție ale formei de undă eșantionate. O funcție a ferestrei de netezire aplicată datelor înainte ca acestea să fie transformate în domeniul-frecvență minimizează scurgerea spectrală.

Figura 7-3. Semnal în timp ferestruit cu ajutorul unei ferestre Hamming

Dacă înregistrarea în timp conține un număr întreg de cicluri, așa cum se arată în Figura 7-1, presupunerea periodicității nu duce la nicio discontinuitate și, prin urmare, nu apare nicio scurgere spectrală. Problema apare numai atunci când aveți un număr neîntreg de cicluri.

Există mai multe motive pentru a utiliza windowing:

• Definirea duratei de observare
• Reducerea scurgerii spectrale
• Separarea unui semnal de amplitudine mică de un semnal de amplitudine mai mare cu frecvențe foarte apropiate una de cealaltă

7.5 Caracteristicile diferitelor tipuri de funcții Window
Aplicarea unei ferestre, sau windowing, la un semnal în domeniul-timp este echivalentă cu înmulțirea semnalului cu funcția fereastră. Deoarece multiplicarea în domeniul-timp este echivalentă cu convoluția în domeniul- frecvență, spectrul semnalului ferestruit este o convoluție a spectrului semnalului original cu spectrul ferestrei. Windowing modifică forma semnalului în domeniul-timp și afectează spectrul pe care îl vedeți.

În funcție de aplicație, o fereastră poate fi mai utilă decât celelalte. Folosind Spectral Measurements Express VI, puteți alege dintre ferestrele dreptunghiulară (niciuna), Hanning, Hamming, Blackman-Harris, Exact Blackman, Blackman, Flat Top, 4 Term B-Harris, 7 Term B-Harris și Low Sidelobe. Funcțiile windowing Exponential, General Cosine, Cosine Tapered, Force, Kaiser-Bessel și Triangle sunt, de asemenea, disponibile în paleta Analyze»Signal Processing»Windows.

Rectangular (Nici una)

Fereastra dreptunghiulară are o valoare de unu pe tot intervalul său de timp. Matematic, poate fi scrisă ca

w[n] = 1.0 pentru n = 0, 1, 2, ..., N – 1

unde N este lungimea ferestrei. Aplicarea unei ferestre dreptunghiulare este echivalentă cu neutilizarea oricărei ferestre, deoarece funcția dreptunghiulară trunchiază semnalul într-un interval de timp finit. Fereastra dreptunghiulară are cea mai mare cantitate de scurgere spectrală. Figura 7-4 prezintă fereastra dreptunghiulară pentru N = 32.

Figura 7-4. Fereastra dreptunghiulară

Fereastra dreptunghiulară este utilă pentru analiza tranzițiilor care au o durată mai mică decât cea a ferestrei. De asemenea, este utilizat pentru urmărirea comenzilor, unde frecvența de eșantionare este ajustată în funcție de viteza arborelui unei mașini. În această aplicație, detectează modul fundamental de vibrație al mașinii și armonicele acesteia.

Hanning

Fereastra Hanning are o formă similară cu cea a unui semiciclu al unei unde cosinus. Ecuația sa definitorie este

w[n] = 0,5 – 0,5 cos(2πn/N) pentru n = 0, 1, 2, ..., N – 1

Figura 7-5 prezintă o fereastră Hanning cu N = 32.

Figura 7-5. Fereastra Hanning

Fereastra Hanning este utilă pentru analizarea tranzițiilor mai lungi decât durata în timp a ferestrei și pentru aplicații de uz general.

Hamming

Fereastra Hamming este o versiune modificată a ferestrei Hanning. Forma sa este, de asemenea, similară cu cea a unei unde cosinus. Poate fi definită ca:

w[n] = 0,54 – 0,46 cos(2πn/N) pentru n = 0, 1, 2, ..., N – 1

Figura 7-6 prezintă o fereastră Hamming cu N = 32.

Figura 7-6. Fereastra Hamming

Ferestrele Hanning și Hamming sunt oarecum similare. În domeniul-timp, fereastra Hamming nu se apropie de 0 în apropierea marginilor ca fereastra Hanning.

Blackman – Harris

Fereastra Blackman-Harris, precum și fereastra Hanning, sunt utile pentru măsurarea componentelor de nivel foarte scăzut în prezența unui semnal mare de intrare, cum ar fi o măsurare a distorsiunii.

Fereastra Blackman-Harris aplică o fereastră cu trei termeni semnalului de intrare. Poate fi definită ca:

w[n] = 0,422323 – 0,49755 cos(2πn/N) + 0,07922 cos(4πn/N) for n = 0, 1, 2, ..., N – 1

Figura 7-7 prezintă o fereastră Blackman-Harris cu N = 32.

Figura 7-7. Fereastra Blackman-Harris

Exact Blackman

Fereastra Exact Blackman este similară cu fereastra Blackman-Harris, dar cu mai puțină conicitate la final.

Poate fi definită ca:

w[n] = [a0 – a1 cos(2πn/N) + a2 cos(4πn/N)] for n = 0, 1, 2, ..., N – 1

a0 = 7938/18608
a1 = 9240/18608
a2 = 1430/18608

Figura 7-8 prezintă o fereastră Exact Blackman cu N = 32.

Figura 6-8. Fereastra Exact Blackman

Blackman

Fereastra Blackman este similară cu fereastra Hanning și Hamming, dar are un termen suplimentar de cosinus care reduce și mai mult efectul de ondulare (ripple).

Poate fi definită ca:

w[n] = 0,42 – 0,5 cos(2πn/N) + 0,08 cos(4πn/N) for n = 0, 1, 2, ..., N – 1

Figura 7-9 prezintă o fereastră Blackman cu N = 32.

Figura 6-9. Fereastra Blackman

Flat Top

Fereastra Flat Top este formată din mai mulți termeni cosinus decât orice altă fereastră pe care am studiat-o până acum. Al doilea termen armonic face ca fereastra să scadă sub zero.

Poate fi definită ca:

w[n] = 0,21557895 – 0,41663158 cos(2πn/N) + 0.277263158 cos(4πn/N) –0,083578947 cos (6πn/N) + 0,006947368 cos (8πn/N) pentru n = 0, 1, 2, ..., N–1

Figura 7-10 prezintă o fereastră Flat Top cu N = 32.

Figura 7-10. Fereastra Flat Top

4 Termeni B-Harris

Fereastra 4 Term B-Harris este o extensie a ferestrei Blackman-Harris, adăugând un termen cosinus suplimentar.

Poate fi definită ca:

w[n] = 0,35875 – 0,48829 cos(2πn/N) + 0,14128 cos(4πn/N) – 0,01168 cos(6πn/N) pentru n = 0, 1, 2, ..., N – 1

Figura 7-11 prezintă o fereastră 4 Term B-Harriscu N = 32.

Figura 7-11. Fereastra 4 Term B-Harris

7 Term B-Harris

Fereastra 7 Term B-Harris este o extensie a ferestrei Blackman-Harris, adăugând încă patru termeni cosinus.

Poate fi definită ca:

w[n] = 0,27105 – 0,43329 cos(2πn/N) + 0,21812 cos(4πn/N) – 0,06593 cos(6πn/N) + 0,01081 cos(8πn/N) – 7,7658E-4 cos(10πn/N) + 1,3887E–5 cos(12πn/N) pentru n = 0, 1, 2, ..., N – 1

Figura 7-12 prezintă o fereastră 7 Term B-Harris cu N = 32.

Figura 7-12. 7 Fereastra 7 Term B-Harris

Low Sidelobe

Fereastra Low Sidelobe reduce în continuare dimensiunea lobului principal.

Poate fi definită ca:

w[n] = 0,323215218 – 0,471492057 cos(2πn/N) + 0,17553428 cos(4πn/N) –0,028497078 cos(6πn/N) + 0,001261367 cos(8πn/N) pentru n = 0, 1, 2, ..., N – 1

Figura 7-13 arată o fereastră Low Sidelobe cu N = 32.

Figura 7-13. Fereastra Low Sidelobe

7.6 Determinarea tipului de fereastră de utilizat

Tipul de fereastră pe care îl alegeți depinde de tipul de semnal pe care îl aveți și de ceea ce căutați. Selectarea ferestrei corecte necesită cunoașterea semnalului pe care îl analizați. Tabelul următor prezintă diferite tipuri de semnale și ferestrele pe care le puteți utiliza cu ele.

Dacă nu aveți suficiente cunoștințe prealabile despre semnal, experimentați cu diferite ferestre pentru a găsi cea mai bună.

Exercițiul 6-2 VI-ul Window Comparison

Obiectiv: Construirea unui VI care separă două unde sinusoidale de aproape aceeași frecvență, dar amplitudini foarte diferite.

În acest exercițiu, două unde sinusoidale de amplitudini diferite sunt adunate și transformate în domeniul-frecvență. Unda sinusoidală 1 are o amplitudine mult mai mică decât unda sinusoidală 2. Fără windowing, nu este posibil să se facă distincția între cele două unde sinusoidale în domeniul-frecvență. Cu o fereastră adecvată, puteți separa clar vârfurile din domeniul-frecvență care corespund celor două unde sinusoidale. Graficul domeniului-frecvență arată rezultatele, astfel încât să puteți compara efectul diferitelor funcții fereastră.

Panoul frontal

1. Deschideți un VI gol și construiți următorul panou frontal.

Diagrama bloc

2. Construiți următoarea diagramă bloc.

a. Amplasați Simulate Signal Express VI, situat în paleta Functions» Signal Analysis, pe diagrama bloc. Acest Express VI poate genera un semnal de tipul specificat, în acest caz, o undă sinusoidală. În caseta de dialog Configure Simulate Signals care se afișează, setați Samples per Second (Hz) la 1000, eliminați bifa din caseta de selectare Automatic și introduceți 1000 pentru Number of Samples. Lăsați toate celelalte setări la valorile lor implicite. Faceți clic pe butonul OK pentru a închide caseta de dialog.

b. Amplasați Spectral Measurements Express VI, situat în paleta Functions»Signal Analysis, pe diagrama bloc. Acest Express VI efectuează o FFT pe un semnal de intrare. În caseta de dialog Configure Spectral Measurements care apare, selectați Power Spectrum setați Result la dB, selectați None din meniul derulant Window și eliminați bifa din caseta de selectare Averaging. Faceți clic pe butonul OK pentru a închide caseta de dialog.

c. Plasați funcția Merge Signals, situată în paleta Functions »Signal Manipulation, pe diagrama bloc. Această funcție îmbină două sau mai multe semnale într-o singură ieșire. Conectați ieșirea funcției Merge Signals la graficul Power Spectrum.

3. Salvați VI-ul ca Window Comparison.vi în directorul C:\Exercises\ LabVIEW DAQ.

4. Reveniți la panoul frontal. Folosind comenzile numerice, setați amplitudinea Sine Wave 1 la 0,001, iar amplitudinea Sine Wave 2 la 1,000. Cu comenzile buton, setați frecvența Sine Wave 1 aproape de 70 și frecvența Sine Wave 2 aproape de 60. Reglarea frecvenței Sine Wave 2 folosind comanda buton face ca amplitudinea mai mică să fie mai aproape de amplitudinea mai mare în graficul din domeniul-frecvență.

5. Observați în grafic că atunci când frecvența semnalului de amplitudine mai mică (Sine Wave 1) este mai apropiată de cea a semnalului de amplitudine mai mare (Sine Wave 2), vârful care corespunde semnalului mai mic nu este detectat. Aplicarea unei funcții fereastră este singura modalitate de a detecta semnalul mai mic. Discontinuitatea determină răspândirea spectrului. Semnalele la amplitudini mai mici se pierd pe loburile laterale ale semnalului de amplitudine mai mare.

6. Opriți VI-ul și reveniți la diagrama bloc. Faceți dublu clic pe fiecare dintre VI-urile Spectral Measurements Express și selectați diferite funcții fereastră.

7. Reveniți la panoul frontal și rulați VI-ul.

8. Comparați diferite funcții fereastră alegând o altă fereastră pentru VI-urile Spectral Measurements Express. Care dintre ele pot distinge între cele două componente de frecvență?

9. Opriți și închideți VI-ul când terminați.

Sfârșitul exercițiului 7-2

7.7 Filtrare

Filtrarea este procesul prin care se modifică conținutul de frecvență al unui semnal. Este una dintre cele mai utilizate tehnici de procesare a semnalului. Exemple obișnuite de filtrare sunt comenzile bass și treble pe un sistem stereo. Controlul basului modifică conținutul de frecvență joasă al unui semnal, iar controlul înalte modifică conținutul de înaltă frecvență. Prin modificarea acestor controale, filtrați de fapt semnalul audio. Unele alte aplicații în care filtrarea este utilă sunt eliminarea zgomotului și efectuarea decimării ( filtrarea lowpass a semnalului și reducerea ratei de eșantionare).

7.8 Filtre ideale

Filtrele modifică sau elimină frecvențele nedorite. În funcție de intervalul de frecvență pe care îl trec sau îl atenuează, acestea pot fi clasificate în următoarele tipuri:

• Un filtru lowpass trece frecvențele joase, dar atenuează frecvențele înalte.
• Un filtru highpass trece frecvențe înalte, dar atenuează frecvențele joase.
• Un filtru bandpass trece o anumită bandă de frecvențe.
• Un filtru bandstop atenuează o anumită bandă de frecvențe.

Următoarea ilustrație arată răspunsul în frecvență ideal al acestor filtre.

Filtrul lowpass trece toate frecvențele sub fc, iar filtrul highpass trece toate frecvențele mai mari de fc. Filtrul bandpass trece toate frecvențele dintre fc1 și fc2, iar filtrul bandstop atenuează toate frecvențele dintre fc1 și fc2. Punctele de frecvență fc, fc1 și fc2 sunt cunoscute ca frecvențe (cutoff) de tăiere ale filtrului. Când proiectați filtre, trebuie să specificați aceste frecvențe de tăiere.

Gama de frecvențe care este trecută prin filtru este cunoscută ca banda de trecere (PB) a filtrului. Un filtru ideal are un câștig de unu (0 dB) în banda de trecere, astfel încât amplitudinea semnalului nu crește și nici nu scade.

Banda de oprire (SB) corespunde acelei game de frecvențe care nu trec deloc prin filtru și sunt rejectate (atenuate). Următoarea ilustrație prezintă banda de trecere și banda de oprire pentru diferitele tipuri de filtre.

Filtrele lowpass și highpass au o bandă de trecere și o bandă de oprire, filtrul bandpass are o bandă de trecere, dar două benzi de oprire, iar filtrul bandstop are două benzi de trecere, dar o singură bandă de oprire.

Cum afectează filtrele conținutul de frecvență al semnalului

Un semnal care conține frecvențe de 10 Hz, 30 Hz și 50 Hz este trecut prin filtrele lowpass, highpass, bandpass și bandstop. Filtrele low-pass și high-pass au o frecvență de tăiere de 20 Hz, iar filtrele bandpass și bandstop au frecvențe de tăiere la 20 Hz și 40 Hz. Următoarea ilustrație arată ieșirea filtrului în fiecare caz.

7.9 Filtre practice (ne-ideale)

În mod ideal, un filtru ar trebui să aibă un câștig unitate (0 dB) în banda de trecere și un câștig de zero (–infinit dB) în banda de oprire. Dar, într-o implementare reală, nu toate aceste criterii pot fi îndeplinite. În practică, există întotdeauna o regiune de tranziție finită între banda de trecere și banda de oprire. În această regiune, câștigul filtrului se schimbă treptat de la unul (0 dB) în banda de trecere la zero (–infinit dB) în banda de oprire.

Banda de tranziție

Un filtru ar trebui să aibă un câștig unitate (0 dB) în banda de trecere și un câștig de zero (- dB) în banda de oprire. Într-o implementare reală, nu toate aceste criterii pot fi îndeplinite. O regiune de tranziție finită apare întotdeauna între banda de trecere și banda de oprire. În această regiune, câștigul filtrului se schimbă treptat de la 1 (0 dB) în banda de trecere la 0 (-∞ dB) în banda de oprire. Următoarea ilustrație prezintă banda de trecere, banda de oprire și regiunea de tranziție (TR) pentru diferitele tipuri de filtre ne-ideale. Banda de trecere devine domeniul de frecvență în care câștigul filtrului variază de la 0 dB la –3 dB. Deși intervalul de –3 dB este cel mai frecvent, în funcție de aplicație, ar putea fi utilizate și alte valori (–0,5 dB, –1 dB și așa mai departe).

Ripple în banda de trecere și atenuarea în banda de oprire

În multe aplicații, este acceptabil să permiteți câștigului în banda de trecere să varieze ușor de la unitate. Variația în banda de trecere se numește ripple (ondularea) benzii de trecere, care este diferența dintre câștigul real și câștigul dorit de unitate. Atenuarea în banda de oprire nu poate fi infinită și trebuie să specificați valoarea dorită. Atât ondularea în banda de trecere, cât și atenuarea în bandai de oprire sunt măsurate în decibeli sau dB, definite prin:

dB = 20*log10(Ao(f)/Ai(f))

unde log10 este logaritmul în baza 10 și Ai(f) și Ao(f) sunt amplitudinile unei anumite frecvențe f înainte și după filtrare, respectiv.

De exemplu, pentru –0,02 dB ripple în banda de trecere, formula dă

–0,02 = 20 * log10 (Ao(f)/Ai(f))

Ao(f) Ai(f) = 10-0,001 = 0,9977

ceea ce arată că raportul dintre amplitudinile de intrare și ieșire este aproape de unitate.

Dacă aveți atenuare de –60 dB în banda de oprire, aveți

–60 = 20*log10(Ao(f)/Ai(f))

Ao(f)/Ai(f) = 10-3= 0,001

ceea ce înseamnă că amplitudinea de ieșire este 1/1000 din amplitudinea de intrare. Următoarea ilustrație, deși nu este desenată la scară, ilustrează acest concept.

Notă Atenuarea este de obicei exprimată în decibeli fără cuvântul minus, dar în mod normal se presupune o valoare dB negativă.

7.10 Avantajele filtrelor digitale față de filtrele analogice

Un filtru analogic are un semnal analogic atât la intrare, cât și la ieșire. Atât intrarea, x(t), cât și ieșirea, y(t), sunt funcții de o variabilă continuă t și pot lua un număr infinit de valori. Proiectarea filtrelor analogice este cu aproximativ 50 de ani mai veche decât proiectarea filtrelor digitale. Sunt disponibile multe cărți de proiectare a filtrelor analogice, care conțin modele de filtre simple, bine testate. Însă, acest tip de proiectare a filtrelor este deseori rezervat specialiștilor, deoarece necesită cunoștințe matematice avansate și înțelegere a proceselor implicate în sistemul care afectează filtrul.

Instrumentele moderne de eșantionare și procesare a semnalului digital fac posibilă înlocuirea filtrelor analogice cu filtre digitale în aplicații care necesită flexibilitate și programabilitate. Aceste aplicații includ audio, telecomunicații, geofizică și monitorizare medicală. Următoarea listă explică avantajele filtrelor digitale:

• Sunt programabile software și, prin urmare, ușor de construit și testat.
• Acestea necesită doar operații aritmetice de multiplicare și adunare/ scădere, deci sunt mai ușor de implementat.
• Sunt stabile (nu se schimbă cu timpul sau temperatura) și previzibile.
• Nu se decalează cu temperatura sau umiditatea sau necesită componente de precizie.
• Au un raport performanță-cost superior.
• Nu suferă de variații de fabricație sau îmbătrânire.

7.11 Filtre IIR și FIR

O altă metodă de clasificare a filtrelor se bazează pe răspunsul lor la impuls. Un răspuns la impuls este răspunsul unui filtru la o intrare care este un impuls (x[0] = 1 și x[i] = 0 pentru toți i 0), așa cum se arată în ilustrația următoare. Transformata Fourier a răspunsului la impuls este cunoscută sub numele de răspuns în frecvență al filtrului. Răspunsul în frecvență al unui filtru vă spune care va fi ieșirea filtrului la frecvențe diferite. Răspunsul în frecvență vă spune câștigul filtrului la diferite frecvențe. Pentru un filtru ideal, câștigul ar trebui să fie 1 în banda de trecere și 0 în banda de oprire. Toate frecvențele din banda de trecere sunt trecute fără modificări la ieșire, dar nu există ieșire pentru frecvențe în banda de oprire.

Dacă răspunsul la impuls al filtrului scade la zero după o perioadă de timp finită, este cunoscut sub numele de filtru cu răspuns la impuls finit (FIR). Dacă răspunsul la impuls există pe o perioadă nedeterminată, este cunoscut sub numele de filtru cu răspuns la impuls infinit (IIR). Dacă răspunsul la impuls este FIR sau IIR depinde de modul în care se calculează ieșirea.

Diferența de bază între filtrele FIR și IIR este că pentru filtrele FIR, ieșirea depinde doar de valorile de intrare curente și anterioare; pentru filtrele IIR, ieșirea depinde nu numai de valorile de intrare curente și anterioare, ci și de valorile de ieșire anterioare.

De exemplu, luați în considerare o casă de marcat la un supermarket. Fie x[k] costul celui de-al k-ulea articol pe care îl cumpără un client, unde 1 ≤ k ≤ N, iar N este numărul total de articole. Casa de marcat adaugă costul fiecărui articol pentru a produce un total curent. Această valoare totală y[k], până la cel de-al k-ulea articol, este dată de

y[k] = x[k] + x[k – 1] + x[k – 2] + x[k – 3] + ..... + x[1] (7-2a)

Astfel, totalul pentru N articole este y[N]. Deoarece y [k] este totalul până la cel de-al k-ulea element, iar y[k – 1] este totalul până la (k-1) articol, puteți rescrie ecuația 7-2a ca

y[k] = y[k - 1] + x[k] (7-2b)

Dacă adăugați un impozit pe vânzări de 8%, ecuațiile 7-2a și 7-2b vor da

y[k] = 1,08x[k] + 1,08x[k - 1] + 1,08x[k - 2] + 1,08x[k - 3] + ... + 1,08x[1] (7-3a) y[k] = y[k - 1] + 1,08x[k] (7-3b)

Ambele ecuații 7-3a și 7-3b sunt identice în descrierea comportamentului casei de marcat. Diferența este că Ecuația 7-3a este implementată numai în termeni de intrări, dar Ecuația 7-3b este implementată atât în termeni de intrare, cât și de ieșire. Ecuația 7-3a este cunoscută sub numele de implementare nerecursivă sau FIR. Ecuația 7-3b este cunoscută sub numele de implementare recursivă sau IIR.

Coeficienți de filtrare

În ecuația 7-3a, constanta de multiplicare pentru fiecare termen este 1,08.
În ecuația 7-3b, constantele de multiplicare sunt 1 (pentru y[k - 1]) și 1,08 (pentru x[k]). Aceste constante de multiplicare sunt cunoscute sub numele de coeficienți ai filtrului. Pentru un filtru IIR, coeficienții care înmulțesc intrările sunt coeficienți direcți (forward) și cei care înmulțesc ieșirile coeficienții inverși (reverse).

Ecuațiile de forma 7-2a, 7-2b, 7-3a sau 7-3b care descriu funcționarea filtrului sunt cunoscute sub numele de ecuații de diferență.

Avantajele și dezavantajele filtrelor FIR și IIR

Avantajul filtrelor digitale IIR față de filtrele cu răspuns finit la impuls (FIR) este că filtrele IIR necesită de obicei mai puțini coeficienți pentru a efectua operațiuni de filtrare similare. Astfel, filtrele IIR se execută mult mai repede și nu necesită memorie suplimentară, deoarece se execută pe loc.

Dezavantajul filtrelor IIR este că răspunsul de fază este neliniar. Dacă aplicația nu necesită informații de fază, cum ar fi monitorizarea simplă a semnalului, filtrele IIR pot fi adecvate. Utilizați filtre FIR pentru aplicații care necesită răspunsuri de fază liniare. Natura recursivă a filtrelor IIR le face dificil de proiectat și implementat.

7.12 Filtre cu răspuns infinit la impuls

Filtrele IIR sunt filtre digitale a căror ieșire este calculată prin adăugarea unei sume ponderate a valorilor de ieșire trecute cu o sumă ponderată a valorilor de intrare trecute și curente. Notând valorile de intrare cu x[.] și valorile de ieșire cu y[.], ecuația diferenței generale care caracterizează filtrele IIR este

e Nx este numărul de coeficienți direcți (b[k]), iar Ny este numărul de coeficienți inverși (a[j]). Eșantionul de ieșire la indicele i al eșantionului prezent i este suma intrărilor prezente și trecute scalate (x[i] și x[i-k] când j 0) și a ieșirilor trecute scalate (y[i – j]). De obicei, Nx este egal cu Ny, iar această valoare este cunoscută ca ordinul filtrului.

Notă În toate filtrele IIR implementate în LabVIEW, coeficientul a0 este 1.

Filtre practice IIR

Un ordin mai mică reduce operațiile aritmetice și, prin urmare, reduce eroarea de calcul. O problemă cu filtrarea de ordin superior este că întâmpinați rapid erori de precizie cu ordine mult mai mari de 20-30. Acesta este principalul motiv pentru implementările în cascadă față de forma directă. Consultați LabVIEW Help pentru mai multe informații despre implementările în formă de cascadă. Ordinele de la 1 la 20 sunt rezonabile, 30 fiind o limită superioară. Un ordin mai mare înseamnă, de asemenea, mai mulți coeficienți de filtrare și un timp mai lung de procesare.

Răspunsul la impuls al filtrului descris de ecuația 7-4 este de lungime infinită pentru coeficienți diferiți de zero. În aplicațiile practice de filtrare, totuși, răspunsul la impuls al filtrelor IIR stabile scade la aproape zero într-un număr finit de eșantioane.

În practică, răspunsul în frecvență al filtrelor diferă de cel al filtrelor ideale. În funcție de forma răspunsului în frecvență, filtrele IIR pot fi clasificate în continuare în următoarele categorii:

• filtre Butterworth
• filtre Chebyshev
• filtre Chebyshev II sau Chebyshev invers

• filtre eliptice
• filtre Bessel

În secțiunile următoare despre fiecare dintre aceste filtre, semnalul de intrare este un răspuns la impuls. Semnalul este apoi filtrat folosind Filter Express VI și apoi răspunsul de frecvență luat prin utilizarea Frequency Response Function (Mag-Phase) VI fără aplicarea ferestrelor.

Filtre Butterworth

Un filtru Butterworth nu are ondulații (ripple) în banda de trecere sau banda de oprire. Datorită lipsei de ondulații, este cunoscut și ca filtru maxim plat. Răspunsul său în frecvență se caracterizează printr-un răspuns neted la toate frecvențele.

Figura 6-14 prezintă răspunsul unui filtru Butterworth lowpass de diferite ordine.

Figura 7-14. Răspunsul Butterworth

Regiunea în care ieșirea filtrului este egală cu 0 sau foarte aproape de 0 este banda de trecere a filtrului. Regiunea în care ieșirea se apropie de amplitudinile negative este banda de oprire. Regiunea dintre banda de trecere și banda de oprire unde ieșirea se schimbă treptat de la 0 la amplitudini negative este regiunea de tranziție.

Avantajul filtrelor Butterworth este un răspuns în frecvență lin, care scade monoton, în regiunea de tranziție. După cum se vede în Figura 7-14, cu cât ordinul filtrului este mai mare, cu atât regiunea de tranziție este mai abruptă.

Filtre Chebyshev

Răspunsul în frecvență al filtrelor Butterworth nu este întotdeauna o aproximare exactă a răspunsului ideal al filtrului din cauza rol-off lente între banda de trecere, cunoscută și sub numele de porțiunea de interes din spectru și banda de oprire, cunoscută și ca porțiunea nedorită a spectrului.

Filtrele Chebyshev au o regiune de tranziție mai mică decât un filtru Butterworth de același ordin. Dar, acest lucru se realizează în detrimentul ondulațiilor din banda de trecere. Puteți utiliza LabVIEW pentru a specifica cantitatea maximă de ondulare (în dB) în banda de trecere pentru un filtru Chebyshev. Caracteristicile de răspuns în frecvență ale filtrelor Chebyshev au un răspuns de magnitudine echiripple (toate ondulațiile au aceeași magnitudine) în banda de trecere, răspuns de magnitudine în scădere monotonă în banda de oprire și o roll-off mai ascuțită în regiunea de tranziție în comparație cu filtrele Butterworth de același ordin.

Figura 7-15 prezintă răspunsul unui filtru Chebyshev lowpass de diferite ordine. În acest grafic, scalarea axei y este în decibeli. Panta regiunii de tranziție crește odată cu creșterea ordinului. Numărul de ondulații în banda de trecere crește, de asemenea, odată cu creșterea ordinului.

Figura 7-15. Răspunsul Chebyshev

Avantajul filtrelor Chebyshev față de filtrele Butterworth este tranziția mai ascuțită între banda de trecere și banda de oprire cu un filtru de ordin mai mic. Acest lucru produce erori absolute mai mici și viteze de execuție mai mari.

Filtre Chebyshev II sau Chebyshev invers

Filtrele Chebyshev II, cunoscute și ca filtre Chebyshev invers sau Chebyshev Type II, sunt similare cu filtrele Chebyshev, cu excepția faptului că filtrele Chebyshev II au ondulații în banda de oprire în opoziție cu banda de trecere și sunt maxim plate în banda de trecere, spre deosebire de banda de oprire. Pentru filtrele Chebyshev II, puteți specifica cantitatea de atenuare (în dB) în banda de oprire. Caracteristicile de răspuns în frecvență ale filtrelor Chebyshev II sunt răspunsul de amplitudine echiripple în banda de oprire, răspunsul în magnitudine în scădere monotonă în banda de trecere și o roll-off mai ascuțită decât filtrele Butterworth de același ordin. Figura 7-16 prezintă răspunsul unui filtru Chebyshev II lowpass de diferite ordine.

Figura 7-16. Răspunsul Chebyshev II

Avantajul filtrelor Chebyshev II față de filtrele Butterworth este că filtrele Chebyshev II oferă o tranziție mai ascuțită între banda de trecere și banda de oprire cu un filtru de ordin inferior. Această diferență corespunde unei erori absolute mai mici și unei viteze mai mari de execuție. Un avantaj al filtrelor Chebyshev II față de filtrele Chebyshev obișnuite este că filtrele Chebyshev II au ondulații în banda de oprire în loc de banda de trecere.

Filtre eliptice

Filtrele Chebyshev de tip I și II au o regiune de tranziție mai ascuțită decât un filtru Butterworth de același ordin. Acest lucru se datorează faptului că au permis ondulații în banda de trecere (tip I) sau banda de oprire (tip II). Filtrele eliptice distribuie ondulațiile peste banda de trecere și banda de oprire. Equiripples din banda de trecere și banda de oprire caracterizează răspunsul în magnitudine al filtrelor eliptice.
Comparativ cu filtrele Butterworth sau Chebyshev de același ordin, modelul eliptic asigură cea mai ascuțită tranziție între banda de trecere și banda de oprire. Din acest motiv, filtrele eliptice sunt destul de populare în aplicații în care sunt necesare benzi scurte de tranziție și în care ondulațiile pot fi tolerate. Figura 7-17 prezintă răspunsul unui filtru eliptic lowpass de diferite ordine.

Figura 7-17. Răspunsul eliptic

Observați frontul ascuțită al tranziției chiar și pentru filtrele eliptice de ordin scăzut. Pentru filtrele eliptice, puteți specifica cantitatea de ondulare (în dB) în banda de trecere și atenuarea (în dB) în banda de oprire.

Filtre Bessel

Filtrul Bessel a fost proiectat având în vedere o undă pătrată și este astfel ideal pentru filtrarea digitală. La fel ca filtrul Butterworth, filtrul Bessel are un răspuns lin al benzii de trecere și de oprire. Folosind același ordin de filtru, atenuarea în banda de oprire a filtrului Bessel este mult mai mică decât cea a filtrului Butterworth. Dintre toate tipurile de filtru, filtrul Bessel are cea mai largă regiune de tranziție pentru un ordin fixat. Principalul avantaj al filtrului Bessel este că răspunsul în fază este aproape liniar pe toată banda de trecere.

Figura 7-18. Răspunsul Bessel

7.13 Comparație filtre IIR

Următoarea figură arată o comparație a răspunsurilor în frecvență low-pass pentru cele cinci modele diferite de filtre IIR, toate având același ordin (cinci). Filtrul eliptic are cea mai îngustă regiune de tranziție, iar filtrul Bessel are cea mai largă.

Tabelul următor compară tipurile de filtre.

VI-urile cu filtru digital LabVIEW gestionează toate problemele de proiectare, calcule, gestionarea memoriei și filtrarea reală a datelor intern și sunt transparente pentru utilizator. Nu trebuie să fiți expert în filtre digitale sau teoria filtrelor digitale pentru a prelucra datele. Trebuie doar să specificați parametrii de control, cum ar fi ordinul filtrului, frecvențele de tăiere, cantitatea de ondulare și atenuarea benzii de oprire.

Deciderea filtrului de utilizat

Acum că ați văzut diferitele tipuri de filtre și caracteristicile acestora, se pune întrebarea care este filtrul cel mai potrivit pentru aplicație. Unii dintre factorii care afectează alegerea unui filtru adecvat sunt dacă aveți nevoie de fază liniară, dacă puteți tolera ondulațiile și dacă este necesară o bandă de tranziție îngustă. Următoarea diagramă oferă un ghid pentru selectarea filtrului corect. S-ar putea să fie nevoie să experimentați mai multe opțiuni diferite înainte de a o găsi pe cea mai bună.

7.14 Răspuns tranzitoriu al filtrelor IIR

Ieșirea unui filtru IIR general este dată de

(7-5)

unde Nx este numărul de coeficienți direcți, Ny este numărul de coeficienți inverși și se presupune că a0 este egal cu 1. Cu un filtru de ordinul doi unde Nx = Ny = 2, ecuația diferenței corespunzătoare este:

(7-6)

Pentru a calcula ieșirea curentă (la al i-lea moment) a filtrului, trebuie să cunoașteți ultimele două ieșiri (la momentele (i–1) și (i–2) de timp) și intrarea curentă (la al i-lea moment de timp) și ultimele două intrări (la momentele (i – 1) și (i – 2) de timp).

Să presupunem că porniți procesul de filtrare luând primul eșantion din datele de intrare. La acest moment, nu aveți intrările anterioare (x[i – 1] și x[i – 2]) sau ieșirile anterioare (y[i – 1] și y[i – 2]). În mod implicit, aceste valori sunt presupuse a fi zero. Când obțineți al doilea eșantion de date, aveți intrarea anterioară (x[i – 1]) și ieșirea anterioară (y[i – 1]) pe care le-ați calculat din primul eșantion, dar nu x[i – 2] și y[i – 2]. Din nou, în mod implicit, se presupune că acestea sunt zero. După ce începeți procesarea celui de-al treilea eșantion de date de intrare, toți termenii din partea dreaptă a ecuației 7-6 au valorile calculate anterior. O anumită întârziere apare înainte de care sunt disponibile valori calculate pentru toți termenii din partea dreaptă (RHS) ai ecuației diferenței care descrie filtrul. Ieșirea filtrului în acest interval de timp este tranzitorie și este cunoscută sub numele de răspuns tranzitoriu. Pentru filtrele low-pass și high-pass, durata răspunsului tranzitoriu, sau întârzierea, este egală cu ordinul filtrului. Pentru filtrele bandpass și bandstop, această întârziere este de 2 x ordin.

Filtrele IIR conțin următoarele proprietăți.

• Indicii negativi care rezultă din ecuația 7-4 sunt presupuși a fi zero la prima apelare a VI-ului.
• Deoarece se presupune că starea inițială a filtrului este zero (indici negativi), o tranziție proporțională cu ordinul filtrului are loc înainte ca filtrul să ajungă la o stare stabilă. Durata răspunsului tranzitoriu, sau întârzierea, pentru filtrele lowpass și highpass este dublă ordinului filtrului.

• Durata răspunsului tranzitoriu pentru filtrele bandpass și bandstop este de două ori ordinea filtrelor.

De fiecare dată când este apelat Filter VI, această tranziție apare la ieșire, așa cum este arătată în ilustrația următoare. Puteți elimina acest răspuns tranzitoriu la apeluri succesive activând memoria de stare a VI-ului.
Pentru a activa memoria de stare, setați parametrul init/cont al VI-ului la TRUE (filtrare continuă). Veți învăța cum să faceți acest lucru într-un exercițiu ulterior.

• Numărul de elemente din secvența filtrată este egal cu numărul de elemente din secvența de intrare.

• Filtrul reține valorile interne ale stării filtrului la finalizarea filtrării.

Exercițiul 7-3 Filtrare digitală IIQ DAQ

Obiectiv: Utilizarea filtrării digitale într-o aplicație DAQ.

Este obișnuit să se utilizeze filtrarea datelor colectate cu un dispozitiv DAQ. În acest exercițiu, veți construi un VI care efectuează filtrarea digitală IIR pe datele achiziționate de pe un dispozitiv DAQ. VI-ul compară efectele filtrării. Puteți vizualiza forma de undă în domeniul-timp și domeniul-frecvență al formelor de undă nefiltrate și filtrate pentru a observa avantajele filtrării digitale IIR.

Panoul frontal

1. Deschideți un VI gol.

2. Adăugați patru grafice cu forme de undă pe panoul frontal și etichetați-le Prefiltered Time Domain, Prefiltered Frequency Domain, Filtered Time Domain, și Filtered Frequency Domain.

3. Adăugați un buton Boolean Stop.

Diagrama bloc

4. Deschideți și construiți următoarea diagramă bloc.

a. Plasați DAQmx Creați canalul VI, situat în paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI creează un canal virtual de tipul specificat. Selectați Analog Input»Voltage din meniul derulant. Faceți clic dreapta pe intrarea canalelor fizice și selectați Create»Control din meniul de comenzi rapide. Faceți clic dreapta pe nume pentru a atribui intrarea și selectați Create»Constant din meniul de comenzi rapide. Denumiți canalul analogic in.

b. Plasați DAQmx Timing VI, situat în paleta Functions»All Functions »NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI configurează timing-ul sarcinii. Faceți clic dreapta pe intrarea sample mode și selectați Create »Constant din meniul de comenzi rapide. Introduceți Continuous Samples în constantă. Faceți clic dreapta pe intrarea samples per channel și selectați Create »Control din meniul de comenzi rapide. Aceasta este valoarea tampon. Faceți clic dreapta pe terminalul rate și selectați Create »Control din meniul de comenzi rapide.

c. Plasați DAQmx Start VI, situat în paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI pornește operația de intrare analogică tamponată continuă.

d. Plasați DAQmx Read VI, situat în paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI citește date din buffer-ul alocat de VI-ul DAQmx Timing. Selectați cazul Analog»Single Channel»Multiple Samples»Waveform din meniul derulant.

e. Plasați Spectral Measurements Express VI, situat în paleta Functions»Signal Analysis, pe diagrama bloc. Acest VI calculează spectrul de putere al unui semnal de intrare. În caseta de dialog Configure Spectral Measurements care se afișează, setați opțiunile așa cum se arată în figura următoare.

- Configurați ambele cazuri ale Spectral Measurements Express VI cu aceste setări.
- Faceți clic pe butonul OK pentru a închide caseta de dialog.

f. Plasați Filter Express VI, situat în paleta Functions»Signal Analysis, pe diagrama bloc. Acest Express VI procesează semnale prin filtre și ferestre. În caseta de dialog Configure Filter care se afișează, setați opțiunile așa cum se arată în figura următoare.

g. Plasați DAQmx Stop Task VI, aflat în paleta Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, pe diagrama bloc. Acest VI oprește sarcina dată.

h. Plasați funcția Unbundle by Name, situată în paleta Functions» All Functions»Cluster , pe diagrama bloc. Această funcție returnează valoarea de stare booleană din clusterul error.

i. Plasați VI-ul Merge Errors, situat în paleta Functions»All Functions»Time & Dialog, pe diagrama bloc. Acest VI fuzionează clustere de erori din diferite funcții.

j. Plasați Simple Error Handler VI, situat în paleta Functions»All Functions»Time & Dialog, pe diagrama bloc. În cazul unei erori, acest VI afișează o casetă de dialog cu informații referitoare la eroare și unde a apărut.

5. Comutați la panoul frontal și aranjați panoul frontal așa cum se arată în figura următoare.

6. Salvați VI-ul ca IIR DAQ Filter.vi în directorul C:\Exercises\LabVIEW DAQ.

7. Pe panoul frontal al VI-ului, setați canalele fizice la DevX/ai2, unde X corespunde numărului de dispozitiv al dispozitivului dvs. DAQ. Setați rate la 10000 și samples per channel la 10000.

8. Conectați DAQ Signal Accessory analog out 1 la analog in 2. Aceste setări indică VI-ului să achiziționeze date de la canalul 2 la o rată de 10 kHz, ceea ce implică faptul că frecvența Nyquist este de 5 kHz.

9. Selectați Help»Find Examples pentru a deschide NI Example Finder și navigați după sarcină la Hardware Input and Output»DAQmx»Analog Generation»Voltage și deschideți Cont Gen Voltage Wfm-Int Clk-Variable Rate VI. Rulați VI-ul și generați o undă sinusoidală de 100 Hz pe canalul de ieșire analogic 1.

10. Rulați IIR DAQ Filter VI. Observați cele patru forme de undă care sunt reprezentate grafic. În graficul Prefiltered Time Domain, datele achiziționate sunt o undă sinusoidală foarte discretă, deoarece datele digitale generează o formă de undă analogică discretă. Unda sinusoidală generată conține componente de frecvență foarte înaltă dincolo de fundamentală. Aceste componente de înaltă frecvență apar în graficul Prefiltered Frequency Domain. Filtrul digital IIR lowpass atenuează aceste componente de înaltă frecvență cu unda sinusoidală aproape perfectă în graficul Filtered Time Domain și graficul Filtered Frequency Domain. Fiți întotdeauna atenți la aliasing. Un filtru digital nu va elimina aliasing-ul.

11. Aliasing este o problemă cu filtrarea digitală. Creșteți lent frecvența generată de VI-ul exemplu. Pe măsură ce creșteți frecvența dincolo de 500 Hz, semnalul este atenuat în graficele cu forme de undă filtrate. Dar, semnalul nu este niciodată complet atenuat. Forma de undă pseudo-analogică generată de exemplul VI conține o mulțime de informații de înaltă frecvență. Deoarece nu există filtre anti-aliasing hardware, componentele de înaltă frecvență sunt dedublate între 0 și 5 kHz. Filtrul digital IIR atenuează aceste componente dedublate de înaltă frecvență, dar nu le elimină niciodată complet. Acest lucru subliniază importanța filtrelor anti-aliasing hardware.

12. Schimbați frecvența generată de exemplul VI la 500 Hz și schimbați FC inferioară la 400 Hz păstrând în același timp o topologie de filtru Butterworth și ordinul filtrului de 5. Pentru a face acest lucru, opriți VI-ul și faceți dublu clic pe Filter Express VI. Semnalul de intrare nu este complet atenuat. Regiunea de tranziție a filtrului Butterworth devine mai abruptă pe măsură ce ordinul crește. Măriți ordinul și filtrul începe să atenueze mai mult semnalul. Măriți ordinul până când sunteți mulțumit că filtrul a atenuat suficient semnalul. Un ordin tipic de filtru este de la 1 la 20, 30 fiind o limită superioară. Cu un filtru de ordin superior, computerul are nevoie de mai mult timp de procesare și crește șansa de a introduce erori în virgulă mobilă la ieșire.

13. Experimentați cu diferite topologii de filtru, ordine de filtru și frecvențe de tăiere.

14. Opriți și închideți VI-ul când terminați.

Sfârșitul exercițiului 7-3

7.15 Filtre cu răspuns finit la impuls

Deoarece ieșirea unui filtru IIR depinde de ieșirile anterioare și de intrările curente și anterioare, filtrul IIR are memorie infinită, rezultând un răspuns la impuls de lungime infinită.

Filtrele cu răspuns la impuls finit (FIR) sunt filtre digitale cu un răspuns la impuls finit. Filtrele FIR sunt, de asemenea, cunoscute sub numele de filtre nerecursive, filtre de convoluție sau filtre cu medie mobilă (MA), deoarece puteți exprima ieșirea unui filtru FIR ca o convoluție finită

unde x reprezintă secvența de intrare care trebuie filtrată, y reprezintă secvența filtrată de ieșire și h reprezintă coeficienții filtrului FIR.

Ieșirea unui filtru FIR depinde doar de intrările curente și trecute. Deoarece nu depinde de ieșirile anterioare, răspunsul său la impuls scade la zero într-un timp finit. Ieșirea unui filtru FIR general este dată de

y[i] = b0x[i] + b1x[i–1] + b2x[i–2] + ... + bNx[i–(M–1)]

unde M este numărul de tabs ale filtrului și b0, b1, ... bM–1 sunt coeficienții săi.

Filtrele FIR au câteva caracteristici importante:

• Pot obține un răspuns de fază liniar și pot transmite un semnal fără distorsiuni de fază.
• Sunt întotdeauna stabile. În timpul proiectării sau dezvoltării filtrelor, nu trebuie să vă faceți griji cu privire la problemele de stabilitate.
• Filtrele FIR sunt mai simple și mai ușor de implementat decât filtrele IIR.

Următoarea ilustrație prezintă un răspuns tipic de magnitudine și fază al filtrelor FIR comparativ cu frecvența normalizată. Discontinuitățile din răspunsul de fază provin din discontinuitățile introduse atunci când calculați răspunsul de magnitudine folosind valoarea absolută. Discontinuitățile în fază sunt de ordinul lui π. Însă, faza este clar liniară.

Cea mai simplă metodă pentru proiectarea filtrelor FIR cu fază liniară este metoda de proiectare cu ferestre. Pentru a proiecta un filtru FIR prin windowing, începeți cu un răspuns în frecvență ideal, calculați răspunsul său la impuls și apoi trunchiați răspunsul la impuls pentru a produce un număr finit de coeficienți. Trunchierea răspunsului la impuls ideal are ca rezultat efectul cunoscut sub numele de fenomen Gibbs - comportamentul oscilator în apropierea tranzițiilor abrupte (frecvențe de tăiere) în răspunsul în frecvență al filtrului FIR.

Puteți reduce efectele fenomenului Gibbs netezind trunchierea răspunsului la impuls ideal folosind o fereastră de netezire. Reducând coeficienții FIR la fiecare capăt, puteți reduce înălțimea lobilor laterali în răspunsul de frecvență. Dezavantajul acestei metode este că lobul principal se lărgește, rezultând o regiune de tranziție mai largă la frecvențele de tăiere.

Selecția unei funcții fereastră este similară cu alegerea dintre filtrele IIR Chebyshev și Butterworth, în sensul că este un compromis între lobi laterali lângă frecvențele de tăiere și lățimea regiunii de tranziție.

Rezumat

• Calculul rapid al Transformatei Fourier Discrete (DFT) este posibil prin utilizarea unui algoritm cunoscut sub numele de Transformată Fourier rapidă (FFT). Puteți utiliza acest algoritm atunci când numărul eșantioanelor de semnal este o putere a lui 2.

• Spectrul de putere poate fi calculat din DFT/FFT prin pătratul magnitudinei componentelor individuale de frecvență. Power Spectrum VI din biblioteca de analiză avansată face acest lucru automat pentru dvs. Unitățile de ieșire ale Power Spectrum VI sunt V2rms. Spectrul de putere nu oferă nicio informație de fază.

• DFT, FFT și spectrul de putere sunt utile pentru măsurarea conținutului de frecvență al semnalelor staționare sau tranzitorii. FFT furnizează conținutul mediu de frecvență al semnalului pe parcursul întregului timp în care a fost achiziționat semnalul. Utilizați FFT în special pentru analiza semnalului staționar atunci când semnalul nu se modifică semnificativ în conținutul de frecvență în timpul în care este achiziționat semnalul sau când doriți doar energia medie la fiecare linie de frecvență.

• Pentru a reduce scurgerea spectrală, forma de undă în timp finit este înmulțită cu o funcție fereastră.

• Ferestrele pot fi utilizate pentru a separa două unde sinusoidale care au amplitudini foarte diferite, dar care au o frecvență foarte apropiată.

• Pentru filtrele practice, câștigul în banda de trecere poate să nu fie întotdeauna egal cu 1, atenuarea în banda de oprire poate să nu fie întotdeauna - și există o regiune de tranziție cu lățime finită.

• Lățimea regiunii de tranziție depinde de ordinul filtrului, iar lățimea scade odată cu creșterea ordinului.

• Ieșirea filtrelor FIR depinde doar de valorile de intrare curente și anterioare, dar ieșirea filtrelor IIR depinde de valorile de intrare curente și anterioare și de valorile de ieșire anterioare.

• Filtrele IIR pot fi clasificate în funcție de prezența ondulațiilor în banda de trecere și/sau banda de oprire.

• Datorită dependenței ieșirii sale de ieșirile anterioare, apare o tranziție la ieșirea unui filtru IIR de fiecare dată când este apelat VI-ul. Această tranziție poate fi eliminată după primul apel către VI prin setarea controlului init/cont la TRUE.

• Utilizați Spectral Measurements Express VI și Filter Express VI pentru a configura cu ușurință calculele spectrale și opțiunile de filtrare pentru un semnal de intrare dat.