Introducere în funcția de filtrare în Matlab

Această funcție filtrează secvența de date folosind un filtru digital, ieșirea filtrării este în principal netezirea sau ascuțirea semnalului (eliminând domeniul specific de frecvență). Este direct din implementarea II a semnalului (ecuația diferenței standard). Există patru modalități de a reprezenta filtrele în Matlab după cum urmează:

  1. Ieșire = filtru (coeff b, coeff a, x)
  2. Ieșire = filtru ((b, a, x, z)
  3. Filtru (b, a, x, z, dim)
  4. F, zf = filter ()

Sintaxa și exemple

Mai jos sunt Sintaxa și exemple de funcții de filtrare în Matlab:

1. Ieșire = filtru (coeff b, coeff a, x)

  • Această modelare a folosit funcția de transfer rațional pe semnalul de intrare „x”. În ecuația de mai sus, a și b sunt coeficienții numărătorului și numitorului semnalului.
  • În acest caz, este obligatoriu să avem (1) este 1, deci, normalizăm coeficientul la 1 pentru a satisface această condiție, un (1) nu trebuie să fie egal cu zero, atunci doar putem să normalizăm coeficientul.
  • Ieșirea filtrului depinde de tipul de intrare „x”.
  • Dacă intrarea „x” este vector, atunci obținem ieșirea „z” ca vector.
  • Dacă semnalul de intrare „x” este matricial, atunci vom primi un semnal de ieșire „z” cu privire la fiecare coloană.
  • Și dacă este un semnal multidimensional, atunci obținem ieșire în raport cu primul tablou.

Exemplu

T = linspace(-pi, pi, 100 );
X = sin( t ) + 0.50 * rand ( size( t )) ;
w_size = 5;
b = ( 1 /w_size ) * ones( 1, w_size ) ;
a = 1 ;
f = filter ( coeff b, coeff a, x ) ;
plot ( t, x )
hold on
plot ( t, f )
legend ( 'Input ', 'Filter Data')

ieşire:

2. F = filtru ((b, a, x, z)

  • Dacă există proiecte de limitare a memoriei, atunci unele filtre iau în considerare condiția inițială și condiția finală.
  • Aceste filtre creează date mari și împart intrarea în două segmente.

Exemplu

x = randn( 110000, 1 ); - - - creation of input sequence x (1 to 110000)
x1 = x ( 1 : 51000 ) ; - - - splitting the seq. x1= 1 to 51000
x2 = x ( 51001 : end ) ; - - - second seg is x2 = 51000 to 110000
b = ( 4, 3 ) ; - - - numerator coefficient
a = ( 1, 0.4 ) ; - - - denominator coefficient
( f1, zf ) = filter ( b, a, x1 ) ; - - - filter function
f2 = filter ( b, a, x2, zf ) ; - - - filter function
f = filter ( b, a, x ) ; - - - filter function
isequal( f, ( f1 ; f2 ) ) - - - filter function matching

ieşire:

Ieșirea codului de mai sus este 1 ceea ce înseamnă logică 1, logica 1 este o condiție adevărată.

3. Filtru (b, a, x, z, dim)

Acest tip de filtru este utilizat pentru proiectarea de intrare și ieșire a matricei.

Exemplu

rng default
x = rand ( 3, 10 ) ; - - - creation of input sequence 3 by 10
b = 1 ; - - - coefficient of numerator
a = ( 4 -0 .1 ) ; - - - coefficient of numerator
f = filter ( b, a, x, ( ), 2 ) ; - - - filter function
t = 0 : length (input seq. )-1 ;
plot ( t, x ( 1, : ) ) - - - input signal
hold on
plot ( t, f ( 1, : ) ) - - - output signal
legend('Input ', 'Filter output')

ieşire:

4. F, zf = filtru ()

Dacă există o limitare a memoriei, atunci este folosit acest tip de filtru, acesta a utilizat condiții inițiale și finale și împarte semnalul de intrare în două segmente.

Exemplu

x = randn ( 110000, 1 ) ; - - - create random signal
x1 = x ( 1 : 51000 ) ; - - - splits signal from 1 to 51000
x2 = x ( 51001 : end ) ; - - - second input signal 51001 to 110000
b = ( 6, 3 ); . - - -numerator coefficient
a = ( 1, 0.9 ) ; - - - denominator coefficient
( f1, zf ) = filter ( b, a, x1 ) ; - - - filter function
f2 = filter ( b, a, x2, zf ) ; . - - - filter function
f = filter ( b, a, x) ; - - - .filter function
isequal ( f, ( f1 ; f2 ) ) - - - output signal matching

ieşire:

Ieșirea semnalului de mai sus este logică 1 ceea ce înseamnă că condiția este adevărată.

Concluzie - Funcția filtrului în Matlab

Funcția de filtrare folosită în principal pentru implementarea filtrului mediu în mișcare. Filtrarea medie în mișcare este cea mai simplă și obișnuită metodă de netezire. filtrarea este de asemenea folosită pentru a elimina zgomotul.

Articole recomandate

Acesta este un ghid pentru funcția de filtrare în Matlab. Aici discutăm introducerea și diferite exemple de funcție de filtru în matlab împreună cu sintaxa acesteia. De asemenea, puteți consulta următoarele articole pentru a afla mai multe-

  1. Funcții în linie în Matlab
  2. Funcții de transfer în Matlab
  3. Funcții anonime în Matlab
  4. Întrebări la interviu MATLAB
  5. Funcții MATLAB
  6. Compilator Matlab | Aplicații ale compilatorului Matlab

Categorie: