L2 Przetwarzanie sygnałów w dziedzinie czasu

background image

Akademia Górniczo-Hutnicza

Katedra Robotyki i Mechatroniki

Identyfikacja i analiza sygnałów

Laboratorium 2

Wprowadzenie do przetwarzania sygnałów w dziedzinie

czasu

background image

Przetwarzanie sygnału dla potrzeb badania dynamiki układów
mechanicznych

Problemy wstępnego przetwarzania sygnału w dziedzinie czasu

Podstawową czynnością w przetwarzaniu sygnałów jest przetwarzanie sygnału o naturze
analogowej do postaci cyfrowej. Proces ten polega na zamianie wielkości analogowej na ciąg
dyskretnych wartości w zadanych chwilach czasowych. Operacja ta nie wnosi nowych
informacji o sygnale, czasem może prowadzić do utraty pewnej ilości informacji.
Przetwarzanie analogowo-cyfrowe sygnałów składa się z dwóch podstawowych czynności:

kwantowanie sygnału,

dyskretyzacja sygnału.

0

1

2

3

4

5

6

7

8

n

t

t

1

2

3

4

5

6

7

(0,4) (1,7) (2,6) (3,2)

(4,1) (5,4) (6,7) (7,5)...(n,7)

X

Rys. 1 Schematyczne przedstawienie procesu przetwarzania analogowo

cyfrowego.

Dyskretyzacja sygnału polega na wyborze na osi czasu dyskretnych chwil czasowych, w
których określona jest wartość amplitudy sygnału w procesie przetwarzania. Dyskretyzacja
sygnału odbywa się z okresem próbkowania zależnym od wymaganych parametrów analizy,
zakresu częstości w analizowanym sygnale tak, aby spełnione było twierdzenie Shanona o
próbkowaniu sygnałów. Twierdzenie to mówi, że: "Sygnał nie zawierający częstości
większych niż f

N

(częstość graniczna) może być jednoznacznie opisany za pomocą

dyskretnych próbek, otrzymanych przez próbkowanie analizowanego sygnału z częstością

f

f

S

N

2

" W praktyce częstość f

S

jest 4 do 10 razy większa niż częstość f

N

.

Kolejną czynnością jest kwantyzacja polegająca na zamianie wartości analogowej na postać
cyfrową o wartości całkowitej związanej z ustalonym poziomem kwantyzacji.. Przetwarzanie
analogowo-cyfrowe sygnałów jest wykonywane za pomocą specjalizowanych układów
elektronicznych.

background image

Przykłady związane z doborem częstotliwości próbkowania

Odpowiedni dobór częstotliwości próbkowania:

f1 = 1; % Częstotliwości przykładowych przebiegów sinusoidalnych
f2 = 4;

f3 = 6;

fs = 200; % Częstotliwość próbkowania sygnału
t=0:(1/fs):1; % Wektor czasu

% Definicje przykładowych przebiegów sinusoidalnych

x1 = sin(2*pi*f1*t);
x4 = -sin(2*pi*f2*t);

x6 = sin(2*pi*f3*t);
plot(t,x1,t,x4,t,x6)

Wybór zbyt niskiej częstotliwości próbkowania:

fs = 5; % Częstotliwość próbkowania sygnału
t=0:(1/fs):1; % Wektor czasu

% Definicje przykładowych przebiegów sinusoidalnych

x1 = sin(2*pi*f1*t);
x4 = -sin(2*pi*f2*t);

x6 = sin(2*pi*f3*t);
plot(t,x1,t,x4,t,x6)

Kolejny przykład złego doboru częstotliwości próbkowania zawarty jest poniżej.

fs = 20; % Częstotliwość próbkowania sygnału

t=0:(1/fs):10; % Wektor czasu

x = sin(2*pi*40*t);
plot(t,x)

Przedstawiona w powyższych przykładach niejednoznaczność przetwarzania analogowo
cyfrowego jest podstawowym problemem przetwarzania sygnałów. Wynika ona z faktu, że w
przypadku gdy w sygnale znajdują się składowe o częstości większej niż f

S

/ 2 wówczas nie

mogą one być odtworzone w sposób jednoznaczny, a mogą mieć wpływ na wartość amplitudy
sygnału. Zjawisko to jest nazywane aliazingiem.
Aby uniknąć zjawiska aliazingu należy przed przetwarzaniem usunąć z sygnału wszystkie
składowe o częstości większej niż f

S

/ 2 . W tym celu stosuje się na etapie kondycjonowania

sygnału filtrację analogową za pomocą filtru dolnoprzepustowego, o częstości przepuszczania

mniejszej niż

f

S

2

. Ze względu na to, że nie istnieją filtry idealne o pionowym nachyleniu

zbocza, częstość graniczną filtru przyjmuje się w praktyce ok. 40 % f

S

. Nachylenie zbocza

filtru zależy od jego rzędu i dla najczęściej stosowanych filtrów typu Buttworta 6 rzędu
wynosi 48 dB na oktawę. Do bardzo efektywnych filtrów należą filtry Cautera, dla których
nachylenie zbocza wynosi 96 dB/oktawę.

background image

Zastosowanie filtracji cyfrowej

W tej części przedstawiono możliwości toolboxu Signal Processing Toolbox (SPT) z zakresu
analizy i projektowania filtrów cyfrowych.

Splot i filtrowanie
Matematyczną podstawą filtracji jest splot. Matlabowska funkcja

conv

dokonuje

standardowego jednowymiarowego splotu dwóch wektorów.

conv([1 1 1],[1 1 1])

ans =

1 2 3 2 1

Splotu macierzy prostokątnych dla dwuwymiarowego przetwarzania sygnałów można
natomiast dokonać za pomocą funkcji

conv2

.

Sekwencja danych y(n) otrzymywana na wyjściu filtru cyfrowego jest splotem ciągu danych
wejściowych x(n) przez splot z odpowiedzią impulsowego filtru h(n):

− ∞

=

=

=

m

)

m

(

x

)

m

n

(

h

)

n

)(

x

h

(

)

n

(

y

( 1 )

i może być interpretowana jako ruchoma średnia ważona wejścia.
Jeżeli odpowiedź impulsowa filtru cyfrowego h(n) oraz sygnał wejściowy x(n) mają
skończone długości, można wtedy dokonać filtracji za pomocą funkcji

conv

. Przykładowo

utworzono sygnał wejściowy x(n) jako wektor x, sygnał h(n) jako wektor h, a następnie
dokonano ich splotu.

x=randn(5,1);

h=[1 1 1 1]/4;
y=conv(h,x);

Funkcja przejścia filtru
Definicja funkcji przejścia filtru oparta jest na własnościach przekształcenia Z. Transformata
Z Y(z) z cyfrowego wyjścia filtru y(n) jest powiązana z transformacją Z X(z) wejścia x(n)
następującym wzorem:

)

z

(

X

z

)

1

na

(

a

...

z

)

2

(

a

1

z

)

1

nb

(

b

...

z

)

2

(

b

)

1

(

b

)

z

(

X

)

z

(

H

)

z

(

Y

na

1

nb

1

+

+

+

+

+

+

+

+

=

=

( 2 )

gdzie H(z) jest funkcją przejścia filtru. Stałe b(i) oraz a(i) są współczynnikami filtru, a
wartość na i nb reprezentuje rząd filtru. Współczynniki filtru są zebrane w dwóch wektorach:
b - dla licznika i a - dla mianownika. Według przyjętej konwencji Matlab używa wektora
wierszowego dla zapamiętania współczynników.

Uwaga: Indeksowanie współczynników w wektorach rozpoczyna się od liczby 1, zamiast od
0. Jest to standardowy schemat stosowanego w Matlabie sposobu indeksowania wektorów.

Filtrowanie przy pomocy funkcji

filter

W celu przedstawienia sposobu działania funkcji

filter

cofnijmy się do zależności (2). Po

pomnożeniu równania (2) przez mianownik ułamka i dokonaniu odwrotnej transformaty Z
otrzymuje się następującą zależność:

)

nb

n

(

x

)

1

nb

(

b

)

1

n

(

x

)

2

(

b

...

)

n

(

x

)

1

(

b

)

na

n

(

y

)

1

na

(

a

...

)

1

n

(

y

)

2

(

a

)

n

(

y

+

+

+

+

+

=

+

+

+

+

( 3 )

Z równania (3) wynika, że wartość y(n) można wyznaczyć znając wartości wejściowe x(n),
x(n-1), ...,x(n-nb)
:

background image

)

na

n

(

y

)

1

na

(

a

...

)

1

n

(

y

)

2

(

a

)

nb

n

(

x

)

1

nb

(

b

...

)

1

n

(

x

)

2

(

b

)

n

(

x

)

1

(

b

)

n

(

y

+

+

+

+

+

=

( 4 )

( )

)

k

n

(

y

)

1

k

(

a

)

m

n

(

x

)

1

m

(

b

n

y

na

0

k

nb

0

m

+

+

=

=

=

Równanie (4) jest standardową reprezentacją filtru cyfrowego w dziedzinie czasu i nosi
nazwę tzw. równania różnicowego. Obliczenia rozpoczyna się dla y(1), zakładając zerowe
warunki początkowe. Algorytm obliczeń przedstawiają równania (5):

)

1

(

y

)

3

(

a

)

2

(

y

)

2

(

a

)

1

(

x

)

3

(

b

)

2

(

x

)

2

(

b

)

3

(

x

)

1

(

b

)

3

(

y

)

1

(

y

)

2

(

a

)

1

(

x

)

2

(

b

)

2

(

x

)

1

(

b

)

2

(

y

)

1

(

x

)

1

(

b

)

1

(

y

+

+

=

+

=

=

( 5 )

W tej formie filtr cyfrowy jest wprowadzany przez funkcję

filter

. Dla przykładu, prosty

rekurencyjny filtr dolnoprzepustowy z pojedynczym biegunem (zero wielomianu mianownika
funkcji przejścia H(z) (2)) jest dany jako:

b=1;

a=[1 -0.9];

gdzie wektory a i b reprezentują współczynniki filtru w formie funkcji przejścia. Filtr
realizowany jest poprzez wyrażenie:

y=filter(b,a,x);

Funkcja

filter

oblicza tyle próbek wyjściowych, ile jest próbek wejściowych, znaczy to, że

długość wektora y jest taka sama, jak długość wejściowego wektora x. Jeśli pierwszy element
a(1) nie jest 1, funkcja

filter

dzieli przez niego współczynniki uprzednio wyprowadzonych

równań różnicowych postaci (4).

Odpowiedź impulsowa
Odpowiedź impulsową (charakterystykę czasową) filtru cyfrowego otrzymujemy podając na
wejście filtru następujący ciąg próbek:



=

=

1

n

dla

0

1

n

dla

1

)

n

(

x

W Matlabie funkcję impulsową, można wygenerować na wiele sposobów. Najprostszy to
wykonanie poniższego polecenia:

imp=[1 zeros(1,49)];

Odpowiedź impulsową prostego filtru o współczynnikach

b=1;

a=[1 -0.9];

otrzymamy

po wykonaniu polecenia:

h=filter(b,a,imp);

Funkcja

impz

w przyborniku upraszcza powyższą operację wybierając liczbę generowanych

punktów oraz tworząc wykres słupkowy odpowiedzi filtru (używając wewnętrznie funkcji

stem

):

impz(b,a)

background image

0

20

40

60

80

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Rys. 2 Odpowiedź impulsowa przykładowego filtru uzyskana za pomocą funkcji impz

Wykres pokazuje eksponencjalny rozkład 0.9

n

układu z pojedynczym biegunem.

Funkcja filter
Funkcja

filter

jest wprowadzana jako transpozycja struktury przedstawionej na rys. 3,

gdzie n-1 jest rzędem filtru.

Σ

Σ

Σ

Σ

z

n-1

(m)

z

-1

z

-1

z

-1

z

2

(m)

z

1

(m)

...

...

...

b(n)

b(1)

b(2)

b(3)

-a(n)

y(m)

-a(2)

-a(3)

x(m)

Rys. 3 Struktura blokowa filtru wprowadzanego w SPT

Jest to podstawowa forma filtru cyfrowego, posiadająca minimalną ilość elementów
opóźniających.
Przy m - tej próbce sygnału, funkcja

filter

rozwiązuje następujący układ równań

różnicowych:

)

m

(

y

)

n

(

a

)

m

(

x

)

n

(

b

)

m

(

z

)

m

(

y

)

1

n

(

a

)

1

m

(

z

)

m

(

x

)

1

n

(

b

)

m

(

z

)

m

(

y

)

2

(

a

)

1

m

(

z

)

m

(

x

)

2

(

b

)

m

(

z

)

1

m

(

z

)

m

(

x

)

1

(

b

)

m

(

y

1

n

1

n

2

n

2

1

1

=

+

=

=

+

=

+

=

( 6 )

W najbardziej podstawowej formie, funkcja

filter

wprowadza opóźnienia z

i

(1), i=1,...,n-1,

równe zero. Opóźnienia te można jednak nastawiać wprowadzając czwarty parametr
wejściowy w funkcji. Można także uzyskać dostęp do opóźnienia wprowadzanego przez
funkcję poprzez wykorzystanie drugiego parametru wyjściowego:

[y,zf]=filter(b,a,x,zi);

background image

Dostęp do wyżej wymienionych parametrów jest użyteczny podczas filtrowania danych w
sekcjach, zwłaszcza gdy należy się liczyć z ograniczeniami pamięci. Przykładowe dane
zgromadzone zostały w dwóch segmentach po 5000 punktów każdy:

x1=randn(5000,1);
x2=randn(5000,1);

Załóżmy, że pierwsza sekwencja x1 odpowiada pierwszym 10 minutom danych, druga zaś x2
kolejnym 10 minutom. Cała sekwencja ma długość x = [x1;x2]. Jeśli nie posiadamy
wystarczającej ilości pamięci do przetworzenia całej sekwencji od razu, przefiltrujmy
podsekwencje jedna po drugiej. Do zapewnienia ciągłości filtrowanych danych, użyjmy
warunków końcowych z filtracji x1 jako warunków początkowych w wywołaniu filtracji x2:

[y1,zf]=filter(b,a,x1);
y2=filter(b,a,x2,zf);

W przyborniku dostępna jest również dodatkowa funkcja

filtic

, generująca zewnętrznie

warunki początkowe dla funkcji

filter

. Utwórzmy taką samą wartość opóźnienia jak w

przykładzie powyżej używając do tego celu funkcji

filtic

:

zf=filtic(b,a,flipud(y1),flipud(x1));

Ta funkcja jest użyteczna podczas filtracji krótkich sekwencji danych, ponieważ odpowiednie
warunki początkowe eliminują startowe stany nieustalone.

Podstawowe funkcje stosowane do filtracji
Oprócz funkcji

filter

w SPT znajdują się jeszcze dwie inne instrukcje, które dokonują

podstawowych operacji filtrowania. Są to

filtfilt

eliminująca zniekształcenia fazowe w

procesie filtrowania, oraz

fftfilt

, która dokonuje filtracji FIR (Finite Impulse Response) w

dziedzinie częstotliwościowej.

Ogólne zasady filtracji cyfrowej w Matlabie
Implementacja filtru FIR o liniowej fazie może być zrealizowane dla funkcji

filter

lub

conv

poprzez dodanie do sekwencji danych opóźnienia wyjścia o stałą liczbę próbek. Dla

filtrów IIR (Infinite Impulse Response) natomiast zniekształcenia fazowe są stosunkowo
duże. Funkcja

filtfilt

eliminuje te zniekształcenia, także w przypadku filtrów typu FIR.

Prześledźmy sposób działania funkcji

filtfilt

. Oznaczmy transformatę Z sekwencji x(n)

jako X(z) oraz transformatę Z sekwencji x(n) odwróconej w czasie jako X(1/z). Opisana
funkcja realizuje obliczenia według schematu przedstawionego na rys. 4.

Odwrotność

czasu

Odwrotność

czasu

H(z)

H(z)

X(z)

X(z)H(z)

X(1/z)H(1/z)

X(1/z)H(1/z)H(z)

Y(z)=X(z)H(z)H(1/z)

Rys. 4 Schemat działania funkcji filtfilt

Gdy

z

=1, co znaczy że z=e

j

ω

, wyjście redukuje się do:

2

j

j

)

e

(

H

)

e

(

X

ω

ω

. Wszystkie próbki

ciągu wyjściowego y(n) stanowią podwójnie przefiltrowany ciąg danych wejściowych x(n).
Dla przykładu przefiltrowano próbkę sygnału o długości 1 sekundy, próbkowanego z
częstotliwością 100 Hz, składającego się z dwóch sinusoidalnych składników, jednego o
częstotliwości 3 i drugiego o częstotliwości 40 Hz.

Fs=100;
t=0:1/Fs:1;

x=sin(2*pi*t*3)+0.25*sin(2*pi*t*40);

background image

Utworzono również prosty uśredniający filtr FIR dziesiątego rzędu, a następnie
przefiltrowano sygnał

x

używając w tym celu obu funkcji

filtfilt

i

filter

.

b=ones(1,10)/10;
y=filtfilt(b,1,x);

yy=filter(b,1,x);
subplot(1,1,1);

plot(t,x,'black',t,y,'--black',t,yy,':black')

0

0 . 1

0 . 2

0 . 3

0 . 4

0 . 5

0 . 6

0 . 7

0 . 8

0 . 9

1

- 1 . 5

- 1

- 0 . 5

0

0 . 5

1

1 . 5

P r z e b i e g w e j c i o w y

ś

F i l t r a c j a f u n k c j f i l t f i l t

ą

F i l t r a c j a f u n k c j f i l t e r

ą

Rys. 5 Porównanie wyników filtracji sygnału dokonanej przez funkcje filtfilt i filter

Powyższy wykres pokazuje różnice pomiędzy zastosowaniem funkcji

filter

i

filtfilt

.

Obydwa filtry usunęły sinusoidę o częstotliwości 40 Hz z oryginalnego sygnału. Różnice
pomiędzy wykresami dotyczą zarówno ich amplitudy jak i fazy. Wynik działania funkcji

filtfilt

jest dokładnie w fazie z oryginalnym sygnałem o częstotliwości 3 Hz, podczas

gdy wynik funkcji

filter

jest przesunięty o około pięć próbek. W przypadku funkcji

filtfilt

także amplituda sygnału wyjściowego jest mniejsza, a to ze względu na kwadrat

modułu funkcji przenoszenia.
Funkcja

filtfilt

zmniejsza również wpływ stanów nieustalonych. Dla uzyskania

poprawnych wyników należy się upewnić, czy sekwencja przeznaczona do filtrowania,
posiada co najmniej trzykrotną długość rzędu filtru oraz czy kończy się zerami przy obydwu
brzegach.

Specyfikacja filtrów
Celem projektowania filtrów jest dokonanie zmian w zawartości składników
częstotliwościowych ciągu danych. Typowym wymaganiem może być np. usunięcie z
sygnału szumów o częstotliwościach powyżej 30 Hz z sekwencji danych próbkowanych z
częstotliwością 100 Hz. Ponadto w specyfikacji filtrów muszą być podane wymagania co do
szerokości pasma przepuszczania, tłumienia w paśmie zaporowym, dopuszczalnych
zniekształceń amplitudy lub fazy.
Dla wymagań, jak w przypadku podanym wyżej, wystarczający jest filtr typu Butterwortha
(IIR). Dla przykładu zaprojektowano filtr dolnoprzepustowy piątego rzędu, o częstotliwości
granicznej 30 Hz, dla danych wejściowych znajdujących się w wektorze

x

. Zaprojektowania

filtru i filtracji sygnału dokonano używając następujących poleceń:

[b,a]=butter(5,30/50);

y=filter(b,a,x);

Drugi argument wejściowy w funkcji

butter

wskazuje częstotliwość odcięcia filtru, która

jest normalizowana do połowy częstotliwości próbkowania (częstotliwość Nyquista).

background image

Uwaga: Wszystkie funkcje Matlaba wykorzystujące filtry działają z normalizowaną
częstotliwością, więc nie jest wymagane podawanie częstotliwości próbkowania jako
dodatkowego argumentu. W przyborniku założono częstotliwości Nyquista jako jednostkową.
Normalizowana częstotliwość jest więc zawsze zawarta w przedziale 0

f

1. Dla układu z

częstotliwością próbkowania 1000 Hz, częstotliwość 300 Hz wynosi 300/500=0.6. W celu
przeliczenia znormalizowanej częstotliwości na częstość kątową (rad/s) mnożymy ją przez

π

.

By przeliczyć częstotliwość znormalizowaną na częstotliwość w [Hz], mnożymy ją przez
połowę częstotliwości próbkowania.

Najbardziej rygorystyczne wymagania stawiane filtrom zawierają takie parametry jak
dopuszczalne oscylacje w paśmie przepuszczania (Rp, w decybelach), tłumienie w paśmie
zaporowym (Rs, w decybelach), oraz stromość zbocza (Ws - Wp, w Hz)

0

Wp

Ws

10

10

-Rs/20

-Rp/20

A

m

pl

it

ud

a

fi

lt

ru

Częstotliwość

Rys. 6 Typowa charakterystyka filtru

Można zaprojektować filtry: Butterwortha, Chebyshewa typu I i typu II oraz filtr eliptyczny
spełniające te typy wymagań. Istnieją także funkcje w przyborniku estymujące minimalną
klasę filtru spełniającego żądane warunki.
Do wymagań zawierających bardziej rygorystyczne ograniczenia, jak np. liniowość fazy lub
stromość zbocza filtru, powinno stosować się filtry typu FIR lub typu IIR projektowane
bezpośrednio.

Projektowanie filtrów typu IIR
Zaletą filtrów IIR w stosunku do filtrów FIR jest to, że zapewniają większą stromość zbocza
przy mniejszym rzędzie filtru. Filtry IIR posiadają jednak nieliniową fazę, co jest zjawiskiem
negatywnym, jednak przetwarzanie danych w Matlabie jest realizowane głównie off line (tzn.
cała sekwencja dostępna jest przed rozpoczęciem operacji filtrowania). Sytuacja taka pozwala
na zastosowanie specjalnego rodzaju filtracji (funkcja

filtfilt

), w celu wyeliminowania

nieliniowych zniekształceń fazowych filtru IIR.

Klasyczne filtry IIR, a więc Butterwortha, Chebyshewa typu I i typu II, eliptyczny oraz filtr
Bessela, aproksymują w różny sposób idealny filtr „prostokątny”. Przybornik SPT zawiera
funkcje do tworzenia wszystkich tych typów klasycznych filtrów IIR w dziedzinach:
analogowej (ciągłej) i cyfrowej (dyskretnej) (z wyjątkiem filtru Bessela, który można
zrealizować jedynie w dziedzinie ciągłej). Przybornik umożliwia także skonfigurowanie filtru
jako dolnoprzepustowego, górnoprzepustowego, środkowoprzepustowego, lub

background image

środkowozaporowego. Dla głównych typów filtrów można także znaleźć ich najmniejszy
rząd, spełniający zadane wymagania w części związanej z przepuszczaniem lub tłumieniem
oraz stromością zboczy.
Za pomocą funkcji

yulewalk

projektuje się filtry, których odpowiedź amplitudowa jest

aproksymacją zadanej funkcji. Pozwala ona więc na tworzenie filtrów pasmowych
niekoniecznie „prostokątnych”.

Tabela 1 Opisy konstrukcji filtrów IIR dostępnych w przyborniku.

Technika

Opis

Funkcja

Prototypo-
wanie
analogowe

Uzyskanie filtru
cyfrowego na podstawie
jego analogowego
dolnoprzepustowego
prototypu
unormowanego,
podanego w formie
transmitancji iloczynowej
modelu ciągłego
(Laplace’a), poprzez
transformację
częstotliwości i
dyskretyzację filtru.

Kompletne funkcje
projektujące:

bessel

,

butter

,

cheby1

,

cheby2

,

ellip

Klasa estymacji funkcji:

buttord

,

cheb1ord

,

cheb2ord

,

ellipord

Dolnoprzepustowe,
unormowane, analogowe
prototypy funkcji:

lp2lp

,

lp2hp

,

lp2bp

,

lp2bs

Funkcje dyskretyzujące filtry:

bilinear

,

impinvar

Projektowanie
bezpośrednie

Projektowanie filtrów
cyfrowych bezpośrednio
w dziedzinie dyskretnej
poprzez przybliżanie
charakterystyki
amplitudowej odcinkami
liniowymi.

youlewalk

Modelowanie
parametryczne

Projektowanie filtrów
cyfrowych, których
charakterystyka w
dziedzinie czasu lub
częstotliwości jest
przybliżeniem
charakterystyki
założonej.

Funkcje modelujące w
dziedzinie czasu:

lpc

,

prony

,

stmcb

Funkcje modelujące w
dziedzinie częstotliwości:

invfreqz

,

invfreqs

Do projektowania filtrów IIR można także zastosować metody modelowania
parametrycznego lub metody identyfikacji.

Filtry IIR projektowane poprzez prototypy analogowe
Podstawowa technika projektowania cyfrowych filtrów IIR wprowadzana w przyborniku
bazuje na przekształceniu klasycznego unormowanego analogowego filtru
dolnoprzepustowego na jego cyfrowy odpowiednik. Ten rozdział przedstawia metodę
projektowania oraz główne charakterystyki podstawowych typów filtrów.

background image

Filtr dowolnego rzędu w konfiguracji dolnoprzepustowej, górnoprzepustowej,
środkowoprzepustowej lub środkowozaporowej, można łatwo utworzyć za pomocą funkcji
zestawionych w tabelce 2.
Standardowo każda z tych funkcji oblicza parametry filtru dolnoprzepustowego, należy
jedynie podać wymaganą częstotliwość odcięcia Wn w znormalizowanej częstotliwości
(częstotliwość Nyquista = 1 Hz). Dla filtru górnoprzepustowego należy dołączyć parametr
‘high’. Dla filtrów środkowozaporowych i środkowoprzepustowych należy zadać Wn jako
dwuelementowy wektor, zawierający częstotliwości krawędzi pasma przepuszczania. Dla
konfiguracji środkowozaporowej dodatkowo należy dołączyć parametr ‘stop’.

Tabela 2 Zestawienie funkcji do projektowania filtru IIR

Filtr

Funkcje projektujące

Butterwortha

[b,a]=butter(n,Wn,opcje)

[z,p,k]= butter(n,Wn,opcje)
[A,B,C,D]= butter(n,Wn,opcje)

Chebyshewa typ I

[b,a]=cheby1(n,Rp,Wn,opcje)
[z,p,k]= cheby1(n,Rp,Wn,opcje)

[A,B,C,D]= cheby1(n,Rp,Wn,opcje)

Chebyshewa typ II

[b,a]=cheby2(n,Rs,Wn,opcje)

[z,p,k]= cheby2(n,Rs,Wn,opcje)
[A,B,C,D]= cheby2(n,Rs,Wn,opcje)

Eliptyczny

[b,a]=ellip(n,Rp,Rs,Wn,opcje)
[z,p,k]= ellip (n,Rp,Rs,Wn,opcje)

[A,B,C,D]= ellip (n,Rp,Rs,Wn,opcje)

Bessela (jedynie
analogowy)

[b,a]=besself(n,Wn,opcje)

[z,p,k]= besself(n,Wn,opcje)
[A,B,C,D]= besself(n,Wn,opcje)

Przykłady tworzenia niektórych filtrów cyfrowych:

[b,a]=butter(5,0.4); - dolnoprzepustowy filtr Butterwortha

[b,a]=cheby1(4,1,[0.4 0.7]); - środkowoprzepustowy filtr Chebyshewa typu

I

[b,a]=cheby2(6,60,0.8,’high’); - górnoprzepustowy filtr Chebyshewa typu

II

[b,a]=ellip(4,1,60,[0.4,0.7],'stop');

- środkowozaporowy filtr eliptyczny

Do skonstruowania filtru analogowego (np. w celu jego symulacji) należy jako ostatni
dołączyć parametr ‘

s

’ i podać częstotliwość odcięcia w radianach na sekundę

[b,a]=butter(5,0.4,’s’); - analogowy filtr Butterwortha
Wszystkie przedstawione tu funkcje umożliwiają wyznaczenie parametrów równania filtru w
postaci funkcji przejścia, transmitancji iloczynowej lub przestrzeni stanu, zależnie od ilości
zadawanych argumentów wyjściowych.

Przybornik zawiera również funkcje obliczające minimalny rząd filtru, przy którym jeszcze
spełnia on zadane wymagania. Funkcje te zebrane zostały w tabelce 3. Są one bardzo
przydatne i często stosowane w połączeniu z funkcjami do konstrukcji filtrów.
Załóżmy, że poszukuje się filtru środkowoprzepustowego z pasmem przepuszczania od 1000
do 2000 Hz, pasmem zaporowym zaczynającym się przy 500 i 2500 Hz, o częstotliwość
próbkowania 10 000 Hz, z maksymalnie 1 dB błędem w paśmie przepuszczania i z co
najmniej 60 dB tłumieniem w paśmie zaporowym. Do konstrukcji użyto funkcji

buttord

.

background image

Tabela 3 Zestawienie funkcji wyznaczających minimalny rząd filtrów.

Typ filtru

Klasa estymacji funkcji

Butterworth

[n,Wn]=buttord(Wp,Ws,Rp,Rs)

Chebyshew typ
I

[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs)

Chebyshew typ
II

[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs)

Elliptic

[n,Wn]=ellipord(Wp,Ws,Rp,Rs)

[n,Wn]=buttord([1000 2000]/5000,[500 2500]/5000,1,60)

n =

12

Wn =

0.1951 0.4080

[b a]=butter(n,Wn);

Filtr eliptyczny, spełniający te same wymagania, jest dany przez funkcję

ellip

.

[n,Wn]=ellipord([1000 2000]/5000,[500 2500]/5000,1,60)

n =

5

Wn =

0.2000 0.4000

[b a]=ellip(n,1,60,Wn);

Przybornik dostarcza pięć typów klasycznych filtrów IIR, z których każdy jest w sensie
pewnego kryterium optymalny. W rozdziale tym pokazano podstawowe postacie
analogowych prototypów dla tych filtrów oraz podano ogólną charakterystykę każdego z
nich.

Bezpośrednie projektowanie filtrów IIR
W przyborniku użyto terminu metody bezpośrednie do opisu metody projektowania filtrów
IIR, która znajduje filtr bazując na stawianych mu wymaganiach w dziedzinie dyskretnej.
Metoda bezpośrednia, odmiennie niż metoda analogowego prototypowania, nie jest
ograniczona standardowymi konfiguracjami filtrów (dolno-, środkowo- czy górno-
przepustową). Służy ona raczej do projektowania dowolnych filtrów o zadanej odpowiedzi
częstotliwościowej.

Funkcja

yulewalk

zrealizowana w SPT umożliwia projektowanie rekursywnego cyfrowego

filtru IIR poprzez dopasowanie odpowiedzi częstotliwościowej filtru do zadanego kształtu.
Nazwa funkcji

yulewalk

pochodzi od metody znajdowania przez nią współczynników filtru.

Funkcja ta znajduje odwrotną transformatę FFT dla idealnego zadanego widma mocy i
rozwiązuje zmodyfikowane równania Yule-Walkera na podstawie znajomości funkcji
autokorelacji. Składnia funkcji ma postać:

[b,a]= yulewalk(n,f,m);

Oblicza ona rzędowe wektory b i a składające się z n+1 współczynników licznika i
mianownika filtru IIR n-tego rzędu, którego charakterystyki amplitudowo-częstotliwościowe
aproksymują dane zawarte w wektorach f i m.
Wektor f jest wektorem punktów częstotliwościowych zawartych w granicach od 0 do 1,
gdzie 1 reprezentuje częstotliwość Nyquista. Wektor m jest wektorem zawierającym zadaną
amplitudę odpowiedzi dla punktów o częstotliwościach zawartych w f. Wektory f i m mogą

background image

opisywać każdy składający się z liniowych odcinków kształt odpowiedzi częstotliwościowej,
włączając w to także odpowiedzi wielopasmowe (rys 7). Odpowiednik filtrów FIR tej funkcji
to

fir2

, która także projektuje filtr o odpowiedzi amplitudowej bazującej na dowolnym

kształcie składającym się z liniowych odcinków.
Należy zauważyć, iż funkcja

yulewalk

nie zawiera informacji o fazie, oraz brak jest

instrukcji pozwalającej na optymalizację rezultatów filtracji.

Dla przykładu przedstawiono projekt filtru pasmowego wykonanego za pomocą funkcji

yulewalk

. Wynikowa i przybliżana odpowiedź częstotliwościowa zostały przedstawione na

wykresie.

m=[0 0 1 1 0 0 1 1 0 0];
f=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1];

[b,a]=yulewalk(10,f,m);
[h,w]=freqz(b,a,128);

plot(f,m,'black-',w/pi,abs(h),'black:')
legend('Zadana funkcja dla filtru',...

'Uzyskana charakterystryka amplitudowa filtru')

0

0 . 2

0 . 4

0 . 6

0 . 8

1

0

0 . 2

0 . 4

0 . 6

0 . 8

1

1 . 2

1 . 4

Z a d a n a f u n k c j a d l a f i l t r u

U z y s k a n a c h a r a k t e r y s t r y k a a m p l i t u d o w a f i l t r u

Rys. 7 Porównanie kształtu charakterystyki zadanej i uzyskanej przy pomocy funkcji youlewalk

Projektowanie filtrów typu FIR
Cyfrowe filtry ze skończonym czasem trwania odpowiedzi impulsowej (filtry FIR) mają w
porównaniu z filtrami dającymi nieskończoną odpowiedź impulsową (IIR) zarówno zalety jak
i wady.
Podstawowe zalety filtrów FIR to:

liniowa faza,

duża stabilność,

startowe warunki początkowe filtru posiadają skończony czas trwania.

Główną wadą filtrów FIR jest to, że często wymagają dużo wyższego rzędu niż filtry IIR do
osiągnięcia podobnych własności. Opóźnienie wprowadzane przez te filtry jest często dużo
większe niż dla podobnych filtrów typu IIR.

background image

Liniowość fazy
Funkcje projektujące filtry FIR, konstruują filtry z liniową fazą. Współczynniki takiego filtru
posiadają parzystą lub nieparzystą symetrię. Zależnie od rodzaju tej symetrii oraz od tego, czy
rząd n filtru jest parzysty czy nieparzysty, liniowa faza filtru (zawarta w wektorze b o
długości n+1) posiada pewne ograniczenia co do jego charakterystyki amplitudowo-
częstotliwościowej.
Opóźnienia fazowe oraz opóźnienia grupowe filtrów FIR z liniową fazą są sobie równe i stałe
w całym paśmie przepuszczania. Dla n-tego rzędu takiego filtru całkowite opóźnienie
grupowe jest 2/n, a filtrowany sygnał jest opóźniony o 2/n (moduł jego transformaty Fouriera
jest skalowany przez odpowiedź amplitudową filtru). Te właściwości zabezpieczają kształt
przebiegu w paśmie przepuszczania, to znaczy nie wprowadzają dodatkowych zniekształceń
fazowych.
Funkcje

fir1

,

fir2

,

firls

, oraz

remez

umożliwiają projektowanie dolno-, górno-,

środkowoprzepustowych oraz środkowozaporowych filtrów FIR. Wszystkie one umożliwiają
dobór standardowych filtrów z liniową fazą typu I oraz II.
Uwaga: Ponieważ charakterystyka amplitudowo-częstotliwościowa filtrów typu II jest równa
zero przy częstotliwości Nyquista, za pomocą funkcji

fir1

nie może projektować filtrów

typu II w wypadku filtru górnoprzepustowego i środkowozaporowego. Dla parzystej wartości
n w tym przypadku,

fir1

dodaje jeden do rzędu filtru i tym samym tworzy filtr typu I.

Funkcje

firls

i

remez

umożliwiają projektowanie filtrów FIR z liniową fazą typu III i IV

pod warunkiem, że zostanie w ich wywołaniach zadany parametr 'hilbert' lub 'differentiator'.

Metoda okien
Rozważmy idealny, dolnoprzepustowy filtr cyfrowy z częstotliwością odcięcia

ω

0

[rad/s].

Moduł tego filtru wynosi jeden dla wszystkich częstotliwości z amplitudą mniejszą niż

ω

0

oraz zero dla częstotliwości z amplitudą pomiędzy

ω

0

i

π

. Jego odpowiedź impulsowa h(n)

wynosi:

)

n

(

c

sin

d

e

2

1

d

e

)

(

H

2

1

)

n

(

h

0

0

n

j

n

j

π

ω

π

ω

=

ω

π

=

ω

ω

π

=

ω

ω

ω

π

π

ω

( 7 )

gdzie n zmienia się od -

do +

.

Filtr ten nie jest realizowalny, ponieważ jego odpowiedź impulsowa jest nieskończona. W
celu utworzenia odpowiedzi impulsowej o skończonym czasie trwania należy zastosować
okno czasowe, ograniczające czas trwania h(n).
Przykładowy, filtr dolnoprzepustowy o długości 51 i częstotliwości odcięcia

ω

0.4

π

rad/sek

utworzony został za pomocą poniższej instrukcji:

b=0.4*sinc(0.4*(-25:25));

W tym przypadku do wyznaczenia odpowiedzi filtru zastosowano zwykłe okno prostokątne.
Według twierdzenia Parsevala spośród wszystkich filtrów o długości 51 ten z oknem
prostokątnym najlepiej przybliża idealny filtr dolnoprzepustowy.
Na wykresie (rys. 8) przedstawiono odpowiedź częstotliwościową tego filtru.

clf;

[H,w]=freqz(b,1,512,2);
plot(w,abs(H),'black'),

xlabel('Częstotliwość normalizowana do częst.
Nyquista'),

ylabel('Odpowiedź amplitudowa')

background image

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

1.2

Częstotliwość znormalizowana do częstotliwości Nyquista

|H(j

ω

)|

Rys. 8 Charakterystyka częstotliwościowa przykładowego filtru dolnoprzepustowego

Na charakterystyce filtru, szczególnie w pobliżu krawędzi pasma, można zobaczyć oscylacje.
To zjawisko, nazywane efektem Gibbsa, nie znika dla wzrastającej długość filtru, ale
odpowiednie okno redukuje jego amplitudę. Mnożenie przez okno w dziedzinie czasu jest
równoważne splotowi lub wygładzaniu w dziedzinie częstotliwości.
Przykładowo dla filtru zaprojektowanego w poprzednim punkcie zastosowano okno
Hamminga o długości 51.

b=b.*hamming(51)';
[H,w]=freqz(b,1,512,2);

clf;
plot(w,abs(H),'black')

xlabel('Częstotliwość normalizowana do częst.
Nyquista'),

ylabel('Odpowiedź amplitudowa')

Jak można zaobserwować (rys. 9), oscylacje w znacznym stopniu zostały zredukowane.
Zostało to jednak okupione zmniejszeniem się nachylenia charakterystyki filtru oraz
wzrostem błędu kwadratowego.

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

1.2

Częstotliwość znormalizowana do częstotliwości Nyquista

|H(j

ω

)|

Rys. 9 Charakterystyka częstotliwościowa filtru wygładzona widmem okna Hamminga

Funkcje

fir1

i

fir2

w procesie projektowania filtrów FIR bazują na stosowaniu okien

czasowych. Mając zadany rząd oraz opis wymaganego filtru, funkcje te obliczają odwrotną
transformację Fouriera odpowiedzi zadanego filtru i poddają ją działaniu wybranego okna

background image

czasowego. Obie standardowo używają okna Hamminga, można jednak stosować w nich okna
czasowe innego typu.

Projektowanie filtrów FIR dla pojedynczego pasma; funkcja

fir1

Funkcja

fir1

stosuje klasyczną metodę związaną z zastosowaniem okien do projektowania

cyfrowych filtrów FIR z liniową fazą. Przypomina ona projektowanie filtrów IIR w tym
sensie, że sformułowana jest do tworzenia filtrów w standardowych: dolno-, środkowo-,
górnoprzepustowych oraz środkowozaporowych konfiguracjach.
Sekwencja instrukcji:

n=50;
Wn=0.4;

b=fir1(n,Wn);

tworzy wektor

b

, zawierający współczynniki filtru n-tego rzędu, zaprojektowanego z

zastosowaniem okna Hamminga. Jest to dolnoprzepustowy filtr FIR z liniową fazą, o
częstotliwości odcięcia

Wn

.

Wn

jest liczbą z zakresu 0

÷

1, przy czym 1 odpowiada

częstotliwości Nyquista czyli połowie częstotliwości próbkowania. Występuje tu różnica w
stosunku do innych metod, gdzie

Wn

odpowiada punktowi o 6 dB spadku amplitudy.

Dla uzyskania górnoprzepustowego filtru należy dołączyć do listy parametrów ciąg znaków

‘high’

. Podczas tworzenia filtrów środkowo-przepustowych lub środkowo-zaporowych,

należy zadać

Wn

jako dwuelementowy wektor składający się z częstotliwości krawędzi pasma

przepuszczania, dodając parametr

‘stop’

dla konfiguracji zaporowej.

Instrukcja

fir1(n,Wn,okno)

stosowana do projektowania filtru zawiera okno podane w

wektorze kolumnowym

okno

. Wektor ten musi mieć długość n+1. Jeśli parametr nie zostanie

zadany, funkcja

fir1

standardowo zastosuje okno Hamminga.

Projektowanie filtrów FIR pasmowych; funkcja

fir2

Funkcja

fir2

umożliwia projektowanie filtrów FIR korzystając z metody okien, pozwalając

uzyskać dowolnie ukształtowaną charakterystykę częstotliwościową, przybliżaną za pomocą
odcinków liniowych. Tym różni się funkcja

fir2

w stosunku do funkcji

fir1

, która

umożliwia projektowanie filtrów jedynie w standardowych konfiguracjach.

n=50;
f=[0 0.4 0.5 1];

m=[1 1 0 0];
b=fir2(n,f,m);

Funkcja

fir2

daje w wyniku wektor wierszowy

b

, składający się z

n

+1 współczynników

filtru FIR

n

-tego rzedu, którego charakterystyka amplitudowo-fazowa jest dana poprzez

wektor

f

i

m

, gdzie

f

jest wektorem punktów częstotliwościowych w zakresie od 0 do 1 (1

reprezentuje częstotliwość Nyquista), zaś

m

jest wektorem składającym się z zadanych

odpowiedzi amplitudowych w punktach podanych w wektorze

f

. Odpowiednikiem tej funkcji

dla filtrów IIR jest funkcja

yulewalk

, tworząca filtry o odpowiedzi amplitudowej, bazującej

na dowolnym kształcie aproksymowanym odcinkami.

Projektowanie pasmowych filtrów FIR z zadanym pasmem przepuszczania
Funkcje

firls

i

remez

wykorzystują bardziej ogólne metody umożliwiające zadawanie

idealnego filtru, który ma być aproksymowany przez filtr cyfrowy.

Firls

i

remez

tworzą

transformatory Hilberta, układy różniczkujące oraz inne filtry posiadające nieparzystą
symetrię współczynników (typy III i IV filtrów z liniową fazą). Pozwalają one także na
zadawanie obszarów przejść, w których błędy nie są minimalizowane, podczas gdy w
pozostałej części charakterystyki filtru minimalizacja taka jest dokonywana.

background image

Funkcja

firls

jest rozszerzeniem funkcji

fir1

i

fir2

o minimalizację całkowego błędu

kwadratowgo pomiędzy zadaną a rzeczywistą odpowiedzią częstotliwościową.
Funkcja

remez

wykorzystuje algorytm Pearks-McClellana, który przy wykorzystaniu

algorytmu wymiany Remeza oraz teorii aproksymacji Chebyshewa umożliwia projektowanie
filtrów, których rzeczywista odpowiedź częstotliwościowa jest w sposób optymalny
dopasowana do zadanej. Filtry te są optymalne w tym sensie, że minimalizują maksymalny
błąd pomiędzy zadaną i rzeczywistą odpowiedzią częstotliwościową (nazywane często
filtrami minimaksowymi). Filtry projektowane tą drogą wykazują zachowanie stałych
oscylacji w ich odpowiedziach częstotliwościowych. Algorytm Parks-McClellana
projektujący filtry FIR jest jednym z najbardziej znanych i szeroko stosowanych w praktyce
projektowania filtrów FIR.
Składnia dla funkcji

firls

i

remez

jest taka sama, jedyne różnice występują w

zastosowanych algorytmach minimalizacji. W kolejnym przykładzie pokazano, jak można
projektować filtry przy pomocy funkcji

firls

i

remez

z uwzględnieniem tych różnic.

Standardowy sposób działania funkcji

firls

i

remez

w projektowaniu filtrów typu I i II z

liniową fazą zależy od tego, czy zadany rząd filtru jest parzysty czy nieparzysty. Przykładowy
filtr dolnoprzepustowy z amplitudą 1 dla zakresu częstotliwości od 0 do 0.4 Hz oraz
amplitudą 0 dla przedziału od 0.5 do 1 Hz, zadano za pomocą następujących przedziałów.

n=20;
f=[0 0.4 0.5 1];

m=[1 1 0 0];
b=remez(n,f,m);

W zakresie częstotliwości od 0.4 do 0.5 Hz, funkcja

remez

nie dokonuje minimalizacji

błędów, ponieważ jest to obszar nachylenia zbocza filtru. Minimalizacja błędu w tym paśmie
jest również możliwa, ale należy liczyć się z dłuższym procesem przejściowym.
Dla porównania metody najmniejszych kwadratów projektowania filtrów z minimaksowym
projektowaniem filtrów, użyto funkcji

firls

do zbudowania podobnego filtru, jak w

przykładzie poprzednim:

bb=firls(n,f,m);

a następnie porównano ich charakterystyki częstotliwościowe.

[H,w]=freqz(b);

[HH,w]=freqz(bb);
plot(w/pi,abs(H),'black',w/pi,abs(HH),'black:')

grid
xlabel('Częstotliwość normalizowana do częst.

Nyquista'),
ylabel('Odpowiedź amplitudowa')

legend('Funkcja remez','Funkcja firls')

Na rysunku 10 można łatwo zauważyć, że filtr zaprojektowany za pomocą funkcji

remez

wykazuje stałe oscylacje tak w paśmie przepuszczania, jak i zaporowym. Filtr projektowany
funkcją

firls

posiada lepszy przebieg charakterystyki dla większej części obu pasm, ale

przy krawędziach (f=0.4 i f=0.5) jego charakterystyka ma przebieg dużo gorszy od
poprzedniego. Świadczy to o tym, że maksymalny błąd filtru

remez

ponad pasmem

przepuszczania i zaporowym jest mniejszy i w rzeczywistości ma on dla tej konfiguracji
krawędzi pasma i długości filtru wartość najmniejszą.

background image

Funkcja remez

Funkcja firls

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

1.2

Częstotliwość znormalizowana do częstotliwości Nyquista

O

d

po

w

ie

d

ź

a

m

pl

itu

do

w

a

Rys. 10 Porównanie wyników działania funkcji remez i firls

W funkcjach

firls

i

remez

poszczególne pasma filtru traktowane są jako odcinki liniowe

reprezentujące przedziały częstotliwości. Bazując na funkcji o dowolnym kształcie,
składającym się z liniowych odcinków, można przedstawić filtr w dowolnej konfiguracji.
Funkcje

firls

i

remez

umożliwiają projektowanie filtrów dolno-, górno-,

środkowoprzepustowych oraz środkowozaporowych.
Przykłady parametrów dla wybranych filtrów zestawiono poniżej.

filtr środkowoprzepustowy:

f=[0 0.3 0.4 0.7 0.8 1];
m=[0 0 1 1 0 0];

(Wektory

f

i

m

definiuje się jako pięć pasm:

dwa zaporowe od 0.0 do 0.3 oraz od 0.8 do 1.0

pasmo przepuszczania od 0.4 do 0.7

dwa zbocza, od 0.3 do 0.4 i od 0.7 do 0.8 )

filtr górno- i środkowozaporowy:

f=[0 0.7 0.8 1];
m=[0 0 1 1];

f=[0 0.3 0.4 0.5 0.8 1];

m=[1 1 0 0 1 1];

filtr pasmowo-przepustowy:

f=[0 0.1 0.15 0.25 0.3 0.4 0.45 0.55 0.6 0.7 0.75 0.85 0.9 1];

m=[1 1 0 0 1 1 0 0 1 1 0 0 1 1];

Jeszcze innym przykładem zastosowania opisywanych funkcji jest projektowanie filtru,
posiadającego zbocze w formie liniowego połączenia pasma przewodzenia z zaporowym.
Zastosowanie takiego zabiegu może być pomocne w sterowaniu przeciekami odpowiedzi
amplitudowej przy słabo nachylonych zboczach.

f=[0 0.4 0.42 0.48 0.5 1];

m=[1 1 0.8 0.2 0 0];

Wektor wagi
Obie funkcje

firls

i

remez

pozwalają z różną wagą minimalizować błędy w pewnych

pasmach częstotliwości. Przykładowo, jeśli jako czwarty parametr w funkcji

remez

zostanie

podany wektor wagi

w=[1 10]

, zostanie zaprojektowany dolnoprzepustowy filtr z 10-krotnie

mniejszymi oscylacjami w paśmie zaporowym niż w paśmie przepuszczania.

n=20;

background image

f=[0 0.4 0.5 1];
m=[1 1 0 0];

w=[1 10];
b=remez(n,f,m,w);

Wektor wagi jest zawsze połową długości wektorów

f

i

m

(musi być dokładnie jedna waga na

pasmo).

Projektowanie filtrów cyfrowych z wykorzystaniem narzędzi graficznych

W przyborniku SPT dostępne jest narzędzie udostępniające graficzny interfejs użytkownika
dla czynności opisywanych w poprzednich podpunktach konspektu. Narzędzie uruchamiane
jest poprzez wpisanie polecenia:

sptool;

w oknie poleceń Matlaba. Widok okna po uruchomieniu pokazany jest na rysunku 11.

Rys. 11 Widok okna narzędzia SPTool

Idea użycia narzędzia w celu wykonania filtracji sygnału jest następująca:

1. Sygnał obrabiany należy zaimportować do interfejsu (File ->Import...)
2. Utworzyć za pomocą narzędzi graficznych nowy projekt filtru (Przycisk New w

kolumnie Filters).

3. Zaprojektować filtr zgodnie z wymaganiami.
4. Zapisać utworzony projekt filtru.
5. Wykonać filtrację poprzez zaznaczenie w kolumnie Signals zaimportowanego sygnału

oraz w kolumnie Filters zaprojektowanego filtru. Operacja filtracji wykonywana jest
po naciśnięciu przycisku Apply.

Zadania do wykonania

1. Skomentować przykłady zaprezentowane w części konspektu dotyczącego doboru

częstotliwości próbkowania sygnału. Wyjaśnić krótko mechanizmy powstawania
niejednoznaczności w prezentowanych przypadkach.

2. Wygenerować kilkusekundowy sygnał będący złożeniem trzech przebiegów

sinusoidalnych o częstotliwościach: 10, 80 i 120 Hz. Amplitudy sygnałów powinny

background image

znajdować się w proporcjach 1:3:1 oraz fazy powinny być przesunięte o ok. 20

o

.

Należy zwrócić szczególną uwagę na dobór próbkowania sygnału.

3. Zaprojektować filtry pozwalające na odfiltrowania kolejnych składowych ze sygnału.

Filtry powinny być wykonane każdorazowo w wersji IIR oraz FIR.

4. Wykonać porównanie parametrów zaprojektowanych filtrów zestawiając ze sobą filtry

FIR i IIR odpowiednio w konfiguracjach dolnoprzepustowych, pasmowych oraz
górnoprzepustowych.

5. Dla jednej wybranej konfiguracji filtru wykonać porównanie filtracji za pomocą

polecenia filter oraz filtfilt. Porównanie przedstawić w postaci graficznej poprzez
nałożenie na siebie:

sygnału oryginalnego – nieprzefiltrowanego,

sygnału odfiltrowanego poleceniem filter,

sygnału odfiltrowanego poleceniem filtfilt.

6. Na wygenerowany sygnał testowy uzyskany w punkcie 2 nałożyć sygnał szumu

losowego na poziomie 10% wartości amplitudy sygnału oraz skomentować wyniki
filtracji zaprojektowanymi wcześniej filtrami.


Document Outline


Wyszukiwarka

Podobne podstrony:
4.1.5 Przedstawianie sygnałów w dziedzinie czasu i częstotliwości, 4.1 Wprowadzenie do testowania ka
Laboratorium Elektroniki Pomiary sygnałów w dziedzinie czasu L Tykarski
4.1.6 Sygnały analogowe i cyfrowe w dziedzinie czasu i częstotliwości, 4.1 Wprowadzenie do testowani
tariov,podstawy transmicji?nych,Przetwarzanie sygnałów mowy
1f Cyfrowe przetwarzanie sygnal Nieznany
Przetwarzanie sygnałów sprawko
Analiza i przetwarzanie sygnałów1
A04 Przetwarzanie sygnalow I
zarzycki, algorytmy przetwarzania sygnałów ,algorytm Schura
2Filtry analogowe, Elektrotechnika AGH, Semestr V zimowy 2014-2015 - MODUŁ C, semestr V (moduł C), T
Systemy przetwarzania sygnałów sprawozdanie nr 1, WI, Semestr VI, Systemy przetwarzania sygnałów
30 Cyfrowe przetwarzanie sygnałów
zarzycki, algorytmy przetwarzania sygnałów ,metoda LPC
zarzycki, algorytmy przetwarzania sygnałów ,pytania i opracowanie
Systemy przetwarzania sygnałów sprawozdanie nr 6, WI, Semestr VI, Systemy przetwarzania sygnałów
L2 przetwarzanie danych
L2, przetwarzanie danych
Cyfrowe Przetwarzanie Sygnałów Wykład cz1

więcej podobnych podstron