Acasă - Date
Filtre digitale cu răspuns la impuls finit. Întrebare

Filtrele digitale fezabile din punct de vedere fizic operează în timp real următoarele date pot fi utilizate pentru a genera un semnal de ieșire la al i-lea moment discret:

1. Valorile semnalului de ieșire la ora curentă; de asemenea, un anumit număr de mostre trecute ale semnalului de intrare: x(i-1), x(i-2), x(i-m);

2. Un anumit număr de mostre anterioare ale semnalului de ieșire: y(i-1), y(i-2), y(i-n).

Numerele întregi m și n determină ordinea filtrului digital. Filtrele sunt clasificate în funcție de modul în care sunt utilizate informațiile despre starea trecută a sistemului.

Filtre FIR sau filtre nerecursive care funcționează conform următorului algoritm.

M – ordinea filtrului.

Un filtru non-recursiv realizează ponderarea și însumarea mostrelor anterioare ale semnalului de intrare. Nu sunt utilizate mostre de ieșire anterioare.

H(z) – funcția sistemului.

Funcția de sistem are m zerouri și un pol, la z=0.

Algoritmul de operare al unui filtru digital FIR este prezentat în Fig. 45.

Elementele principale ale filtrului sunt blocuri de întârziere a probelor de valoare cu 1 interval de eșantionare.

Scala blocuri care efectuează multiplicare digitală prin factori de ponderare. De la ieșirea blocurilor de scară, semnalul intră în sumator, unde este calculat semnalul de ieșire.

Acest schema bloc nu este electric, ci servește ca o reprezentare grafică a algoritmului de procesare a semnalului pe un computer. Datele de ieșire și de intrare pentru un astfel de algoritm sunt matrice de numere.

Să aplicăm transformarea Z inversă la funcțiile sistemului și să găsim răspunsul la impuls:

(răspunsul la impuls de filtru).

Răspunsul la impuls al unui filtru FIR conține un număr finit de elemente, iar filtrul este întotdeauna stabil.

Vom găsi răspuns în frecvență prin efectuarea înlocuirii

T=1/fs – interval de eșantionare.

Să luăm în considerare cel mai simplu dintre filtrele digitale - filtre cu parametri constanti.

Semnalul de intrare al filtrului digital este furnizat sub forma unei secvențe de valori numerice, urmând la intervale (Fig. 4.1, a). Când fiecare valoare de semnal următoare este primită în filtrul digital, următoarea valoare a semnalului de ieșire este calculată. Algoritmii de calcul pot fi foarte diverși. în timpul procesului de calcul, pe lângă ultima valoare a semnalului de intrare, poate fi utilizată

valorile anterioare ale semnalelor de intrare și de ieșire: Semnalul de ieșire al unui filtru digital este, de asemenea, o secvență de valori numerice care urmează un interval de . Acest interval este același pentru întregul dispozitiv prelucrare digitală semnale.

Orez. 4.1. Semnal la intrarea și ieșirea filtrului digital

Prin urmare, dacă aplicați cel mai simplu semnal sub forma unui singur impuls la intrarea unui filtru digital (Fig. 4.2, a)

apoi la ieșire obținem un semnal sub forma unei secvențe discrete de valori numerice, urmând la intervale

Prin analogie cu circuitele analogice convenționale, să numim acest semnal de răspuns răspunsul la impuls al filtrului (Fig. 4.2, b). Spre deosebire de răspunsul la impuls al unui circuit analogic, funcția este adimensională.

Orez. 4.2. Impulsul unitar și răspunsul la impuls al unui filtru digital

Să introducem un filtru arbitrar la intrare semnal discret orez. 4.1, a), care este un set de valori discrete

Sub acțiunea primului element, la ieșirea filtrului se formează o secvență înmulțită cu, sub acțiune, o secvență este înmulțită cu și deplasată la dreapta cu o sumă etc. Ca rezultat, ieșirea va obține; secvență în care

Astfel, semnalul de ieșire este definit ca convoluția discretă a semnalului de intrare și răspunsul la impuls. În acest sens, filtrele digitale sunt similare cu circuitele convenționale, unde semnalul de ieșire este egal cu convoluția semnalului de intrare și răspunsul la impuls.

Formula (4.1) este un algoritm de filtrare digitală. Dacă răspunsul la impuls al unui filtru este descris de o secvență cu un număr finit de termeni, atunci filtrul poate fi implementat sub forma unui circuit prezentat în Fig. 4.3. Aici litera indică elementele de întârziere a semnalului pentru timp (pe celulă); -elemente care înmulţesc semnalul cu coeficientul corespunzător.

Diagrama prezentată în Fig. 4.3 nu este schema electrica filtru digital; această diagramă reprezintă imagine grafică algoritm de filtrare digitală și arată succesiunea operațiilor aritmetice efectuate în timpul procesării semnalului.

Orez. 4.3. Circuit de filtru digital nerecursiv

Pentru filtrele digitale care procesează semnale sub formă de secvențe numerice abstracte, conceptul de „întârziere” nu este în întregime corect. Prin urmare, elementele care întârzie semnalul cu o celulă sunt de obicei marcate pe circuitele de filtrare digitale cu un simbol care indică întârzierea semnalului în limbajul -transformărilor. În cele ce urmează vom adera la această notație.

Să revenim la circuitul de filtru digital prezentat în Fig. 4.3, Astfel de filtre, în care numai valorile semnalului de intrare sunt utilizate pentru calcul, sunt numite simple sau nerecursive.

Algoritmul de filtru non-recursiv este ușor de scris dacă răspunsul la impuls al filtrului este cunoscut. Pentru implementare practică Algoritmul necesită ca răspunsul la impuls să conțină un număr finit de termeni. Dacă răspunsul la impuls conține un număr infinit de termeni, dar ei scad rapid în valoare, atunci vă puteți limita la un număr finit de termeni, renunțând pe cei ale căror valori sunt mici. Dacă elementele răspunsului la impuls nu scad în valoare, algoritmul de filtru nerecursiv se dovedește a fi irealizabil.

Orez. 4.4. -lanţ

Ca exemplu, luați în considerare cel mai simplu filtru digital, similar cu circuitul - (Fig. 4.4). Răspunsul la impuls al circuitului are forma

Pentru a scrie răspunsul la impuls al filtrului digital corespunzător, expresia ar trebui înlocuită cu Cu toate acestea, răspunsul la impuls al unui circuit are o dimensiune, iar răspunsul la impuls al unui filtru digital trebuie să fie adimensional. Prin urmare, omitem multiplicatorul din expresia (4.2) și scriem răspunsul la impuls al filtrului digital sub forma

Un astfel de răspuns la impuls conține infiniti termeni, dar amploarea lor scade conform unei legi exponențiale și ne putem limita la termeni, alegând astfel încât

Acum putem scrie expresia semnalului la ieșirea filtrului

Această expresie este, de asemenea, un algoritm de filtru digital. Diagrama acestui filtru este prezentată în Fig. 4.5.

A doua abordare a analizei proceselor din filtrele digitale este similară cu metoda operatorului de analiză a circuitelor analogice convenționale, doar că în locul transformării Laplace se folosește transformarea -.

Orez. 4.5. Circuit al unui filtru digital nerecursiv similar unui circuit

Să definim un parametru de filtru digital similar cu funcția de transfer circuit electric. Pentru a face acest lucru, aplicați o transformare răspunsului la impuls al unui filtru digital:

Funcția se numește funcție de filtrare a sistemului.

În conformitate cu expresia (4.1), semnalul de la ieșirea filtrului digital este egal cu convoluția discretă a semnalului de intrare și răspunsul la impuls al filtrului. Aplicând teorema de convoluție acestei expresii, obținem că transformarea semnalului de ieșire este egală cu transformarea semnalului de intrare înmulțită cu funcția de filtrare a sistemului:

Astfel, funcția de sistem joacă rolul funcției de transfer a unui filtru digital.

Ca exemplu, să găsim funcția de sistem a unui filtru digital de ordinul întâi similar cu un -circuit:

A treia metodă de analiză a trecerii semnalelor prin filtre digitale este similară cu metoda clasică a ecuațiilor diferențiale. Să luăm în considerare această metodă folosind lanțurile de ordine ca exemplu.

Cel mai simplu circuit analogic De ordinul 1 este un -circuit (vezi Fig. 4.4), trecerea semnalelor prin care este descrisă de ecuația diferențială

În schimb, pentru un circuit discret ecuație diferențială(4.8) ar trebui să se scrie o ecuație a diferenței, în care semnalele de intrare și de ieșire sunt specificate pentru momente discrete de timp și, în loc de derivată, ar trebui să apară diferența valorilor semnalelor adiacente. Pentru un circuit discret de ordinul 1, ecuația diferenței poate fi scrisă într-o formă destul de generală

Să aplicăm transformarea ecuației

unde găsim funcția de filtrare a sistemului

Formula (4.10) este o expresie destul de generală pentru functia sistemului Filtru digital de primă ordine. Când coincide cu expresia obținută anterior (4.7) pentru funcția de sistem a unui filtru digital echivalent cu un -circuit.

Să găsim un algoritm de filtrare digitală corespunzător funcției de sistem (4.10). Pentru a face acest lucru, rezolvăm ecuația (4.9) pentru

O diagramă echivalentă a acestui algoritm este prezentată în Fig. 4.6. În comparație cu un filtru nerecursiv (vezi Fig. 4.5), aici a fost adăugat un fel de „lanț” feedback", ceea ce înseamnă că valorile semnalului de ieșire sunt utilizate în continuare

Orez. 4.6. Circuit al unui filtru digital recursiv similar unui -circuit

calcule. Filtrele de acest tip se numesc recursive.

Algoritmul (4.11) corespunde unui filtru care este complet echivalent cu filtrul nerecursiv considerat mai devreme. Dar pentru a determina o valoare a semnalului de ieșire folosind algoritmul de filtru nerecursiv (4.4), este necesar să se efectueze operații, iar atunci când se folosește algoritmul de filtru recursiv (4.11), sunt necesare doar două operații. Acesta este principalul avantaj al filtrelor recursive. În plus, filtrele recursive permit procesarea semnalului cu o precizie mai mare, deoarece permit o implementare mai corectă a răspunsului la impuls fără a-i elimina „coada”. Filtrele recursive vă permit să implementați algoritmi care nu pot fi deloc implementați folosind filtre nerecursive. De exemplu, cu un filtru care funcționează conform circuitului din Fig. 4.6, este în esență un acumulator-integrator ideal și are un răspuns la impuls de forma Un filtru cu o astfel de caracteristică nu poate fi implementat folosind o schemă nerecursivă.

Exemplele luate în considerare arată că nu are rost să folosim algoritmi nerecursivi pentru a crea filtre digitale cu un răspuns lung la impuls. În aceste cazuri, este mai potrivit să folosiți filtre recursive.

Domeniul de aplicare a algoritmilor nerecursivi este implementarea filtrelor digitale cu un răspuns la impuls care conține un număr mic de termeni. Un exemplu este cel mai simplu diferențietor, al cărui semnal de ieșire este egal cu creșterea semnalului de intrare:

Circuitul unui astfel de filtru digital este prezentat în Fig. 4.7.

Orez. 4.7. Circuitul celui mai simplu diferențiator digital

Să luăm acum în considerare un filtru digital general, care este descris de ecuație

Această ecuație poate fi considerată atât ca o ecuație de diferență de ordin, cât și ca un algoritm de filtrare digitală, dacă este rescrisă diferit, și anume

Orez. 4.8. Circuit recursiv de filtru de ordine digitală

Algoritmul (4.13) corespunde circuitului prezentat în Fig. 4.8. Să găsim funcția de sistem a unui astfel de filtru. Pentru a face acest lucru, aplicați transformarea ecuației:

Expresia (4.14) ne permite să stabilim o legătură între fluctuațiile elementelor circuitului de filtrare și funcția sistemului. Coeficienții din numărătorul funcției de sistem determină valorile coeficienților pentru

(în partea nerecursivă a filtrului), iar coeficienții din numitor determină partea recursivă a filtrului.

Totul a început când un prieten al unui prieten al unui prieten a avut nevoie de ajutor cu aceleași filtre. Prin căile Jedi mi-au ajuns zvonuri despre asta, m-am dezabonat în comentarii la postarea de pe link. Părea că ajută. Ei bine, sper.

Această poveste mi-a trezit amintiri din a treia, sau ceva de genul, bineînțeles, când eu însumi am luat DSP și m-a determinat să scriu un articol pentru toți cei care sunt interesați de modul în care funcționează filtrele digitale, dar care sunt în mod natural speriați de peste. -formule de top și desene psihedelice în (eu deja nu vorbesc de manuale).

În general, din experiența mea, situația cu manualele este descrisă de cunoscuta frază că uneori nu poți vedea pădurea pentru copaci. Și adică, atunci când încep imediat să te sperie cu transformarea Z și cu formulele de împărțire a polinoamelor, care sunt adesea mai lungi de două plăci, interesul pentru subiect dispare extrem de repede. Vom începe cu unul simplu din fericire, pentru a înțelege ce se întâmplă, nu este deloc necesar să descriem expresii lungi și complexe.

Deci, mai întâi, câteva concepte de bază simple.

1. Răspuns la impuls.

Să presupunem că avem o cutie cu patru ace. Nu avem idee ce este înăuntru, dar știm sigur că cele două terminale din stânga sunt intrarea, iar cele două din dreapta sunt ieșirea. Să încercăm să-i aplicăm un impuls foarte scurt de amplitudine foarte mare și să vedem ce se întâmplă la ieșire. Ei bine, ce, nu este clar ce se află în interiorul acestui cvadripol, pentru că nu este clar cum să-l descriem, dar cel puțin vom vedea ceva.

Aici trebuie spus că un impuls scurt (în general vorbind, infinit scurt) de amplitudine mare (în general vorbind, infinită) în teorie se numește funcție delta. Apropo, amuzant este că integrala acestui lucru fără sfârşit funcția este egală cu unu. Aceasta este normalizarea.

Deci, ceea ce am văzut la ieșirea rețelei cu patru poli, după ce a aplicat funcția delta la intrare, se numește răspuns la impuls acest cvadripol. Deocamdată, însă, nu este clar cum ne va ajuta, dar să ne amintim doar rezultatul obținut și să trecem la următorul concept interesant.

2. Convoluție.

Pe scurt, convoluția este o operație matematică care se rezumă la integrarea produsului funcțiilor:

După cum puteți vedea, este indicat printr-un asterisc. De asemenea, puteți vedea că în timpul convoluției, o funcție este luată în ordinea ei „înainte”, iar pe a doua o trecem „înapoi în față”. Desigur, în cazul discret, care este mai valoros pentru umanitate, convoluția, ca orice integrală, intră în însumare:

Ar părea un fel de abstractizare matematică plictisitoare. Cu toate acestea, de fapt, un pachet este poate cel mai magic fenomen al acestei lumi, al doilea doar ca uimire după nașterea unei persoane, singura diferență fiind că majoritatea oamenilor află de unde provin copiii cel puțin până la vârsta de optsprezece, în timp ce despre Ce este o convoluție și de ce este utilă și uimitoare, o mare parte a populației Pământului nu are absolut nicio idee toată viața.

Deci, puterea acestei operațiuni constă în faptul că, dacă f este orice semnal de intrare arbitrar și g este răspunsul la impuls al unei rețele cu patru porturi, atunci rezultatul convoluției acestor două funcții va fi similar cu ceea ce am fi obțineți prin trecerea semnalului f prin această rețea cu patru porturi.

Adică, răspunsul la impuls este o distribuție completă a tuturor proprietăților rețelei cu patru porturi în raport cu efectul de intrare, iar convoluția semnalului de intrare cu acesta vă permite să restabiliți semnalul de ieșire corespunzător.

După părerea mea, acest lucru este pur și simplu uimitor!

3. Filtre.

Puteți face o mulțime de lucruri interesante cu răspuns la impuls și convoluție. De exemplu, dacă semnalul este audio, puteți organiza reverb, ecou, ​​chorus, flanger și multe, multe altele; poți să diferențiezi și să integrezi... În general, poți crea orice. Pentru noi acum, cel mai important lucru este că, desigur, filtrele pot fi obținute cu ușurință și folosind convoluția.

Filtrul digital în sine este convoluția semnalului de intrare cu un răspuns la impuls corespunzător filtrului dorit.

Dar, desigur, răspunsul la impuls trebuie obținut cumva. Desigur, ne-am dat seama deja cum să-l măsurăm mai sus, dar într-o astfel de sarcină nu are niciun sens în acest sens - dacă am asamblat deja filtrul, de ce să măsurăm altceva, îl putem folosi așa cum este. Și, în plus, cea mai importantă valoare a filtrelor digitale este că pot avea caracteristici care sunt de neatins (sau foarte greu de realizat) în realitate - de exemplu, fază liniară. Deci nu există nicio modalitate de a măsura aici, trebuie doar să numărați.

4. Obținerea răspunsului la impuls.

Să presupunem că am decis ce vrem de la un filtru și am creat o ecuație care îl descrie. Apoi, pentru a găsi răspunsul la impuls, puteți înlocui funcția delta în ecuația derivată și obțineți cea dorită. Singura problemă este cum se face acest lucru, deoarece funcția delta este în timp O Regiunea este dată de un sistem viclean și, în general, există tot felul de infinitate. Deci, în această etapă, totul se dovedește a fi teribil de dificil.

Aici se întâmplă că ei își amintesc că există așa ceva ca transformarea Laplace. În sine, nu este un kilogram de stafide. Singurul motiv pentru care este tolerat în ingineria radio este tocmai faptul că în spațiul argumentului la care această transformare este o tranziție, unele lucruri devin de fapt mai simple. În special, aceeași funcție delta care ne-a dat atât de multe probleme în domeniul timpului este foarte ușor de exprimat - aici este doar una!

Transformarea Z (alias transformată Laurent) este o versiune a transformării Laplace pentru sisteme discrete.

Adică, aplicând transformarea Laplace (sau transformarea Z, după caz) funcției care descrie filtrul dorit, înlocuind unul în cel rezultat și transformând înapoi, obținem răspunsul la impuls. Sună ușor, oricine îl poate încerca. Nu voi risca, pentru că, așa cum am menționat deja, transformarea Laplace este un lucru dur, mai ales invers. Să o lăsăm ca ultimă soluție și vom căuta mai multe moduri simple obțineți ceea ce căutați. Sunt mai multe dintre ele.

În primul rând, putem aminti un alt fapt uimitor al naturii - caracteristicile de amplitudine-frecvență și impuls sunt legate între ele prin transformarea Fourier bună și familiară. Aceasta înseamnă că putem atrage orice răspuns în frecvență pe gustul nostru, să luăm transformarea Fourier inversă din ea (fie continuă sau discretă) și să obținem răspunsul la impuls al sistemului care o implementează. Acesta este pur și simplu uimitor!

Acest lucru, însă, nu va fi fără probleme. În primul rând, răspunsul la impuls pe care îl primim va fi cel mai probabil infinit (nu voi intra în explicații despre motivul; așa funcționează lumea), așa că va trebui să-l întrerupem în mod voluntar la un moment dat (setând-o egal cu zero). dincolo de acel punct). Dar acest lucru nu se va întâmpla chiar așa - consecința acestui lucru, așa cum s-ar putea aștepta, va fi distorsiunea răspunsului în frecvență al filtrului calculat - va deveni ondulat, iar limita de frecvență va fi neclară.

Pentru a minimiza aceste efecte, la răspunsul la impuls scurt sunt aplicate diferite funcții ale ferestrei de netezire. Ca urmare, răspunsul în frecvență este de obicei neclar și mai mult, dar oscilațiile neplăcute (mai ales în banda de trecere) dispar.

De fapt, după o astfel de procesare obținem un răspuns la impuls de lucru și putem construi un filtru digital.

A doua metodă de calcul este și mai simplă - răspunsurile la impuls ale celor mai populare filtre au fost de multă vreme exprimate în formă analitică pentru noi. Tot ce rămâne este să vă înlocuiți valorile și să aplicați funcția fereastră la rezultat după bunul plac. Deci nu trebuie să luați în considerare nicio transformare.

Și, desigur, dacă scopul este de a emula comportamentul unui anumit circuit, puteți obține răspunsul său la impuls în simulator:

Aici am aplicat un impuls de 100500 volți (da, 100,5 kV) cu o durată de 1 μs la intrarea circuitului RC și am obținut răspunsul la impuls al acestuia. Este clar că acest lucru nu se poate face în realitate, dar în simulator această metodă, după cum puteți vedea, funcționează grozav.

5. Note.

Ceea ce s-a spus mai sus despre scurtarea răspunsului la impuls s-a aplicat, desigur, la așa-numitul. filtre de răspuns la impuls finit (filtre FIR/FIR). Au o mulțime de proprietăți valoroase, inclusiv faza liniară (în anumite condiții pentru construirea răspunsului la impuls), care asigură absența distorsiunii semnalului în timpul filtrării, precum și stabilitatea absolută. Există, de asemenea, filtre de răspuns la impuls infinit (filtre IIR/IIR). Sunt mai puțin consumatoare de resurse în ceea ce privește calculele, dar nu mai au avantajele enumerate.

În articolul următor sper să mă uit la un exemplu simplu de implementare practică a unui filtru digital.



 


Citire:



Utilizarea stilurilor în Excel Cum să vă creați propriul stil nou

Utilizarea stilurilor în Excel Cum să vă creați propriul stil nou

Dacă utilizați în mod constant aceleași opțiuni pentru a formata celulele foii de lucru din foile de calcul, ar putea fi înțelept să creați un stil de formatare...

Ce erori apar în timpul instalării?

Ce erori apar în timpul instalării?

Notă: Programele AutoLISP pot fi rulate numai pe versiunea completă a AutoCAD, ele nu funcționează sub AutoCAD LT. (excluzând cazurile de încărcare...

Statutul social al unei persoane în societate

Statutul social al unei persoane în societate

Sugerați ceea ce determină alegerea unei persoane cu privire la statutul său principal. Folosind textul și faptele vieții sociale, faceți două presupuneri și...

Interpretarea completă a erorilor

Interpretarea completă a erorilor

Destul de mulți utilizatori s-au confruntat cu fenomenul ecranului albastru al morții. Ce trebuie să faceți (Windows 7 este cel mai adesea predispus la această problemă)...

Un utilitar rapid și sigur pentru formatarea cardurilor de memorie SD, SDHC și SDXC.  Programul acceptă, de asemenea, lucrul cu alte tipuri de... imagine-alimentare