You are on page 1of 39

1. Definisati signale sa slike pomoću sekvence δ[n] i jedinične sekvence u(n).

δ[n] – jedinični impuls (Diracov impuls) u[n] – sekvencijalna funkcija

[ ] { u[ ] {

Svaka funkcija ima jedinični izraz:

∑ [ ]

Naša funkcija:
[ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ]
[ ] [ ] [ ] [ ]
2. Definisati signale sa slike pomoću sekvence [ ] i funkcije u(n).

1
Kauzalnost
Odziv će biti nula ako je n<0.
h(n) = 0, n<0
Pošto ovdje nemamo odziv za n<0, sistem je kauzalan.

∑ [ ]

f(n) = [ ]- [ ] [ ] [ ]

Predstavljanje jediničnog impulsa pomoću jedinične funkcije:


[n] = [ ] - u[ ]

{ [ ] [ ]} { [ ] [ ]} { [ ] [ ]} { [ ]
[ ]}
zapis našeg signala preko jedinične funkcije
Opći oblik:

∑ { [ ] [ ]}

3. Definisati signale sa slike pomoću sekvence [ ] i funkcije u(n).

Sistem je kauzalan.
[ ] [ ] [ ]
{ [ ] [ ]} { [ ] [ ]} { [ ] [ ]}

∑{ [ ] [ ]}

2
4.

[ ] {

[ ] {

5. Ispitivanje kauzalnosti signala – nepotrebno


6. Naći korespodenciju između odziva na jediničnu sekvencu u[n] i δ[n] za linearni i
stvarni sistem.
[ ] { [ ]}
[ ] { [ ]}
[ ] [ ] [ ]
[ ] { [ ]} { [ ] [ ]} { [ ]} { [ ]}
[ ] [ ] [ ]
7. Predstaviti analitički i grafički izlaz iz sistema sa impulsnim odzivima
| |
{ [ ] [ ]}
ako u sistem ulazi signal [ ] [ ]

conv – naredba za konvoluciju unutar MATLAB-a

[ ] [ ] [ ] [ ] [ ]
[ ] [ ]
8. Sistem je opisan diferencijalnom jednačinom . Naći
impulsni odziv sistema h(n).

[ ] { [ ]}
[ ] { [ ]}
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]

3
9. Sistem je opisan diferencijalnom jednačinom
. Naći impulsni odziv sistema h(n).

[ ] [ ]
10. Sistem je opisan diferencijalnom jednačinom .
a) Naći impulsni odziv sistema h(n).
b) Ako u sistem ulazi signal naći izlaz iz sistema y(n).

[ ]

∑ ∑ ∑( )

4
1. P1rikazati kontinualni i diskretni signal funkcije: x = sin(2πft), pri čemu je
ulazna frekvencija f = 5 Hz, frekvencija odabiranja fo = 100 Hz. Funkciju
prikazati u vremenu od 0 do 1 s, a dijagrame jedan ispod drugog.

fo = 100; %frekvencija odabiranja


To=1/fo; %period odabiranja
f = 5; %frekvencija
t = 0:To:1; %opseg prostiranja signala
x = sin(2*pi*f*t); %funkcija
subplot(211)
plot(t, x), title('\itKontinualan signal');
xlabel('vrijeme (t)'), ylabel('x(t)');
subplot(212)
stem(t, x), title('\itDiskretna funkcija');
xlabel('vrijeme (t)'), ylabel('x(t)');

2. Predstaviti jedinični impuls na intervalu od 0 do 9 ako je sekvenca 10


L = 10;
funkcija = [1 zeros(1,9)];
t = 0:L-1;
stem(t, funkcija);

3. Predstaviti pomjereni jedinični impuls na nekoliko načina

f1 = [zeros(1, 4) 1 zeros(1,5)];
t = 0:9;

5
stem(t, f1);

ili
L = 10;
t = 0:L-1;
funkcija1=zeros(size(t));
x(4)=1;

ili
n = 4;
t=0:9;
x=t==n;
stem(t, x);
4. Predstaviti signal sa slike

L = 20;
t = -L/2:L/2-1;
funkcija=[zeros(1,10) ones(1, 10)];
stem(t, funkcija);

5. Predstaviti signal sa slike

L = 20;
t = -5:5;
funkcija=[ones(1,7) zeros(1, 1) ones(1,3)];
stem(t, funkcija);

6
1. Definisati signal x[n] preko odbiraka: x[0]=1, x[1]=2, x[2]=-2, x[3]=0, x[4]=4;

U nultoj poziciji imamo signal amplitude 1, u prvoj 2 itd.


length(x) – prepoznaje koliko tačaka ima unutar intervala x
Podatke ćemo smjestiti u neki niz da možemo redom pozivati.

x = [1 2 -2 0 4];
t = 0:length(x)-1;
stem(t,x)

2. Generisati signal x(n) = (0.9)^n na intervalu od 0 do 20 te nacrtati grafik


dobijenog signala.

t = 0:20;
x = (0.9).^t;
stem(t,x)

3. Predstaviti (-2)^n od -5 do 5.

n = -5:5;
x = (-2).^n;
stem(n, x);

4. Predstaviti realni i imaginarni dio funkcije x(n) = , n(0, 25)


n = 0:25;
x = 2*exp(j*n/3);
subplot(211)
stem(n,real(x));
xlabel('n'), ylabel('x(n)'), title('Realni dio funkcije');
grid on
subplot(212)
stem(n,imag(x));
xlabel('n'), ylabel('x(n)'), title('Imaginarni dio funkcije');
grid on

7
5. U 20 tačaka predstaviti realni i imaginarni dio funkcije x(n) =
n = 0:20;
x = -2.^(3*exp(n*(5*pi/2*j)))+ 2*cos(3*n);
subplot(211)
stem(n,real(x));
subplot(212)
stem(n,imag(x));

8
Konvolucija i impulsni odziv
Konvolucija je matematički operator koji od dvije funkcije proizvodi treću koja predstavlja
količinu preklapanja između funkcije f i okrenute i prevedene verzije funkcije g. Možemo je
predstaviti sljedećim izrazom:
∫ ili kraće:

Pretpostavimo da se sistem prikazan na slici vrši određenu transformaciju ulaznog signala


x[n], gdje je sa R[] označena naređena transformacija

Ako se sa [ ] { [ ]} označi impulsni odziv sistema (odziv sistema kada se na njegov


ulaz dovede jedinični impuls), i ako je R linearni, vremenski invarijantni operator, signal na
izlazu sistema y[n] može se predstaviti na sljedeći način:

[ ] { [ ]} { ∑ [ ] [ ]} ∑ [ ] { [ ]}

∑ [ ] [ ] [ ] [ ]

Prethodna jednačina se naziva konvoluciona suma, a operator R je operator konvolucije.


Dužina konvolucione sume uvijek je veća od dužine ulaznih nizova. Ako dužine nizove x[n]i
h [n] označimo sa Nx i Na, onda dužina izlaznog niza iznosi:

Kaskadna veza dva linearna sistema


U slučaju kaskadne veze dva linearna sistema čiji su impulsni odzivi [ ]i [ ] impulsni
odziv cijelog sistema bit će dan sljedećim izrazom:
[ ] [ ] [ ]

Paralelna veza dva linearna sistema


U slučaju paralelne veze dva linearna sistema čiji su impulsni odzivi [ ]i [ ] impulsni
odziv cijelog sistema bit će dan sljedećim izrazom:
[ ] [ ] [ ]

9
1. Konvolucija jediničnog niza

x = ones(5,1);
y = conv(x,x);
Nx = length(x); %duzina signala x
Ny = length(y); %duzina signala y
nx = (0:Nx-1); %vremenska osa signala x
ny = (0:Ny-1); %vremenska osa signala y

subplot(211)
stem(nx,x)
title('Signal x');
subplot(212)
stem(ny,y);
title('Konvolucija signala x');

2. Dokazati da je conv(x, y) = conv(y, x)

x1 = 5 : -1 : 1;
x2 = [0.5 1 0.2];
Nx1=length(x1);
Nx2=length(x2);

s1 = conv(x1,x2);
s2 = conv(x2,x1);
Ns1=length(s1);
Ns2=length(s2);

nx1 = (0:Nx1-1);
nx2 = (0:Nx2-1);
ns1 = (0:Ns1-1);
ns2 = (0:Ns2-1);

subplot(221)
stem(nx1,x1)
title('Signal x1')

10
subplot(222)
stem(nx2,x2)
title('Signal x2')
subplot(223)
stem(ns1,s1)
title('Konvolucija x1*x2')
subplot(224)
stem(ns2,s2)
title('Konvolucija x2*x1')

3. Predstaviti konvoluciju signala x1[n]=[4 3 -6 8 -4] i signala x2[n]= [1 1 -1 2-4]


koristeci teoremu o duzini konvolucije

x1= [4 3 -6 8 -4];
x2= [1 1 -1 2 -4];

nx1=(0:length(x1)-1);
nx2=(0:length(x2)-1);

ny=0:length(x1)+length(x2)-1-1;
y=conv(x1,x2);

subplot(221)
stem(nx1,x1);
title('Signal x1');
subplot(222)
stem(nx2,x2);
title('Signal x2');
subplot(2,2,[3,4])
stem(ny,y);
title('Konvolucija signala x1 i x2')

11
4. Izračunati konvoluciju signala:
[ ] { }

[ ] { }

te za dva dobijena signala predstaviti serijsku odnosno kaskadnu vezu. Na ulaz dovesti
jedinični impuls sekvence 10.
h1 = [1/2 1/4 1/8];
h2 = [1 1/2 1/4 1/16];
impuls = [1 zeros(1,10)];

pom = conv(h1, impuls);


h_rez1=conv(h2, pom);

h_rez2=conv(h1,h2);

%konvolucija serijske veze


disp(h_rez1);
%konvolucija h1*h2
disp(h_rez2);

Nh1 = length(h1);
Nh2 = length(h2);
Npom = length(pom);
Nh_rez1 = length(h_rez1);
Nh_rez2 = length(h_rez2);

nimpuls = (0:10);
nh1 = (0:Nh1-1);
nh2 = (0:Nh2-1);
npom = (0:Npom-1);
nh_rez1 = (0:Nh_rez1-1);

12
nh_rez2 = (0:Nh_rez2-1);

subplot(231)
stem(nh1,h1)
title('h1');
grid on
subplot(232)
stem(nh2,h2)
title('h2');
grid on

subplot(233)
stem(nimpuls,impuls)
title('impuls');
grid on
subplot(234)
stem(npom,pom)
title('pom');
grid on
subplot(235)
stem(nh_rez1,h_rez1)
title('hrez1');
grid on
subplot(236)
stem(nh_rez2,h_rez2)
title('hrez2)');
grid on

5. Predstaviti konvoluciju 2 signala: x = [0 3 -3 2 -2 1 -1 0] i y = [1 -1 2 -2 3 -3 4 -4]


a) koristeći direktan način predstavljanja
b) koristeći fft

x = [ 0 3 -3 2 -2 1 -1 0 ];
x2 = [1 -1 2 -2 3 -3 4 -4];

13
nx = [0 : length(x)-1];
nx2 = [0 : length(x2)-1];

subplot (221)
stem(nx,x,'MarkerFaceColor','r','MarkerEdgeColor','m','lineWidth',1)
title('x');
grid on

subplot (222)
stem(nx2,x2)
title('x2');
grid on

subplot (223)
zconv = conv(x,x2);
nz = [0 : length(zconv)-1];
stem(nz,zconv)
title('Direktna konvolucija')
grid on

subplot (224)

sx=[x zeros(1,length(zconv)-length(x))]; %jedinicni impuls signala x


sx2=[x2 zeros(1,length(zconv)-length(x2))]; %jedinicni impuls signala x2

X= fft(sx); %dikretna furijerova transformacija


X2 = fft(sx2);
Z = X.*X2; %conv(X,Y)
z = ifft(Z);
z1 = real(z);

stem(nz,z1);
title('Konvolucija sa furijerovim transformacijama');
grid on

14
Opis diskretnih signala preko diferencijalnih jednačina
U digitalnoj obradi signala veoma važnu ulogu ima klasa sistema koji se mogu opisati
diferencijalnom jednačinom N-tog reda sa konstantnim koeficijentima:

∑ [ ] ∑ [ ]

Ako pojednostavimo da je ao=1, onda je:

[ ] ∑ [ ] ∑ [ ]

Ovaj oblik diferencijalne jednačine omogućava da se signal y[n] na izlazu sistema izračuna na
osnovu N prethodnih odbiraka izlaznog signala i tekuće i M prethodnih vrijednosti ulaznog
signala x.

filter(b, a, x)
U MATLAB-u se digitalni filter implementira preko naredbe y = filter(b, a,loololki x) gdje je
x ulazni signal, b i a su koeficijenti jednačine uz x i y, a rezultat operacije se smješta u vektor
y.

Fourierova transformacija diskretnih signala


U teoriji kontinualnih sistema veoma veliki značaj ima Furierova transformacija, iz dva
razloga. Kao prvo, odziv linearnog, vremenski nepromjenljivog sistema na sinusiudalnu
pobudu je sinosoidalni signal iste učestalosti, čija su amplituda i faza modifikovane utjecajem
sistema. Drugo, svaki periodični ili aperiodični kontinualni signal se može razložiti na
sinusoidalne komponente, što ima fundamentalni značaj kako za analizu ponašanja signala (ili
sistema) tako za njihovu dalju obradu.

1. Za dani ulazni signal x[n]=3δ[n]+2δ[n-1] izračunati i nacrtati signal na izlazu


sistema opisanog sljedećom jednačinom
[ ] [ ] [ ]
x = [3 2 zeros(1,10)];
a = [1 -1/5]; %parametri uz y
b = [1]; %parametri uz x

y = filter(b,a,x);

nx = (0 : length(x)-1);
ny = (0 : length(y)-1);

subplot(211)
stem(nx,x)
title('Ulazni signal x')
subplot(212)
stem(ny,y)
title('Izlazni signal y')

2. Za sistem opisan sljedećom diferencijalnom jednačinom


[ ] [ ] [ ] [ ]
prikazati impulsni odziv u slučajevima:

15
a1 =0,9 b0= 0,6 b1 =0,3
Ulazni signal x jednak je jediničnom impulsu sekvence 10.

x = [0.6 0.3 zeros(1,10)];


a = [1 0.9];
b = [0.6 0.3];

y = filter(b,a,x);

nx = 0:length(x)-1;
ny = 0:length(y)-1;

subplot(211)
stem(nx,x);
title('Ulazni signal');
subplot(212)
stem(ny,y);
%mijenjati brojeve
3. Izračunati i nacrtati 64 odbirka impulsnog odziva sistema koji je opisan
sljedećom diferencijalnom jednačinom:
[ ] [ ] [ ] [ ] [ ]

impuls = [1 zeros(1,64)];

a = [1 0 0.9];
b = [0.3 0.6 0.3];

y = filter(b,a,impuls);

subplot(211)
stem(0:length(impuls)-1,impuls);
title('Ulazni signal');
subplot(212)
stem(0:length(y)-1,y);
title('Izlazni signal');

16
4. Izračunati i nacrtati 128 odbiraka jedinične funkcije ako njen interval počinje od
-10.
[ ] [ ] [ ] [ ] [ ]
a = [1 -0.5];
b = [1 2 1];
n =(-10:117);
x = n>0;

y = filter(b,a,x);
subplot(211)
stem(n,x)
title('Ulazni signal');
subplot(212)
stem(n,y)
title('Izlazni signal (odziv)');

17
1. Odrediti impulsni odziv linearnog vremenski invarijantnog sistema koji je
definisan diferencijalnom jednačinom

L = 10;
n = (0:L-1); %sekvenca niza
x = zeros(L, 1); %vemenska osa
x(1) = 1; %ulazni signal (jedinicni impuls)
y(1, 1) = x(1); %pocetni trenutak jedinicnog impulsa
for br = 2:length(x)
y(br) = x(br)+x(br-1)/3+y(br-1)/2;
end
subplot(211),stem(n, x, 'f');
title('Ulazni signal (jedinicni impuls)');
xlabel('\itn'), ylabel('pobuda \itx(\itn)');
subplot(212), stem(n, y);
title('Direferencijalna jednacina y(n)=x(n)+x(n-1)/3+y(n-1)/2');
xlabel('\itn'), ylabel('impulsni odziv \ityn(\itn)');

2. Odrediti impulsni odziv linearnog vremenski invarijantnog sistema koji je


definisan diferencijalnom jednacinom y(n)=x(n)-y(n-1)/2 za dva pocetna
uslova y(-1)=0 i y(-1)=-20
L = 10; %sekvenca niza
n=(0:L-1); %vremenska osa
x = zeros(L, 1); %ulazni signal
x(1)=1;
y(1,1) = x(1)-0; %odziv y za uslov y(-1)=0
y1(1,1) = x(1)-(-20)/2; %odziv y za uslov (-1)=-20
for br=2:length(x) %for petlja
y(br, 1) = x(br)-y(br-1)/2;
y1(br, 1) = x(br)-y1(br-1)/2;
end
subplot(211), stem(n, x);
xlabel('n'), ylabel('pobuda x(n)');

18
grid on
subplot(212), stem(n, [y y1]);
xlabel('n'), ylabel('odziv y(n)');
legend('y(-1)=0', 'y(-1)=-20');
grid on

3. Odrediti impulsni odziv nelinerarnog vremenski ivarijantnog sistema koji je


definisan jednacinom y(n)=x(n^3)+3x(n-1). Odrediti odziv sistema na pobudu
x1(n)={9, 8,....,0}.

L = 10; %sekvenca niza


n =(0:L-1); %vremenska osa
x = zeros(L, 1); %ulazni odziv (jed. impuls)
x(1)=1; %prva pobuda
x1=(L-1:-1:0); %druga pobuda
y(1,1)=x(1); %odziv prve pobude
y1(1,1)=x1(1); %odziv druge pobude
for br=2:length(x)
y(br, 1) = x(br)^3+3*x(br-1);
y1(br, 1) =x1(br)^3+3*x1(br-1);
end
subplot(211), stem(n, y);
xlabel('n'), ylabel('impulsni odziv y(n)');
subplot(212), stem(n, y1);
xlabel('n'), ylabel('odziv na def. pobudu y1(n)');

4. %na ulaz sistema opisanog sljedecom diferencijalnom jednacinom


%y[n] +1.9y[n-1]+1.5y[n-2]+0.4y[n-3]=0.1x[n]+2x[n-1]+0.5x[n-2]+0.1x[n-3]
%dovesti 256 odbiraka sinusoide cija je kruzna ucestalost w0=pi/16 a faza
%fi=2pi/3. Nacrtati, jedan ispod drugog u istoj razmjeri, signale na ulazu
%i izlazu. Pokazati kako je odziv takođe sinusoida prve ucestanosti, ali sa
%pormjenjivom amplitudom i fazom

n = 0:255; %vremenska osa


omega_0=pi/16; %kruzna ucestanost
ugao=2*pi/3; %ugao
a=[1 1.9 1.5 0.4]; %koeficijenti uz y
b=[0.1 2 0.5 0.1]; %koeficijenti uz x
x = sin(omega_0*n+ugao); %sinusoida
y = filter(b, a, x); %odziv sistema (digitalni filter)
subplot(211);
stem(n(128:255), x(128:255), 'm*');
title('signal x[n] na ulazu u filter');
xlabel('osa indeksa - n');
axis([128 255 -1.1 1.1]) %razmjera za crtanje signala
subplot(212);
stem(n(128:255), y(128:255), 'g*');
title('signal y[n] na izlazu filtra');
xlabel('osa indeksa - n');
axis([128 255 -1.1 1.1]) %razmjera za crtanje signala

19
Frekvencijski odziv sistema danog diferencijalnom jednačinom
Frekvencijski odziv sistema opisanog diferencijalnom jednačinom se u MATLAB-u računa
preko naredbe [ ] gdje su i koeficijenti diferencijalne jednačine, a
je broj tačaka frekvencijske karakteristike. Izlazni vektor sadrži vrijednosti frekvencijske
karakteristike izračunate u ekvidistantno raspoređenih učestanosti od 0 do π. Učestanosti u
kojima je izračunata frekvencijska karakteristika smještaju se u vektor digitalnih učestanosti
.

Za predstavljanje frekvencijskih karakteristika u decibelima koristi se metoda semilogy.


Frekvencijski spektar direktnog pravougaonog impulsa

[ ] [ ] [ ]

Za prikaz uobičajene fazne karakteristike koristi se metoda unwrap. Za iscrtavanje fazne


karakteristike se naredbom angle fazni ugao izračunava po modulu 2π, pa je rezultirajuća
fazna karakteristika u opsegu od –π do π. Da bi se nacrtala fazna karakteristika (što je i
uobičajeno) kao [ ] , u MATLAB-u se koristi metoda unwrap na sljedeći
način:

xfazni = unwrap(angle(x)); %odmotani fazni spektar


plot(w, 180*xazni/pi), title('Fazni spektar u stepenima')

Teorema o konvoluciji trougaoni impuls):


Još jedan od elementarnih diskretnih signala je trougaoni impuls definisan kao:

[ ] {

Trougaoni impuls nastaje konvolucijom dva pravougaona impulsa dužine M.

1. Izračunati frekvencijski odziv i nacrtati amplitudnu i faznu karakteristiku


digitalnog sistema: [ ] ( ) [ ] [ ] [ ]
[ ]

b = [1 0.5]; %koeficijenti uz x
a = [1 -1.8*cos(pi/16) 0.81]; %koeficijenti uz y
[H, w] = freqz(b, a, 256); %izačunavanje frekvencijskih karakteristika
Hampl = abs(H); % amplitudna karakteristika je apsolutna vrijednost
frekvencijskog odziva
Hfazna = angle(H); %izračun fazne karakterijstike
subplot(211);
stem(w, Hampl);
title('Amplitudna karakteristika');
subplot(212);
stem(w, Hfazna);
title('Fazna karakteristika u radijanima');

20
2. Za M = 7 nacrtati u 1000 tačaka realni i imaginarni dio frekvencijskog spektra
x[n]. Primijetiti da realni i imaginarni dio X( nisu od posebnog značaja za
procjenu spektralnog sadržaja, već su u tu svrhu daleko korisniji rezultati
dobijeni crtanjem amplitudskog spektra |X( |

M = 7;
N = 1000; %broj tačaka
korak = 2*pi/N;
omega = -pi:korak:pi-korak; %interval po kome se računa frekvencijski
spektar
%Izračunavanje frekvencijskog spektra
x = sin(omega*M/2)./sin(omega/2).*exp(-j*omega*(M-1)/2);
Xabs = abs(x); %amplitudni spektar
Xfazni = angle(x); %fazni spektar
subplot(221);
plot(omega, real(x));
title('Realni dio frekvencijskog spektra');
xlabel('osa ucestanosti od -pi do pi');
subplot(222);
plot(omega, imag(x));
title('Imaginarni dio frekvencijskog spektra');
xlabel('osa ucestanosti od -pi do pi');
subplot(223);
plot(omega, Xabs);
title('Amplitudni spektar');
xlabel('osa ucestanosti od -pi do pi');
subplot(224);
plot(omega, Xfazni);

21
title('Linearni fazni spektar');
xlabel('osa ucestanosti od -pi do pi');

Isti primjer s odmotavanjem:


Xfazni1=unwrap(angle(x));
subplot(3,2, [5:6]);
plot(omega, 180*Xfazni1/pi);
title('Fazni spektar u stepenima (unwrap - odmotaj)');

3. Za dati frekvencijski spektar trougaonog impulsa:

( )

Za M = 10 nacrtati impuls kao konvoluciju dva pravougaona, te frekvencijski spektar


signala
M = 10;
u = [ones(1,M) zeros(1, M)];
t = conv(u, u);
n = (0:length(t)-1);
subplot(211)
stem(n, t);
title('Trougaoni impuls (konvolucija dva pravougaona)');
omega=-pi:0.01:pi;
Xu = sin(omega*M/2)./sin(omega/2).*exp(-j*omega*(M-1)/2);
X= Xu.*Xu;
subplot(212)
Xabs=abs(X);
plot(omega, Xabs, omega, abs(Xu)); title('Amplitudni spektar');
legend('Trougaoni impuls', 'Pravougaoni impuls');

22
23
Kajzerova prozorska funkcija
Ova funkcija predstavlja diskretnu aproksimaciju funkcije ograničenog trajanja Tk koja
maksimizira energiju sadržanu u opsegu učestanosti βk.
Kajzerova prozorska funkcija definiše se:

[√ ( )
{ }

gdje je Baselova funkcija prve vrste, nultog reda, a β = . Tipične vrijednosti


parametra β leže u intervalu .
Parametar β određuje se na osnovu sljedeće empirijske formule:

gdje Asl = 13,26 dB odgovara slabljenju pravougaone prozorske fukcije, na koju se svodi
Kajzerova prozorska funkcija za β=0.
Optimalna vrijednost N procjenjuje se iz sljedeće empirijske formule:

Na taj način Kajzerova prozorska funkcija predstavlja pogodan metod za ograničenje dužine
ulazne sekvence, čiji spektar treba odrediti, tako da se na optimalni način ostvari kompromis
između dužine sekvence, frekvencijske rezolucije i širenja spektra.

Pravougaona prozorska funkcija


Pravogaona prozorska funkcija definiše se na sljedeći način:

U MATLAB-u se pravogaona prozorska funkcija dužine N definiše na dva načina, naredbom


w = ones(1, N) ili naredbom w = boxcar(N).
Pravogaona prozorska funkcija ne vrši nikakvu modifikaciju ulaznog signala osim odsjecanja
u slučajevima kada je posmatrani signal beskonačnog trajanja ili kad je njegova dužina veća
od dužine upotrebljene prozorske funkcije.

Trougaona ili Bartletova prozorska funkcija


Trougaona ili Bartletova prozorska funkcija definiše se na sljedeći način:

{
[ ] ⁄ ⁄

Spektar trougaone prozorske funkcije se dobija direktnom primjernom Fourierove


transformacije na jednačinu [ ]

24
( )
( ) ( )
( )

Vidi se da amplitudni spektar trougaone prozorske funkcije predstavlja kvadrat amplitudnog


spektra trougaone prozorske funkcije dužine N/2.

Cirkularno pomjeranje sekvence


Cirkularno pomjeranje sekvence za određeni broj mjesta vrši se pomoću naredbe
y=cpom(x, l)
pri čemu je l broj mjesta za koje se vrši pomjeranje sekvence x, a y je izlazni vektor u koji se
smješta rezultat pomjeranja.

Preuređenje spektra
Preuređenje spektra se u MATLAB-u postiže naredbom y=fftshift(x), gdje je x DFT
sekvenca nekog signala. Odbirci DFT-a preuređeni u prirodnom rasporedu smještaju se u
vektor y.

1. Generisati i nacrtati u MATLAB-u pravougaonu prozorsku funkciju dužine N =


32, te koristeći se dft algiritmom izračunati i nacrtati u MATLAB-u spektar
pravougaone prozorske funkcije od 1024 tačke.

N = 32;
n =(0:N-1);
w=boxcar(N);
subplot(211)
stem(n, w), title('Pravougaoni impuls');
W = fft(w, 1024); %DFT pravougaona prozorska shema
Wnorm = abs(W)/N; %normalizacija
subplot(212)
plot(-pi*(0:length(W)/2-1)/512, 20*log10(Wnorm(1:length(W)/2)));
title('Amplitudni spektar (dB)');

25
2. Posmatrajmo kontinualni signal ,
.
Diskretizacijom ovog signala dobije se:
x[n] , , gdje su i
.
Ako je učestanost odabiranja = 10 kHz, , izvršiti
odsjecanje ovog signala primjenom pravougaone prozorske funkcije dužine N =
64 i nacrtati njegov spektar.
a)
b)
c)

Fs = 10000; %ucestanost odabiranja


Ao = 1;
A1 = 0.75;
N = 64;
n = (0:N-1);
%a)
F0=1/6*10000;
F1=1/3*10000;
f0 = F0/Fs;
f1 = F1/Fs;
x = Ao*cos(2*pi*f0*n)+A1*cos(2*pi*f1*n); %funkcija
X = abs(fft(x)); %spektar
subplot(131);
stem(X(1:N/2));
%b)
F0=1/14*10000;
F1=2/15*10000;

26
f0 = F0/Fs;
f1 = F1/Fs;
x = Ao*cos(2*pi*f0*n)+A1*cos(2*pi*f1*n); %funkcija
X = abs(fft(x)); %spektar
subplot(132);
stem(X(1:N/2));
%c)
F0=1/14*10000;
F1=2/25*10000;
f0 = F0/Fs;
f1 = F1/Fs;
x = Ao*cos(2*pi*f0*n)+A1*cos(2*pi*f1*n); %funkcija
X = abs(fft(x)); %spektar
subplot(133);
stem(X(1:N/2));

3. Generisati i nacrtati u MATLAB-u trougaonu prozorsku funkciju dužine N = 32,


te koristeći se DFT algoritmom izračunati i nactati u MATLAB-u spektar
trougaone prozorske funkcije u 1024 tačke.

N = 32;
n =(0:N-1);
w=triang(N);
subplot(211)
stem(n, w), title('Trougaoni prozor');
W = fft(w, 1024);
Wnorm = 2*abs(W)/N; %normalizacija
subplot(212)
plot(-pi*(0:length(W)/2-1)/512, 20*log10(Wnorm(1:length(W)/2)));
title('Amplitudni spektar (dB)');

27
4. Generisati i nacrtati u MATLAB-u Kajzerovu prozorsku funkciju dužine N =
128 i nacrtati njen spektar ako je: a) β=4, b) β=7 i c) β=10. Koristeći axis,
zumirati dio grafika koji sadrži centralni i prvi bočni luk i uočiti kako se mijenja
njihov odnos s promjenom parametra β.

% Kajzerova prozorska funkcija


% Generisati i nacrtati u matlabu Kajzerovu prozorsku funkciju dužine N =
% 128 i nacrtati njen spektar ako je a) b=4, b) b=7; c) b=10 koristeći
% naredbu axis, zumirati dio grafika koji sadrži centraln i prvi bočni luk
% i uočiti kako se mijenja njihov odnos sa promjenom parametra b

% a)
N = 32;
beta = 4;
n = 0:N-1;
prozor = kaiser(N, beta);
subplot(231), stem(n,prozor, 'k');
axis([0 32 0 1.2]); title('Kajzerova prozorska funkcija, N = 32');
W = fft(prozor, 1024);
Wnorm = 2*abs(W)/length(prozor);
subplot(2,3,[2:3]);
plot(pi*(0:length(W)/2-1)/512, 20*log10(Wnorm(1:length(W)/2)), 'r',
'linewidth', 3);
axis([0 0.5 -60 0]); title('Amplitudna karakteristika (dB)');
subplot(234), plot(pi*(0:length(W)/2-1)/512,
20*log10(Wnorm(1:length(W)/2)), 'g', 'linewidth', 3);
axis([0 0.5 -60 0]);
title('Dio amplitudske karakteristike beta = 4');

28
% b)
beta = 7;
prozor = kaiser(N, beta);
W = fft(prozor, 1024);
Wnorm = 2*abs(W)/length(prozor);
subplot(235);
plot(pi*(0:length(W)/2-1)/512, 20*log10(Wnorm(1:length(W)/2)), 'b',
'linewidth', 3);
axis([0 0.5 -60 0]); title('Dio amplitudske karakteristike beta = 7');

% c)
beta = 10;
prozor = kaiser(N, beta);
W = fft(prozor, 1024);
Wnorm = 2*abs(W)/length(prozor);
subplot(236);
plot(pi*(0:length(W)/2-1)/512, 20*log10(Wnorm(1:length(W)/2)), 'y',
'linewidth', 3);
axis([0 0.5 -60 0]); title('Dio amplitudske karakteristike beta = 10');

5. Dat je diskretan signal x[n] = ... Izvšiti spektralnu analizu analognog signala
primjenom Kajzerove prozorske fnkcije koja ima bočne lukove oslabljenje ua 40
dB u osnosu na centralni luk, ako je dužina prozorske funkcije
a) N = 128
b) N = 32

%generisanje signala
N = 128;
n=(0:N-1);
Beta = 5.48;
x = cos(2*pi*n/14)+0.75*cos(4*pi*n/15);
w = kaiser(N, Beta)';

29
y = x.*w;
Y = 2*abs(fft(y))/N;
subplot(211);
stem(n, y);
title('Spektar signala x[n], Kajzerov prozor N=128');
%b
N = 32;
n = (0:N-1);
Beta = 5.48;
x = cos(2*pi*n/14)+0.75*cos(4*pi*n/15);
w = kaiser(N, Beta)';
y = x.*w;
Y = 2*abs(fft(y))/N;
subplot(212);
stem(n, y);
title('Spektar signala x[n], Kajzerov prozor N=32');

30
Z transformacije
Prednost z transformacije nad Furieorovom ogleda se u tome što je dosta pogodnija za
primjenu u analitičkim problemima. Osim toga, Furierova transformacija ne konvergira za sve
signale, te je poželjno uvesti transformaciju koja je primljenljiva za mnogo širu klasu signala.
Zbog toga se z transformacija uglavnom koristi u kvalitativnoj analizi diskretnih sistema za
njihov opis, analizu i projektovanje.

Definicija z transformacije
Z transformacija diskretnog signala x[n] se definiše kao:

{ [ ]} ∑ [ ]

gdje je z kompleksna promjenljiva vrijednost. Vrijednost X(z) je definisana samo za one


vrijednosti promjenljive za koje prethodni red konvergira. Skup vrijednosti z za koje je
prethodni red konvergentan naziva se oblast konvergencije.
Poređenjem prethodnog izraza i definicionog izraza sa Furierovom transformacijom
diskretnog signala, jasno se vidi da postoji veoma bliska veza između Furioerove i z
transformacije. Ukoliko se u prethodnom izrazu kompleksna promjenljiva z zamijeni sa ,
tada z transformacija prelazi u Furierovu

( ) |
odnosno, Furierova transformacija diskretnog signala je identična z transformaciji izračunatoj
u tačkama koje leže na jediničnom krugu u kompleksnoj ravni.

1. Dat je diskretni signal: [ ] [ ] Odrediti z transformaciju i oblast


konvergencije.

∑ [ ] ∑ [ ] ∑

Da bisuma u gornjem izrazu konvergirala, mora biti zadovoljen uslov;


| | , odnosno
| | | |
Suma reda u oblasti konvergencije iznosi:

2. Dat je diskretni signal: [ ] [ ] Odrediti z transformaciju i oblast


konvergencije.
Signal x[n] predstavlja antikauzalnu verziju signala iz prethodnog primjera.

∑ [ ] ∑ [ ]

Na osnovu definicionog izraza za jediničnu funkciju dobija se:


[ ] {
Pa se izraz svodi na;

∑ ∑

31
Stoga je oblast konvergencije reda definirana sa | | , odnosno | | | |, a z
transformacija:

Dva signala iz dva primjera imaju identične z transformacije, dok im je oblast konvergencije
različita. Drugim riječima, diskretni signal x[n] jednoznačno je određen svojom z
transformacijom X(z) i oblašću konvergencije X(z), te da bi se u praksi izvršila rekonstrukcija
signala x[n] na osnovu njegove z transformacije, mora se uvijek zadati i oblast konvergencije.

Inverzna z transformacija
Kada je poznata z transformacija X(z) i njena oblast konvergencije, vrijednost niza x[n] može
se odrediti na nekoliko načina. Definicioni izraz za inverznu z transformaciju dat je sljedećom
jednačinom:
[ ] ∮

gdje je C kontura integracije koja u cjelini leži u oblasti konvergencije. Za izračunavanje


prethodnog izraza koristi se Kešijeva teorema ostatka, na osnovu koje je:
∮ ∑{ [ ]

pri čemu se ostatak funkcije f(z) u polu z = , koji je k-tog reda, izračunava po sljedećem
obrascu:
[ ]| [ | ]

Ovaj obrazac predstavlja definicionu formulu za izračunavanje inverzne z transformacije, on


se veoma rijetko koristi u praksi. Za praktična izračunavanja se upotrebljavaju, kada je to
moguće, mnogo jednostavnije metode, bazirane na razvoju funkcije X(z) u red, u parcijalne
razlomke, korištenjem tablica za inverznu transformaciju.

1. Ako je oblast konvergencije |z| > 1, odrediti inverznu z transformaciju:

Na osnovu definicionog izraza:


[ ] ∮ ∮

32
pri čemu kontura C leži u oblasti |z| > 1. Unutar konture C postoje dva pola podintegralne
funkcije z = 1 i z = 0. Kako su oba pola prvog reda, za k = 1 primjenom Košijeve teoreme
ostataka se dobija:
[ ] | |

[ ]

Za n<0 postoji i pol z = 0, koji je reda n. Kako je ovaj pol svaki put različitog reda, potrebno
je za svako n < 0 poseno izračunati x[n]. Međutim, izračunavanje se može pojednostaviti
uvođenjem smjene , tako da jednačina u tom slučaju postaje:

[ ] ∮ ( ) ∮

ako kontura C leži u oblasti konvergencije koja se nalazi izvan kruga poluprečnika r, onda je
kontura C određena oblašću konvergencije unutar kruga poluprečnika 1/r. Kako je u ovom
slučaju r = 1, onda se kontura C nalazi unutar oblasti | | . Iz prethodnog izraza se vidi da
za negativno n, polovi p = 1 i p = 2 leže izvan kontura C. Kako podintegralna funkcija za
negativne vrijednosti n nema polova unutar konture integracije, dobija se:
[ ]
tako da je konačno rješenje:
[ ] ( ) [ ]

2. Odrediti inverznu z transformaciju sljedećeg izraza:


, ako je oblast konvergencije |z|=|a|

Korištenjem izraza (2) za n > o, dobija se:

[ ] ∮ ∮

gdje je kontura integracije izvan kruga poluprečnika a z z ravni. Primjenom teoreme ostatka,
za n >=0 se dobija;
[ ] |

Za n<0 uvođenjem smjene dobije se:


[ ] ∮ ( ) ∮

gdje je kontura integracije određena sa | | | |. Kako u gornjem izrazu podintegralna


funkcija nema polova unutar konture integracije, to je za n<0, x[n] = 0, pa je rješenje:

[ ] [ ]

Izračuvanje inverzne z transformacije razvojem u red


Ovaj metod određivanja inverzne z transformacije sastoji se u razvoju funkcije X(z) u stepeni
red po promjenjivoj , tj:

33

koji konvergira u zadanoj oblasti konvergencije. U tom slučaju, zbog jedinstvenosti razvoja u
red, poređenjem prethodnog izrata i definicionog izraza z transformacije, dobija se da su
vrijednosti sekvence x[n] jednake koeficijentu razvoja, odnosno [ ]
1. Izračunati inverznu z transformaciju sljedećeg izraza razvojem u red

Množenjem izraza sa x(z) dobija se:

=
Odakle se, poređenjem sa definicionim izrazom za z transformaciju, dobija:
[ ] [ ] [ ] [ ] [ ]
Konačno rješenje:
[ ] [ ] [ ] [ ] [ ]

2. Ako je data oblast konvergencije |z|>|a|, izračunati inverznu z transformaciju

Dijeljenjem brojnika i nazivnika sa z, dobija se:

Dijeljenjem polinoma brojnika i nazivnika funkcije X(z) dobija se:


[ ] [ ] [ ] [ ]
[ ] [ ]

Izračuvanje inverzne z transformacije razvojem u parcijalne razlomke


Izračunavanje inverzne z transformacije razvojem u parcijalne razlomke zasniva se na
rastavljanju X(z) na sljedeći način:

odakle se, na osnovu linearnosti z transformacije dobija:

[ ] ∑ [ ]

gdje je
[ ]
neka od poznatih tabličnih transformacija.
Izračunavanje inverzne z transformacije, primjenom ove metode, posebno je efikasno X(z)
racionalna funkcija kompleksne promjenljive z. Kako je u tom slučaju X(z) količnik dva
polinoma po z, razlaganje se vrši na sljedeći način:

34
∑ ∑ ∑∑

gdje je M red polinoma N(z), N red polinoma D(z), Np broj prostih polova funkcije X(z), dok
je Nm broj višestrukih polova čiji je multiplicitet mi. Koeficijenti Br se dobijaju dijeljenjem
polinoma N(z-1) sa D(z-1) sve dok se ne dobije ostatak koji je nižeg reda od nazivnika.
Koeficijenti Ai dobijaju se kao:

a koefijenti Cki
[ ]

1. Razvojem u zbir parcijalnih razlomaka pronaći inverznu z transformaciju sljedeće


funkcije:

Razvojem funkcije po formuli pri čemu je red polinoma u brojniku M =2, red polinoma u
nazivniku N =4, broj jednostrukih polova Np=2, i broj višestrukih polova Nm=1 reda mi=2
dobija se:

Na osnovu jednačina (5) i (6) odgovarajući koeficijenti se dobijaju kao:

[ ]

[ ]

Pa je konačno

Te na osnovu tabele za inverznu z transformaciju x[n] dobija se:

[ ] [ ] [ ] [ ] [ ]

1. Korištenjem z transformacije riješiti diferencijalnu jednačinu

35
x[n]+3x[n-1]+2x[n-2]=u[n]

Primjenom z transformacije na obje strane jednačine dobija se:

Odakle je:

Primjenom razvoja u parcijalne razlomke (4) dobija se inverzna z transformacija ovog signala,
koja istovremeno predstavlja rješenje diferencijalne jednačine:
[ ] [ ] [ ] [ ]

36
Analiza linearnihh vremenski nepromjenjivih sistema pomoću z
transformacije
Funkcija prenosa diskretnog sistema
Jedan diskretan sistem može da se opiše funkcijom prenosa H(z) koja je analogna funkciji
prenosa kontinualnog sistema H(s). Posmatrajmo jedan linearan vremenski invarijantan
diskretan sistem okarakterisan svojim impulsnim odzivom h[n]. Odziv ovog sistema y[n] na
proizvoljnu pobudu x[n] određen je konvolucionom sumom:

[ ] [ ] [ ] ∑ [ ] [ ]

Primjenom z transformacije na prethodnu jednačinu dobija se izraz za z transformaciju


izlaznog signala Y(z) kao:

Odakle je:

Kompleksna funkcija H(z) naziva se fukcija prenosa digitalnog sistema. Iz jednačine (7) i (8)
lako se uočava da funkcija H(z) predstavlja z transformaciju impulsnog odziva h[n]. Drugim
riječima, impulsni odziv h[n] i funkcija prenosa diskretnog sistema H(z) čine transformacioni
par:
[ ]

Nule i polovi funkcije prenosa se u MATLAB-u mogu nacrtati naredbom pzmap(num, den).
U tom vektor num (skraćenica od engleskog numerator) se smještaju koeficijenti polinomau
brojniku funkcije prenosa, a u vektor den (eng. denominator) se smještaju koeficijenti u
nazivniku funkcije prenosa. Naredbom zgrid, zadaje se podjela za z domen. U suprotnom,
crtanje se vrši sa podjelom za s domen, odnosno, nule i polovi se crtaju kao nule i polovi
kontinualne funkcije prenosa H(s).
Prilikom crtanja nula i polova funkcije prenosa, da bi se dobio ljepši grafik, poželjno je
izvršiti skaliranje osa primjenom naredbe axis. Upravo to radi sljedećih nekoliko naredbi,
kojima se za postojeće nule i polove, određuje maksimalna vrijednost na x (realnoj) osi i
maksimalna vrijednost na y (imaginarnoj osi, nakon čega se, pomoću naredbe axis,
koordinatni sistem postavlja tako da leži u odgovarajućem opsegu.
opseg = 1.05*max(max(abs(zo)),max(abs(zp)));
if opseg == 0, opseg1; end
axis([-opseg opseg -opseg opseg]), axis('square');

37
1. Jedan diskretan sistrem opisan je sljedećom diferencijalnom jednačinom:
[ ] [ ] [ ] [ ] [ ] [ ]
a) Analitički odrediti funkciju prenosa ovog sistema
b) Odrediti nule i polove funkcije prenosa i provjeriti dobijeni rezultat u MATLAB-
u.

a) Primjenom z transformacije na obje strane jednačine, dobije se:

Na osnovu čega je funkcija prenosa ovog diskretnog sistema:

b) Iz rješenja prethodne tačke se vidi da u slučaju kada se diskretni sistem može


predstaviti diferencijalnom jednačinom sa konstantnim koeficijentima, funkcija
prenosa H(z) predstavlja količnik dva polinoma po z, tj. predstavlja racionalnu
funkciju. Faktorizacijom polinoma u brojniku i nazivniku funkcija prenosa dobijena u
tački a) se može napisati i u sljedećem obliku:

gdje su z0i (i=1,2) nule funkcije prenosa a zpi (i=1,2) polovi funkcije prenose. Nule i polovi
ove funkcije dobijaju se kao rješenja kvadratnih jednačina u brojniku i nazivniku funkcije
prenosa, odnosno z01,2=1.1667+-j0.5528, zp1=2.000 i zp2=0.5000
Funkcija prenosa jednog diskretnog sistema u MATLAB-u se zadaje preko koeficijenata
polinoma u brojniku i nazivniku nakon čega se faktorizacija polinoma (odnosno određivanje
nula i polova) vrši pomoću naredbe roots. Proizvoljni polinom n.tog reda moće se predstaviti
u sljedećem obliku:

U MATLAB-u se koeficijenti ovog polinoma mogu zapisati u obliku vektora C = [c(1)


c(2)...c(n+1)] te je polinom y predstavljen vektorom čiji su članovi koeficijenti polioma. Nule
polinoma koji je zadan svojim koeficijentima, smještenim u vektoru c, izračunavaju se
pomoću naredbe y=roots(c) i smještaju u vektor y.

brojnik =[3 -7 5]; %zadavanje polinoma u brojniku H(z)


nazivnik =[1 -5/2 1]; %zadavanje polinoma u nazivniku H(z)
zo = roots(brojnik); %izracuvanje nule funkcije H(z)
zp=roots(nazivnik); %izracuvanje polova funkcije H(z)
k=brojnik(1)/nazivnik(1); %izracunavanje pojacanja
disp('Nule funkcije prenosa su '); disp(zo);
disp('Polovi funkcije prenosa su '); disp(zp);
disp('Pojacanje k je '); disp(k);
pzmap(brojnik, nazivnik), title('Nule i polovi funkcije');

38
2. Za svaku od sljedećih funkcija prenosa, odrediti u MATLAB-u nule, polove i
pojačanje k i nacrtati njihov položaj u z ravni.

Z transformacije - primjeri
{ [ ]} ∑ [ ]

1. Sekvencu prikazanu na slici predstaviti pomoću z transformacije

39

You might also like