Inleiding tot filterfunctie in Matlab

Deze functie filtert de gegevensvolgorde met behulp van een digitaal filter, de output van filtering is in feite het afvlakken of verscherpen van het signaal (elimineren van een specifiek frequentiebereik). Het is direct van II implementatie van signaal (standaardverschilvergelijking). Er zijn vier manieren om filters in Matlab als volgt weer te geven:

  1. Uitgang = filter (coeff b, coeff a, x)
  2. Uitgang = filter ((b, a, x, z)
  3. Filter (b, a, x, z, dimmen)
  4. F, zf = filter ()

Syntaxis en voorbeelden

Hieronder staan ​​de syntaxis en voorbeelden van filterfunctie in Matlab:

1. Uitgang = filter (coeff b, coeff a, x)

  • Deze modellering gebruikte rationele overdrachtsfunctie op ingangssignaal 'x'. In de bovenstaande vergelijking zijn a en b de signaalcoëfficiënten van de teller en de noemer.
  • In dit geval is het verplicht om een ​​(1) 1 te hebben, dus normaliseren we de coëfficiënt tot 1 om te voldoen aan deze voorwaarde a (1) moet niet gelijk zijn aan nul, dan kunnen we alleen de coëfficiënt normaliseren.
  • De uitvoer van het filter is afhankelijk van het type invoer 'x'.
  • Als invoer 'x' vector is, krijgen we uitvoer 'z' als een vector.
  • Als het ingangssignaal 'x' matrix is, krijgen we een uitgangssignaal 'z' met betrekking tot elke kolom.
  • En als het een multidimensionaal signaal is, krijgen we uitvoer met betrekking tot de eerste array.

Voorbeeld

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')

Output:

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

  • Als er geheugenbeperkingen zijn bij het ontwerpen, houden sommige filters rekening met de begin- en eindconditie.
  • Deze filters maken grote gegevens en verdelen invoer in twee segmenten.

Voorbeeld

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

Output:

De uitvoer van de bovenstaande code is 1 dat betekent logisch 1, logisch 1 is een echte voorwaarde.

3. Filter (b, a, x, z, dimmen)

Dit type filter wordt gebruikt voor het ontwerpen van matrixinvoer en -uitvoer.

Voorbeeld

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')

Output:

4. F, zf = filter ()

Als er geheugenbeperking is, wordt dit type filter gebruikt, het gebruikte begin- en eindvoorwaarden en verdeelt het ingangssignaal in twee segmenten.

Voorbeeld

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

Output:

De uitvoer van het bovenstaande signaal is logisch 1, wat betekent dat de voorwaarde waar is.

Conclusie - filterfunctie in Matlab

De filterfunctie wordt voornamelijk gebruikt om een ​​voortschrijdend gemiddelde-filter te implementeren. Filteren op basis van voortschrijdend gemiddelde is de eenvoudigste en meest gebruikelijke methode voor het gladmaken. filteren wordt ook gebruikt om ruis te verwijderen.

Aanbevolen artikelen

Dit is een handleiding voor de filterfunctie in Matlab. Hier bespreken we de introductie en verschillende voorbeelden van filterfuncties in Matlab samen met de syntaxis. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Inline functies in Matlab
  2. Overdrachtsfuncties in Matlab
  3. Anonieme functies in Matlab
  4. Vragen tijdens solliciteren bij MATLAB
  5. MATLAB-functies
  6. Matlab-compiler | Toepassingen van Matlab Compiler

Categorie: