Úvod do funkce filtru v Matlabu
Tato funkce filtruje sekvenci dat pomocí digitálního filtru, výstupem filtrování je v podstatě vyhlazení nebo zaostření signálu (eliminace specifického frekvenčního rozsahu). Je to přímé z II implementace signálu (standardní diferenční rovnice). Filtry v Matlabu lze znázornit čtyřmi způsoby:
- Výstup = filtr (koeficient b, koeficient a, x)
- Výstup = filtr ((b, a, x, z)
- Filtr (b, a, x, z, dim)
- F, zf = filtr ()
Syntaxe a příklady
Níže jsou uvedeny syntaxe a příklady funkce filtru v Matlabu:
1. Výstup = filtr (koeficient b, koeficient a, x)
- Toto modelování používalo funkci racionálního přenosu na vstupním signálu 'x'. Ve výše uvedené rovnici aab jsou koeficienty čitatele a jmenovatele signálu.
- V tomto případě je povinné mít (1) 1, takže normalizujeme koeficient na 1, abychom splnili tuto podmínku, a (1) by se nemělo rovnat nule, pak pouze můžeme normalizovat koeficient.
- Výstup filtru závisí na typu vstupu 'x'.
- Pokud je vstup 'x' vektor, dostaneme výstup 'z' jako vektor.
- Pokud je vstupní signál 'x' matice, dostaneme výstupní signál 'z' vzhledem ke každému sloupci.
- A pokud se jedná o vícerozměrný signál, dostaneme výstup s ohledem na první pole.
Příklad
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')
Výstup:
2. F = filtr ((b, a, x, z)
- Pokud při navrhování existují omezení paměti, pak některé filtry vezmou v úvahu počáteční stav a konečný stav.
- Tyto filtry vytvářejí velká data a rozdělují vstupy do dvou segmentů.
Příklad
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
Výstup:
Výstup výše uvedeného kódu je 1, což znamená logický 1, logický 1 je skutečná podmínka.
3. Filtr (b, a, x, z, dim)
Tento typ filtru se používá pro návrh a vstup matice.
Příklad
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')
Výstup:
4. F, zf = filtr ()
Pokud existuje omezení paměti, použije se tento typ filtru, použije počáteční a konečné podmínky a rozdělí vstupní signál na dva segmenty.
Příklad
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
Výstup:
Výstup výše uvedeného signálu je logický 1, což znamená, že podmínka je pravdivá.
Závěr - Funkce filtru v Matlabu
Funkce filtru se používá hlavně k implementaci filtru Moving Average. Filtr s klouzavým průměrem je nejjednodušší a běžná metoda vyhlazení. filtrování se také používá k odstranění šumu.
Doporučené články
Toto je průvodce funkcí filtrování v Matlabu. Zde diskutujeme úvod a různé příklady funkce filtru v matlabu spolu s jeho syntaxí. Další informace naleznete také v následujících článcích
- Vložené funkce v Matlabu
- Přenos funkcí v Matlabu
- Anonymní funkce v Matlabu
- MATLAB Interview Otázky
- Funkce MATLAB
- Kompilátor Matlab | Aplikace Matlab Compiler