You are on page 1of 120

Diskretni signali i sistemi: analiza u vremenskom domenu

1 of 11

file:///F:/glava01/glava01.html

Diskretni signali i sistemi: analiza u vremenskom domenu

Sadraj

Zadatak 1
Reenje a)
Reenje b)
Reenje c)
Zadatak 2
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 3
Reenje
Zadatak 4
Reenje a)
Reenje b)
Reenje c)
Zadatak 5
Reenje

Zadatak 1

a) U programskom jeziku MATLAB generisati po trideset odbiraka diskretnih signala x(n) i h(n), definisanih izrazima,
x(n)=0.9nu(n),

h(n)=0.8nu(n),

gde {u(n)} predstavlja jedinini odskoni niz.


b) Grafiki prikazati ova dva signala.

c) Izraunati i grafiki prikazati konvoluciju {y(n)} signala {x(n)} i {h(n)}.


Reenje a)

clear all, close all;


N=30;
n=[0:N-1]';
x=0.9.^n;
h=0.8.^n;

Reenje b)
figure,
subplot(1,2,1),stem(n,x),xlabel('\itn'),ylabel('{\itx}({\itn})');
subplot(1,2,2),stem(n,h),xlabel('\itn'),ylabel('{\ith}({\itn})');

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

2 of 11

file:///F:/glava01/glava01.html

Reenje c)
y1=conv(x,h);
y2=conv(h,x);
ny=[0:2*N-2]';
figure,
subplot(1,2,1),stem(ny,y1),xlabel('\itn'),ylabel('{\ity}_1({\itn})');
subplot(1,2,2),stem(ny,y2),xlabel('\itn'),ylabel('{\ity}_2({\itn})');

Zadatak 2

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

3 of 11

file:///F:/glava01/glava01.html

a) Formirati diskretne nizove i predstaviti ih grafiki:


x1(n)=sin(2n/16),

n=0, 1, ..., 63

x2(n)=sin(21.3n/16), n=0, 1, ..., 63


x3(n)=sin(217n/16), n=0, 1, ..., 63
x4(n)=sin(2n/32),
x5(n)=sin(2n/64),

n=0, 1, ..., 63
n=0, 1, ..., 63

Da li su svi dati nizovi periodini? Da li se odbirci nizova x1(n) i x3(n) razlikuju meu sobom?
b) Formirati i grafiki predstaviti na istom dijagramu eksponencijalne nizove:
h1(n)=0.9n, n=0, 1, ..., 63
h2(n)=0.8n, n=0, 1, ..., 63
h3(n)=0.7n, n=0, 1, ..., 63
c) Formirati i grafiki predstaviti na istom dijagramu eksponencijalne nizove:
g1(n)=(-0.9)n, n=0, 1, ..., 63
g2(n)=(-0.8)n, n=0, 1, ..., 63
g3(n)=(-0.7)n, n=0, 1, ..., 63
d) Odrediti i grafiki predstaviti niz {x(n)} koji je proizvod nizova {x1(n)} i {h1(n)}.
Reenje a)
clear all, close all;
n=[0:63]';
x1=sin(2*pi*n/16);
x2=sin(2*pi*1.3*n/16);
x3=sin(2*pi*17*n/16);
x4=sin(2*pi*n/32);
x5=sin(2*pi*n/64);
figure,
subplot(5,1,1),stem(n,x1),ylabel('{\itx}_1({\itn})');
subplot(5,1,2),stem(n,x2),ylabel('{\itx}_2({\itn})');
subplot(5,1,3),stem(n,x3),ylabel('{\itx}_3({\itn})');
subplot(5,1,4),stem(n,x4),ylabel('{\itx}_4({\itn})');
subplot(5,1,5),stem(n,x5),ylabel('{\itx}_5({\itn})'),xlabel('\itn');

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

4 of 11

file:///F:/glava01/glava01.html

Reenje b)
h1=0.9.^n;
h2=0.8.^n;
h3=0.7.^n;
figure,
stem(n,[h1 h2 h3]),
ylabel('{\ith}_1({\itn}), {\ith}_2({\itn}), {\ith}_3({\itn})'),
xlabel('\itn'),
legend('{\ith}_1({\itn})','{\ith}_2({\itn})','{\ith}_3({\itn})');

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

5 of 11

file:///F:/glava01/glava01.html

Reenje c)
g1=(-0.9).^n;
g2=(-0.8).^n;
g3=(-0.7).^n;
figure,
stem(n,[g1 g2 g3]),
ylabel('{\itg}_1({\itn}), {\itg}_2({\itn}), {\itg}_3({\itn})'),
xlabel('\itn'),
legend('{\itg}_1({\itn})','{\itg}_2({\itn})','{\itg}_3({\itn})');

Reenje d)
y=x1.*h1;
figure,stem(n,y),ylabel('{\ity}({\itn})'),xlabel('\itn');

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

6 of 11

file:///F:/glava01/glava01.html

Zadatak 3

Formirati i grafiki predstaviti diskretne kosinusne nizove: x(n)=cos(n), n=0, 1, ..., 31 za razliite vrednosti . Frekvencija
uzima sledee vrednosti:
k=2k/16, k=0, 1, ...,17.

Da li se brzina promene diskretnog niza uvek poveava sa porastom frekvencije ?


Reenje

clear all, close all;


n=[0:31]';
for k=0:17
x(:,k+1)=cos(2*pi*k/16*n);
end;
figure,
for br=1:9
subplot(9,2,2*br-1),stem(n,x(:,br)),xlim([0 31]),
ylabel(['{\itx}_{' num2str(br-1) '}({\itn})']);
if br==9, xlabel('\itn'), end;
subplot(9,2,2*br),stem(n,x(:,18-br+1)),xlim([0 31]),
ylabel(['{\itx}_{' num2str(18-br) '}({\itn})']);
if br==9, xlabel('\itn'), end;
end;
cf=gcf;
set(cf,'position',[0 0 800 600]);

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

7 of 11

file:///F:/glava01/glava01.html

Zadatak 4

Za date parove diskretnih nizova izraunati i grafki predstaviti njihove konvolucije. Kolike su duine nizova dobijenih
konvolucijom?
a)

b)

c)

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

8 of 11

file:///F:/glava01/glava01.html

Reenje a)
clear all, close all;
lx1=30; lh1=10; ly1=lx1+lh1-1;
nx1=[0:lx1-1]';
x1=ones(size(nx1));
nh1=[0:lh1-1]';
h1=ones(size(nh1));
ny1=[0:ly1-1]';
y1=conv(x1,h1);
figure,
subplot(3,1,1),stem(nx1,x1),xlim([0 ly1-1]),ylabel('{\itx}_1({\itn})');
subplot(3,1,2),stem(nh1,h1),xlim([0 ly1-1]),ylabel('{\ith}_1({\itn})');
subplot(3,1,3),stem(ny1,y1),xlim([0 ly1-1]),ylabel('{\ity}_1({\itn})'),xlabel('{\itn}');

Reenje b)
lx2=30; lh2=20; ly2=lx2+lh2-1;
nx2=[0:lx2-1]';
x2=0.9.^nx2;
nh2=[0:lh2-1]';
h2=ones(size(nh2));
ny2=[0:ly2-1]';
y2=conv(x2,h2);
figure,
subplot(3,1,1),stem(nx2,x2),xlim([0 ly2-1]),ylabel('{\itx}_2({\itn})');
subplot(3,1,2),stem(nh2,h2),xlim([0 ly2-1]),ylabel('{\ith}_2({\itn})');
subplot(3,1,3),stem(ny2,y2),xlim([0 ly2-1]),ylabel('{\ity}_2({\itn})'),xlabel('{\itn}');

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

9 of 11

file:///F:/glava01/glava01.html

Reenje c)
lx3=15; lh3=10; ly3=lx3+lh3-1;
nx3=[0:lx3-1]';
x3=0.5*ones(size(nx3));
nh3=[0:lh3-1]';
h3=sin(0.2*pi*nh3);
ny3=[0:ly3-1]';
y3=conv(x3,h3);
figure,
subplot(3,1,1),stem(nx3,x3),xlim([0 ly3-1]),ylabel('{\itx}_3({\itn})');
subplot(3,1,2),stem(nh3,h3),xlim([0 ly3-1]),ylabel('{\ith}_3({\itn})');
subplot(3,1,3),stem(ny3,y3),xlim([0 ly3-1]),ylabel('{\ity}_3({\itn})'),xlabel('{\itn}');

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

10 of 11

file:///F:/glava01/glava01.html

Zadatak 5

Ulazno-izlazna relacija kauzalnog sistema data je diferencnom jednainom prvog reda:


y(n)=x(n)+0.8y(n-1).

Odrediti i grafiki predstaviti prvih 40 odbiraka izlaznog signala ako je sistem pobuen nizom {x3(n)} iz zadatka 4.
Reenje
clear all, close all;
lx=15;
n=[0:lx-1]';
x=0.5*ones(size(n));
ly=40;
n=[0:ly-1]';
x(ly)=0;
y(1)=x(1);
for br=2:ly
y(:,br)=x(br)+0.8*y(:,br-1);
end;
figure,
subplot(2,1,1),stem(n,x),ylabel('{\itx}({\itn})');
subplot(2,1,2),stem(n,y),ylabel('{\ity}({\itn})'),xlabel('{\itn}');

09-Dec-15 2:43 PM

Diskretni signali i sistemi: analiza u vremenskom domenu

11 of 11

file:///F:/glava01/glava01.html

Published with MATLAB 7.8

09-Dec-15 2:43 PM

Furijeova transformacija

1 of 8

file:///F:/glava02/glava02.html

Furijeova transformacija

Sadraj

Zadatak 1
Reenje
Zadatak 2
Reenje
Zadatak 3
Reenje
Zadatak 4
Reenje
Zadatak 5
Reenje
Zadatak 6
Reenje
Zadatak 7
Reenje
Zadatak 8
Reenje a)
Reenje b)
Reenje c)
Zadatak 9
Reenje a)
Reenje b)
Reenje c)
Zadatak 10
Reenje a)
Reenje b)

Zadatak 1

U programskom jeziku MATLAB generisati i prikazati u opsegu 02 amplitudski i fazni spektar signala {x1(n)} i
{x2(n)}, definisanih izrazima,
x1(n)=0.9nu(n), x2(n)=(-0.9)nu(n),

gde u(n) predstavlja jedinini odskoni niz.


Reenje

clear all, close all;


Nw=100;
[X1,w]=freqz(1,[1 -0.9],Nw,'whole');
[X2,w]=freqz(1,[1 0.9],Nw,'whole');
figure,
plot(w,abs(X1),w,abs(X2)),
xlabel('\it\omega'),ylabel('|{\itX}_{1,2}({\ite^{j\omega}})|'),
legend('{\ita}=0.9','{\ita}=-0.9'),xlim([0 2*pi]);
figure,
plot(w,angle(X1),w,angle(X2)),
xlabel('\it\omega'),ylabel('arg[{\itX}_{1,2}({\ite^{j\omega}})]'),
legend('{\ita}=0.9','{\ita}=-0.9'),xlim([0 2*pi]);

Zadatak 2

Generisati nizove {x1(n)}, {x2(n)} i {x3(n)} a zatim izraunati i grafiki prikazati njihove amplitudske i fazne spektre u
opsegu 0.

Reenje
clear all, close all;

09-Dec-15 2:44 PM

Furijeova transformacija

2 of 8

file:///F:/glava02/glava02.html

nx1=[0:15]';
x1=ones(size(nx1));
nx2=[0:31]';
x2=ones(size(nx2));
nx3=[0:63]';
x3=ones(size(nx3));
Nw=100;
[X1,w]=freqz(x1,1,Nw);
[X2,w]=freqz(x2,1,Nw);
[X3,w]=freqz(x3,1,Nw);
figure,
plot(w/pi,abs(X1),w/pi,abs(X2),w/pi,abs(X3)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itX}_{1,2,3}({\ite^{j\omega}})|'),
legend('{\itX}_1({\ite^{j\omega}})','{\itX}_2({\ite^{j\omega}})','{\itX}_3({\ite^{j\omega}})'),xlim([0 1]);
figure,
plot(w/pi,angle(X1),w/pi,angle(X2),w/pi,angle(X3)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('arg[{\itX}_{1,2,3}({\ite^{j\omega}})]'),
legend('{\itX}_1({\ite^{j\omega}})','{\itX}_2({\ite^{j\omega}})','{\itX}_3({\ite^{j\omega}})'),xlim([0 1]);

Zadatak 3

Generisati trougaoni niz {w(n)} duine N=9. Izraunati i grafiki prilkazati amplitudski i fazni spektar ovoga niza u opsegu
0.

Reenje
clear all, close all;
N=9;
n=[0:N-1]';
w(1+(0:(N-1)/2),1)=n(1+(0:(N-1)/2));
w(1+((N+1)/2:(N-1)),1)=N-1-n(1+((N+1)/2:(N-1)));
Nw=100;
[W,omega]=freqz(w,1,Nw);
figure,
subplot(3,1,1),stem(n,w),
xlabel('\itn'),ylabel('{\itw}({\itn})'),xlim([0 N-1]);
subplot(3,1,2),plot(omega/pi,abs(W)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itW}({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,3),plot(omega/pi,angle(W)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('arg[{\itW}({\ite^{j\omega}})]'),xlim([0 1]);

09-Dec-15 2:44 PM

Furijeova transformacija

3 of 8

file:///F:/glava02/glava02.html

Zadatak 4

Generisati niz {h(n)}. Izraunati i grafiki prikazati njegov amplitudski i fazni spektar u opsegu 0.

Reenje
clear all, close all;
N=9;
n=[0:N-1]';
h=sin(2*pi*n/16).^2;
Nw=100;
[H,w]=freqz(h,1,Nw);
figure,
subplot(3,1,1),stem(n,h),xlabel('\itn'),ylabel('{\ith}({\itn})'),xlim([0 N-1]);
subplot(3,1,2),plot(w/pi,abs(H)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itH}({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,3),plot(w/pi,angle(H)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('arg[{\itH}({\ite^{j\omega}})]'),xlim([0 1]);

Zadatak 5

Dat je neparno simetrian niz {h(n)} iji su lanovi: h(0)=-1/2, h(1)=1, h(2)=-1, h(3)=1/2 i h(n)=0 za svako drugo n.
Grafiki predstaviti niz {h(n)}. Izraunati i grafiki predstaviti njegov amplitudski i fazni spektar u opsegu 0.
Reenje

clear all, close all;


h=[-1/2 1 -1 1/2]';
N=length(h);
n=[0:N-1]';
Nw=100;
[H,w]=freqz(h,1,Nw);
figure,
subplot(3,1,1),stem(n,h),xlabel('\itn'),ylabel('{\ith}({\itn})'),xlim([0 N-1]);
subplot(3,1,2),plot(w/pi,abs(H)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itH}({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,3),plot(w/pi,angle(H)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('arg[{\itH}({\ite^{j\omega}})]'),xlim([0 1]);

Zadatak 6

Formirati niz {v(n)} definisan kao proizvod nizova {w(n)} i {h(n)} koji su dati u zadacima 3 i 4. Grafiki predstaviti niz
{v(n)}. Izraunati i grafiki predstaviti amplitudski i fazni spektar niza {v(n)} u opsegu 0.

09-Dec-15 2:44 PM

Furijeova transformacija

4 of 8

file:///F:/glava02/glava02.html

Reenje
clear all, close all;
N=9;
n=[0:N-1]';
w(1+(0:(N-1)/2),1)=n(1+(0:(N-1)/2));
w(1+((N+1)/2:(N-1)),1)=N-1-n(1+((N+1)/2:(N-1)));
h=sin(2*pi*n/16).^2;
v=w.*h;
Nw=100;
[V,omega]=freqz(v,1,Nw);
figure,
subplot(3,1,1),stem(n,[w h v]),xlabel('\itn'),ylabel('{\itv}({\itn})'),xlim([0 N-1]),
legend('{\itw}({\itn})','{\ith}({\itn})','{\itv}({\itn})','Location','NorthEastOutside');
subplot(3,1,2),plot(omega/pi,abs(V)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itV}({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,3),plot(omega/pi,angle(V)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('arg[{\itV}({\ite^{j\omega}})]'),xlim([0 1]);

Zadatak 7

Dati su signali {x1(n)} i {x2(n)}, gde je

a) Formirati i grafiki predstaviti signal {x(n)} koji predstavlja konvoluciju signala {x1(n)} i {x2(n)}.
b) Izraunati i grafiki predstaviti amplitudski spektar signala {x(n)} u opsegu 0.
c) Rezultat uporediti sa reenjem zadatka br. 3.
Reenje

clear all, close all;


Nw=9;
nw=[0:Nw-1]';
w(1+(0:(Nw-1)/2),1)=nw(1+(0:(Nw-1)/2));
w(1+((Nw+1)/2:(Nw-1)),1)=Nw-1-nw(1+((Nw+1)/2:(Nw-1)));
Nomega=100;
[W,omega]=freqz(w,1,Nomega);
Nx1=5;
nx1=[0:Nx1-1]';
x1=ones(size(nx1));
x=conv(x1,x1);
Nx=Nx1+Nx1-1;
nx=[0:Nx-1]';
[X,omega]=freqz(x,1,Nomega);
figure,
subplot(3,1,1),stem(nw,w),hold on,stem(nx,x,'filled'),
xlabel('\itn'),ylabel('{\itw}({\itn}), {\itx}({\itn})'),xlim([0 Nw-1]),
legend('{\itw}({\itn})','{\itx}({\itx})','Location','NorthEastOutside');
subplot(3,1,2),plot(omega/pi,abs([W X])),
xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itW}({\ite^{j\omega}})|,|{\itX}({\ite^{j\omega}})|'),xlim([0 1]),
legend('{\itW}({\ite^{j\omega}})','{\itX}({\ite^{j\omega}})','Location','NorthEastOutside');
subplot(3,1,3),plot(omega/pi,angle([W X])),
xlabel('{\it\omega}/{\it\pi}'),ylabel('arg[{\itW}({\ite^{j\omega}})],arg[{\itX}({\ite^{j\omega}})]'),xlim([0 1]),
legend('{\itW}({\ite^{j\omega}})','{\itX}({\ite^{j\omega}})','Location','NorthEastOutside');

09-Dec-15 2:44 PM

Furijeova transformacija

5 of 8

file:///F:/glava02/glava02.html

Zadatak 8

a) Formirati kosinusne signale

x1(n)=cos(2n32/256), 0n255,
x2(n)=cos(2n100/256), 0n255.

b) Izraunati i prikazati amplitudski spektar signala {y1(n)} u opsegu 0., gde je


y1(n)=0.4x1(n)+0.9x2(n).

c) Izraunati i prikazati amplitudski spektar signala {y2(n)} u opsegu 0, gde je


y2(n)=x1(n)x2(n).

Reenje a)

clear all, close all;


N=256;
N1=32;
N2=100;
n=[0:N]';
x1=cos(2*pi*n*N1/N);
x2=cos(2*pi*n*N2/N);
Nomega=1000;
[X1,omega]=freqz(x1,1,Nomega);
[X2,omega]=freqz(x2,1,Nomega);
figure,
subplot(2,1,1),stem(n,[x1 x2]),xlabel('\itn'),ylabel('{\itx}_{1,2}({\itn})'),xlim([0 N/16-1]),
legend('{\itx}_1({\itn})','{\itx}_2({\itn})','Location','NorthEastOutside');
subplot(2,1,2),plot(omega/pi,abs([X1 X2])),xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itX}_{1,2}({\ite^{j\omega}})|'),xlim([0 1]),
legend('{\itX}_1({\ite^{j\omega}})','{\itX}_2({\ite^{j\omega}})','Location','NorthEastOutside');

Reenje b)
y1=0.4*x1+0.9*x2;
[Y1,omega]=freqz(y1,1,Nomega);
figure,
subplot(3,1,1),plot(omega/pi,abs(X1)),ylabel('|{\itX}_1({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,2),plot(omega/pi,abs(X2)),ylabel('|{\itX}_2({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,3),plot(omega/pi,abs(Y1)),xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itY}_1({\ite^{j\omega}})|'),xlim([0 1]);

09-Dec-15 2:44 PM

Furijeova transformacija

6 of 8

file:///F:/glava02/glava02.html

Reenje c)
y2=x1.*x2;
[Y2,omega]=freqz(y2,1,Nomega);
figure,
subplot(3,1,1),plot(omega/pi,abs(X1)),ylabel('|{\itX}_1({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,2),plot(omega/pi,abs(X2)),ylabel('|{\itX}_2({\ite^{j\omega}})|'),xlim([0 1]);
subplot(3,1,3),plot(omega/pi,abs(Y2)),xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itY}_2({\ite^{j\omega}})|'),xlim([0 1]);

Zadatak 9

a) Formirati signale {x1(n)}, {x2(n)} i {x3(n)},


x1(n)=0.9ncos(2n32/256), 0n255,
x2(n)=0.8ncos(2n32/256), 0n255,
x3(n)=0.5ncos(2n32/256), 0n255.

b) Grafiki prikazati prvih 50 odbiraka signala {x1(n)}, {x2(n)} i {x3(n)}.

c) Izraunati i prikazati amplitudske spektre signala {x1(n)}, {x2(n)} i {x3(n)} u opsegu 0.


Reenje a)

clear all, close all;


N=256;
n=[0:N-1]';
x1=0.9.^n.*cos(2*pi*n*32/N);
x2=0.8.^n.*cos(2*pi*n*32/N);
x3=0.5.^n.*cos(2*pi*n*32/N);

Reenje b)
figure,stem(n,[x1 x2 x3]),,xlabel('\itn'),ylabel('{\itx}_{1,2,3}({\itn})'),xlim([0 49]),
legend('{\itx}_1({\itn})','{\itx}_2({\itn})','{\itx}_3({\itn})','Location','NorthEastOutside');

09-Dec-15 2:44 PM

Furijeova transformacija

7 of 8

file:///F:/glava02/glava02.html

Reenje c)
Nomega=1000;
[X1,omega]=freqz(x1,1,Nomega);
[X2,omega]=freqz(x2,1,Nomega);
[X3,omega]=freqz(x3,1,Nomega);
figure,plot(omega/pi,abs([X1 X2 X3])),xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itX}_{1,2,3}({\ite^{j\omega}})|'),xlim([0 1]),
legend('{\itX}_1({\ite^{j\omega}})','{\itX}_2({\ite^{j\omega}})','{\itX}_3({\ite^{j\omega}})','Location','NorthEastOutside');

Zadatak 10

a) Formirati realni signal {x(n)} i kompleksni signal {y(n)}:


x(n)=0.8n, 0n255,
y(n)=0.8nexp(j2n32/256), 0n255.

b) Izraunati i grafiki prikazati:

amplitudske spektre signala {x(n)} i {y(n)} u opsegu 0,


fazne spektre signala {x(n)} i {y(n)} u opsegu 0,
realne i imaginarne delove spektara signala {x(n)} i {y(n)} u opsegu 0.

Reenje a)

clear all, close all;


N=256;
n=[0:N-1]';
x=0.8.^n;
y=0.8.^n.*exp(j*2*pi*n*32/256);

Reenje b)
Nomega=1000;
[X,omega]=freqz(x,1,Nomega,'whole');
[Y,omega]=freqz(y,1,Nomega,'whole');
figure,plot(omega/pi,abs([X Y])),ylabel('|{\itX}({\ite^{j\omega}})|, |{\itY}({\ite^{j\omega}})|'),xlim([0 2]),
legend('{\itX}({\ite^{j\omega}})','{\itY}({\ite^{j\omega}})','Location','NorthEastOutside');
figure,plot(omega/pi,angle([X Y])),ylabel('arg[{\itX}({\ite^{j\omega}})], arg[{\itY}({\ite^{j\omega}})]'),xlim([0 2]),
legend('{\itX}({\ite^{j\omega}})','{\itY}({\ite^{j\omega}})','Location','NorthEastOutside');
figure,plot(omega/pi,[real([X Y]) imag([X Y])]),xlabel('{\it\omega}/{\it\pi}'),
ylabel('Re/Im({\itX}({\ite^{j\omega}})), Re/Im({\itY}({\ite^{j\omega}}))'),xlim([0 2]),
legend('Re({\itX}({\ite^{j\omega}}))','Re({\itY}({\ite^{j\omega}}))','Im({\itX}({\ite^{j\omega}}))','Im({\itY}({\ite^{j\omega}}))','Location','NorthEastOutside');

09-Dec-15 2:44 PM

Furijeova transformacija

8 of 8

file:///F:/glava02/glava02.html

Published with MATLAB 7.8

09-Dec-15 2:44 PM

Z transformacija

1 of 8

file:///F:/glava03/glava03.html

Z transformacija

Sadraj

Zadatak 1
Reenje a)
Reenje b)
Reenje c)
Zadatak 2
Reenje
Zadatak 3
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 4
Reenje a)
Reenje b)
Zadatak 5
Reenje a)
Reenje b)

Zadatak 1

Generisati diskretni signal {x(n)} definisan izrazom,


x(n)=anu(n),

Signal u(n) predstavlja jedinini odskoni niz, dok vrednost konstante a iznosi 0.9.
a) Prikazati grafiki prvih etrdeset odbiraka dobijenog diskretnog signala.
b) Odrediti izraz za njegovu z transformaciju i odrediti oblast konvergencije z transformacije.
c) Prikazati raspored nula i polova ove transformacije u z ravni.
d) Prikazati amplitudski spektar ovog signala.
Reenje a)

clear all;close all;


N=40;
n=(0:N-1)';
a=0.9;
x=a.^n;
figure,
stem(n,x),xlabel('\itn'),ylabel('{\itx}({\itn})');

Reenje b)
disp('Sabiranjem konvergentnog niza {x(n)} dobija se X(z)=z/(z-a).');
Sabiranjem konvergentnog niza {x(n)} dobija se X(z)=z/(z-a).

Reenje c)

09-Dec-15 2:45 PM

Z transformacija

2 of 8

file:///F:/glava03/glava03.html

figure,
subplot(2,1,1),zplane(1,[1 -a]); % funkcija zplane kada su ulazni nizovi vrste podrazumeva da su to koef. polinoma pa prvo srauna nule i polove
subplot(2,1,2),zplane(0,a); % funkcija zplane kada su ulazni nizovi kolone podrazumeva da su to nule i polovi
Nomega=1000;
[X,omega]=freqz(1,[1 -a],Nomega);
figure,
plot(omega/pi,abs(X)),xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itX}({\ite^{j\omega}})|');

Zadatak 2
Dati su diskretni signali {x(n)} i {h(n)}, definisani izrazima,

Izraunati konvoluciju ova dva signala i pokazati da je z transformacija njihove konvolucije proizvod z transformacija
pojedinanih signala.
Reenje

clear all; close all;


x=[1 1]';
h=[1 0.5]';
y=conv(x,h);
disp('dobijena konvolucija y(n):');
disp(y);
disp('Z transformacija signala x(n) je:');
disp('X(z)=1+z^(-1)');
disp('Z transformacija signala h(n) je:');
disp('H(z)=1+0.5z^(-1)');
X=[1 1]';
H=[1 0.5]';
Y=conv(X,H); % funkcija conv se moe koristiti i za mnoenje polinoma
disp('Z transformacija signala y(n) je:');
Y_str=num2str(y(1));

09-Dec-15 2:45 PM

Z transformacija

3 of 8

file:///F:/glava03/glava03.html

for br=2:length(y)
Y_str=[Y_str '+' num2str(y(br)) 'z^(-' num2str(br-1) ')'];
end;
disp(['Y(z)=' Y_str]);
disp('Proizvod Z transformacija signala x(n) i h(n) je:');
XxH_str=num2str(Y(1));
for br=2:length(Y)
XxH_str=[XxH_str '+' num2str(Y(br)) 'z^(-' num2str(br-1) ')'];
end;
disp(['X(z)H(z)=' XxH_str]);
dobijena konvolucija y(n):
1.0000
1.5000
0.5000
Z transformacija signala x(n) je:
X(z)=1+z^(-1)
Z transformacija signala h(n) je:
H(z)=1+0.5z^(-1)
Z transformacija signala y(n) je:
Y(z)=1+1.5z^(-1)+0.5z^(-2)
Proizvod Z transformacija signala x(n) i h(n) je:
X(z)H(z)=1+1.5z^(-1)+0.5z^(-2)

Zadatak 3

Za sisteme opisane datim diferencnim jednainama izraunati z transformaciju njihovog impulsnog odziva, {h(n)}, i nacrtati
raspored nula i polova u z ravni:
a) y(n)=x(n)-x(n-5);

b) y(n)=x(n)+x(n-5);
c) y(n)=2rcos(q)y(n-1)+r2y(n-2)+x(n), q=/4, r=0.9.
d) y(n)=2rcos(q)y(n-1)-r2y(n-2)+x(n), q=/4, r=0.9.
Reenje a)

clear all; close all;


h1=[1 0 0 0 0 -1];
figure,
zplane(h1,1);

Reenje b)
h2=[1 0 0 0 0 1];
figure,
zplane(h2,1);

09-Dec-15 2:45 PM

Z transformacija

4 of 8

file:///F:/glava03/glava03.html

Reenje c)
b3=1;
r=0.9; q=pi/4;
a3=[1 -2*r*cos(q) -r^2];
figure,
zplane(b3,a3);
[h3,nh3]=impz(b3,a3);
figure,
stem(nh3,h3),xlabel('\itn'),ylabel('{\ith}_3({\itn})');

Reenje d)

09-Dec-15 2:45 PM

Z transformacija

5 of 8

file:///F:/glava03/glava03.html

b4=1;
r=0.9; q=pi/4;
a4=[1 -2*r*cos(q) r^2];
figure,
zplane(b4,a4);
[h4,nh4]=impz(b4,a4);
figure,
stem(nh4,h4),xlabel('\itn'),ylabel('{\ith}_4({\itn})');

Zadatak 4
Izraunati z transformaciju datih nizova. Nacrtati raspored nula i polova izraunatih z transformacija i na osnovu crtea
odrediti da li su posmatrani sistemi stabilni.
a)

b)

Reenje a)
clear all; close all;
Nh1=20;
n1=(0:Nh1-1);
h1=(-1).^n1;
figure,
stem(n1,h1),xlabel('\itn'),ylabel('{\ith}_1({\itn})');
figure,
zplane(h1,1),text(.2,.2,'sistem je stabilan.');

09-Dec-15 2:45 PM

Z transformacija

6 of 8

file:///F:/glava03/glava03.html

Reenje b)
disp('H(z)=z/(z+1)');
b2=1;
a2=[1 1];
[h2,n2]=impz(b2,a2);
figure,
stem(n2,h2),xlabel('\itn'),ylabel('{\ith}_2({\itn})');
figure,
zplane(b2,a2),text(.2,.2,'sistem je nestabilan.');
H(z)=z/(z+1)

09-Dec-15 2:45 PM

Z transformacija

7 of 8

file:///F:/glava03/glava03.html

Zadatak 5
Data je funkcija prenosa:

a) Za razliite vrednosti parametra (npr. =0.5, 0.9 i 0.99) nacrtati raspored nula i polova date z transformacije.
b) Izraunati |H(ej)| korienjem funkcije freqz, rezultat predstaviti grafiki i na osnovu crtea proveriti da li ova
amplitudska karakteristika ima konstantnu vrednost za svako .
Reenje a)

clear all; close all;


ro=[0.5 0.9 0.99];
for br=1:length(ro)
b(br,:)=[1 -1/ro(br)];
a(br,:)=[1 -ro(br)];
end;
boja=[0 0 1; 0 0.5 0; 1 0 0];
for br=1:length(ro)
nule(:,br)=roots(b(br,:));
polovi(:,br)=roots(a(br,:));
[hZ(br),hP(br),hl]=zplane(nule(:,br),polovi(:,br));
set(hZ(br),'color',boja(br,:));
set(hP(br),'color',boja(br,:));
hold on
end;
xlim([-2.1 2.1]);
ylim([-2.1 2.1]);
h=[hZ;hP];
h=h(:);
legend(h,'{\it\rho}=.5','','{\it\rho}=.9','','{\it\rho}=.99','');
title('Raspored nula i polova funkcije prenosa {\itH}({\itz})');

09-Dec-15 2:45 PM

Z transformacija

8 of 8

file:///F:/glava03/glava03.html

Reenje b)
for br=1:length(ro)
[H(:,br),w]=freqz(b(br,:),a(br,:));
end;
figure,plot(w/pi,abs(H)),xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itH}({\ite^{j\omega}})|'),
xlim([0 1]),ylim([.5 2.1]),
legend('{\it\rho}=.5','{\it\rho}=.9','{\it\rho}=.99');

Published with MATLAB 7.8

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

1 of 9

file:///F:/glava05/glava05.html

Diskretna Furijeova transformacija (DFT)

Sadraj

Zadatak 1
Reenje a)
Reenje b)
Zadatak 2
Reenje a)
Reenje b)
Zadatak 3
Reenje
Zadatak 4
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 5
Reenje
Zadatak 6
Reenje

Zadatak 1

Dat je signal {x(n)}, definisan izrazom,

a) Izraunati i grafiki prikazati Furijeovu transformaciju ovog signala.

b) Signal {xp(n)}, je dobijen periodinim produavanjem signala {x(n)}, sa periodom N=7. Izraunati i grafiki prikazati
DFT signala {xp(n)}.
Reenje a)
clear all, close all;
N=7;
x=ones(N,1);
xc=x;
xc(2*N)=0;
n=(0:2*N-1)';
figure,stem(n,xc),xlabel('\itn'),ylabel('{\itx({\itn})}');
[X,w]=freqz(x,1,'whole');
figure,plot(w/pi,abs(X)),xlabel('{\it\omega}/{\it\pi}'),ylabel('|{\itX}({\ite^{j\omega}})|'),
xlim([0 2]);

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

2 of 9

file:///F:/glava05/glava05.html

Reenje b)
xp=[x;x];
Xp=fft(xp);
k=(0:length(Xp)-1)';
figure,stem(k,abs(Xp)),xlabel('\itk'),ylabel('|{\itX}({\itk})|'),
xlim([-0.5 (max(k)+0.5)]);

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

3 of 9

file:///F:/glava05/glava05.html

Zadatak 2

Dat je signal x(t), definisan izrazom,


x(t)=cos(2f1t)+cos(2f2t).

Diskretni signal {x(n)} sadri sto odbiraka signala x(t), dobijenih sa frekvencijom odabiranja fs=1 kHz. Primenom DFT
izraunati amplitudski spektar signala i prikazati ga u opsegu frekvencija od 0 Hz do 500 Hz za,
a) f1=200 Hz, f2=240 Hz;

b) f1=207 Hz, f2=213 Hz.


Reenje a)
clear all, close all;
N=100;
fs=1000;
t=(0:N-1)'/fs;
f1=200; f2=240;
xa=cos(2*pi*f1*t)+cos(2*pi*f2*t);
Xa=fft(xa);
fa=[0:length(Xa)-1]/length(Xa)*fs;
figure,stem(fa(1:N/2),abs(Xa(1:N/2))),xlabel('{\itf} [Hz]'),ylabel('DFT({\itx_a})'),
xlim([0 500]),legend(['\Delta{\itf}=' num2str(fs/N)]);

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

4 of 9

file:///F:/glava05/glava05.html

Reenje b)
f1=207; f2=213;
xb=cos(2*pi*f1*t)+cos(2*pi*f2*t);
Xb=fft(xb);
fb=[0:length(Xb)-1]/length(Xb)*fs;
figure,stem(fb(1:N/2),abs(Xb(1:N/2))),xlabel('{\itf} [Hz]'),ylabel('DFT({\itx_b})'),
xlim([0 500]),legend(['\Delta{\itf}=' num2str(fs/N)]);

Zadatak 3

Dati su diskretni signali {x(n)} i {h(n)},


{x(n)}={1,2,3} i {h(n)}={1,2,3}.

Izraunati i grafiki prikazati linearnu i ciklinu konvoluciju ova dva signala. Krunu konvoluciju izraunati direktno i
preko DFT.
Reenje

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

5 of 9

file:///F:/glava05/glava05.html

clear all, close all;


x=[1 2 3]';
h=[1 2 1]';
yl=conv(x,h);
for br=0:length(x)-1
yc(br+1)=0;
for br_sum=0:length(x)-1
ind_h=br-br_sum+1;
if ind_h<1, ind_h=ind_h+length(h); end;
yc(br+1)=yc(br+1)+x(br_sum+1)*h(ind_h);
end;
end;
yc_FFT=ifft(fft(x).*fft(h));
figure,subplot(3,1,1),stem([0:length(yl)-1],yl),xlim([0 length(yl)-1]),ylabel('{\ity_l}({\itn})');
subplot(3,1,2),stem([0:length(yc)-1],yc),xlim([0 length(yl)-1]),ylabel('{\ity_c}({\itn})');
subplot(3,1,3),stem([0:length(yc_FFT)-1],yc_FFT),xlim([0 length(yl)-1]),ylabel('{\ity_{cFFT}}({\itn})'),xlabel('\itn');

Zadatak 4

Izraunati DFT u osam taaka sledeih nizova:


a)

b)

c)

d)

Reenje a)
clear all, close all;

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

6 of 9

file:///F:/glava05/glava05.html

xa=ones(8,1);
Xa=fft(xa);
figure,stem([0:length(Xa)-1],abs(Xa)),xlabel('\itk'),ylabel('|{\itX_a}({\itk})|');

Reenje b)
xb=ones(5,1);
Xb=fft(xb,8);
figure,stem([0:length(Xb)-1],abs(Xb)),xlabel('\itk'),ylabel('|{\itX_b}({\itk})|');

Reenje c)
xc=zeros(8,1);
xc(0+1)=1;
xc(7+1)=-1;
Xc=fft(xc);
figure,stem([0:length(Xc)-1],abs(Xc)),xlabel('\itk'),ylabel('|{\itX_c}({\itk})|');

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

7 of 9

file:///F:/glava05/glava05.html

Reenje d)
xd=zeros(8,1);
xd(0+1)=1;
xd(5+1)=-1;
Xd=fft(xd);
figure,stem([0:length(Xd)-1],abs(Xd)),xlabel('\itk'),ylabel('|{\itX_d}({\itk})|');

Zadatak 5

Generisati N=16 odbiraka diskretnog niza x(n)=cos(0.1n). Izraunati DFT ovog niza. Posmatranjem pojedinih lanova niza,
pokazati da DFT zadovoljava relaciju, X(k)=X*(N-k), gde znak * oznaava konjugovano kompleksnu vrednost.
Reenje

clear all, close all;


N=16;
n=(0:N-1)';
x=cos(0.1*n);
X=fft(x);

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

8 of 9

file:///F:/glava05/glava05.html

for br=1:length(X)-1
uporedi(br,1:2)=[X(br+1) conj(X(N-br+1))];
end;
disp(uporedi);
-0.1869
0.3413
0.4331
0.4645
0.4784
0.4853
0.4886
0.4896
0.4886
0.4853
0.4784
0.4645
0.4331
0.3413
-0.1869

2.7688i
1.2639i
0.7764i
0.5172i
0.3451i
0.2138i
0.1026i

+
+
+
+
+
+
+

0.1026i
0.2138i
0.3451i
0.5172i
0.7764i
1.2639i
2.7688i

-0.1869
0.3413
0.4331
0.4645
0.4784
0.4853
0.4886
0.4896
0.4886
0.4853
0.4784
0.4645
0.4331
0.3413
-0.1869

2.7688i
1.2639i
0.7764i
0.5172i
0.3451i
0.2138i
0.1026i

+
+
+
+
+
+
+

0.1026i
0.2138i
0.3451i
0.5172i
0.7764i
1.2639i
2.7688i

Zadatak 6

Izvriti odabiranje kontinualnog signala x(t)=cos(2100t)+cos(2&pi105t) sa frekvencijom odabiranja fs=500 Hz. Generisati
20, 50 i 100 odbiraka. Za sva tri sluaja izraunati amplitudski spektar korienjem DFT i videti kako broj odbiraka utie na
oblik dobijenog spektra.
Reenje

clear all, close all;


fs=500;
f1=100; f2=105;
t_20=(0:20-1)'/fs;
x_20=cos(2*pi*f1*t_20)+sin(2*pi*f2*t_20);
t_50=(0:50-1)'/fs;
x_50=cos(2*pi*f1*t_50)+sin(2*pi*f2*t_50);
t_100=(0:100-1)'/fs;
x_100=cos(2*pi*f1*t_100)+sin(2*pi*f2*t_100);
X_20=fft(x_20);
X_50=fft(x_50);
X_100=fft(x_100);
f_20=(0:length(X_20)-1)/length(X_20)*fs;
f_50=(0:length(X_50)-1)/length(X_50)*fs;
f_100=(0:length(X_100)-1)/length(X_100)*fs;
figure,subplot(3,1,1),stem(f_20,abs(X_20)),ylabel('DFT({\itx}_{20})'),
legend(['\Delta{\itf}=' num2str(fs/20)],'Location','NorthEastOutside');
subplot(3,1,2),stem(f_50,abs(X_50)),ylabel('DFT({\itx}_{50})'),
legend(['\Delta{\itf}=' num2str(fs/50)],'Location','NorthEastOutside');
subplot(3,1,3),stem(f_100,abs(X_100)),ylabel('DFT({\itx}_{100})'),
xlabel('{\itf} [Hz]'),
legend(['\Delta{\itf}=' num2str(fs/100)],'Location','NorthEastOutside');

09-Dec-15 2:45 PM

Diskretna Furijeova transformacija (DFT)

9 of 9

file:///F:/glava05/glava05.html

Published with MATLAB 7.8

09-Dec-15 2:45 PM

Funkcija prenosa i frekvencijski odziv

1 of 14

file:///F:/glava07/glava07.html

Funkcija prenosa i frekvencijski odziv


Sadraj

Zadatak 1
Reenje
Zadatak 2
Reenje
Zadatak 3
Reenje
Zadatak 4
Reenje a)
Reenje b)
Reenje c)
Zadatak 5
Reenje a)
Reenje b)

Zadatak 1

Data je funkcija prenosa H(z)=Q(z)/P(z), gde su Q(z) i P(z) polinomi po z-1,


Q(z)=0.0647-0.0106z-1+0.0997z-2-0.0106z-3+0.0647z-4,
P(z)=1-2.2800z-1+2.6543z-2-1.5624z-3+0.4215z-4.

Odrediti poloaj nula i polova sistema u z ravni. Izraunati i prikazati amplitudsku i faznu karakteristiku
sistema kao i karakteristiku grupnog kanjenja. Prikazati prvih 50 vrednosti odbiraka impulsnog odziva
sistema.
Reenje

clear all, close all;


Q=[0.0647 -0.0106 0.0997 -0.0106 0.0647];
P=[1 -2.2800 2.6543 -1.5624 0.4215];
N=50;
figure,zplane(Q,P);
[H,w]=freqz(Q,P);
figure,plot(w/pi,abs(H));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})');
figure,plot(w/pi,unwrap(angle(H)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');
[gd,w]=grpdelay(Q,P);
figure,plot(w/pi,gd);
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itgd}({\it\omega}) [br. odbiraka]');
[h,n]=impz(Q,P,N);
figure,stem(n,h);
xlabel('{\itn}'),ylabel('{\ith}({\itn})');

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

2 of 14

file:///F:/glava07/glava07.html

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

3 of 14

file:///F:/glava07/glava07.html

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

4 of 14

file:///F:/glava07/glava07.html

Zadatak 2

Data je funkcija prenosa FIR sistema


H(z)=0.0186-0.0294z-1-0.0731z-2+0.0396z-3+
0.3045z-4+0.4528z-5+0.3045z-6+
0.0396z-7-0.0731z-80.0294z-9+0.0186z-10.

Odrediti poloaj nula i polova sistema u z ravni. Prikazati impulsni odziv sistema. Izraunati i prikazati
amplitudsku i faznu karakteristiku sistema kao i karakteristiku grupnog kanjenja.
Reenje

clear all, close all;


h=[0.0186 -0.0294 -0.0731 0.0396 0.3045 0.4528...
0.3045 0.0396 -0.0731 -0.0294 0.0186];
figure,zplane(h,1);
[H,w]=freqz(h,1);
figure,plot(w/pi,abs(H));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})');
figure,plot(w/pi,unwrap(angle(H)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');
[gd,w]=grpdelay(h,1);
figure,plot(w/pi,gd);
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itgd}({\it\omega}) [br. odbiraka]');
n=0:length(h)-1;
figure,stem(n,h);
xlabel('{\itn}'),ylabel('{\ith}({\itn})');

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

5 of 14

file:///F:/glava07/glava07.html

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

6 of 14

file:///F:/glava07/glava07.html

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

7 of 14

file:///F:/glava07/glava07.html

Zadatak 3
Data je funkcija prenosa H(z)=Q(z)/P(z), gde su Q(z) i P(z) polinomi po z-1,
Q(z)=0.2031+0.2588z-1+0.2588z-2+0.2031z-3
P(z)=1.0000-0.6804z-1+0.7865z-2-0.1821z-3.

a) Odrediti poloaj nula i polova sistema u z ravni. Izraunati i prikazati amplitudsku i faznu karakteristiku
sistema kao i karakteristiku grupnog kanjenja. Prikazati prvih 50 vrednosti odbiraka impulsnog odziva
sistema.
b) Ponoviti proceduru iz take a) za H1(z)=H(z2).
c) Ponoviti proceduru iz take a) za H2(z)=[H(z)2].
Reenje

clear all, close all;


Q=[0.2031 0.2588 0.2588 0.2031];
P=[1 -0.6804 0.7865 -0.1821];
N=50;
figure(1),subplot(3,1,1),zplane(Q,P);
[H,w]=freqz(Q,P);
figure(2),subplot(3,1,1),plot(w/pi,abs(H));
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})');
figure(3),subplot(3,1,1),plot(w/pi,unwrap(angle(H)));
ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');
[gd,w]=grpdelay(Q,P);

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

8 of 14

file:///F:/glava07/glava07.html

figure(4),subplot(3,1,1),plot(w/pi,gd);
ylabel('{\itgd}({\it\omega}) [br. odbiraka]');
[h,n]=impz(Q,P,N);
figure(5),subplot(3,1,1),stem(n,h);
ylabel('{\ith}({\itn})');
Q1(1:2:2*length(Q))=Q;
P1(1:2:2*length(P))=P;
figure(1),subplot(3,1,2),zplane(Q1,P1);
[H1,w]=freqz(Q1,P1);
figure(2),subplot(3,1,2),plot(w/pi,abs(H1));
ylabel('{\it\fontname{Monotype Corsiva}M}_1({\it\omega})');
figure(3),subplot(3,1,2),plot(w/pi,unwrap(angle(H1)));
ylabel('{\it\fontname{symbol}j}_1({\it\omega}) [rad]');
[gd1,w]=grpdelay(Q1,P1);
figure(4),subplot(3,1,2),plot(w/pi,gd1);
ylabel('{\itgd}_1({\it\omega}) [br. odbiraka]');
[h1,n]=impz(Q1,P1,N);
figure(5),subplot(3,1,2),stem(n,h1);
ylabel('{\ith}_1({\itn})');
Q2=conv(Q,Q);
P2=conv(P,P);
figure(1),subplot(3,1,3),zplane(Q2,P2);
[H2,w]=freqz(Q2,P2);
figure(2),subplot(3,1,3),plot(w/pi,abs(H2));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{Monotype Corsiva}M}_2({\it\omega})');
figure(3),subplot(3,1,3),plot(w/pi,unwrap(angle(H2)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}_2({\it\omega}) [rad]');
[gd2,w]=grpdelay(Q2,P2);
figure(4),subplot(3,1,3),plot(w/pi,gd2);
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itgd}_2({\it\omega}) [br. odbiraka]');
[h2,n]=impz(Q2,P2,N);
figure(5),subplot(3,1,3),stem(n,h2);
xlabel('{\itn}'),ylabel('{\ith}_2({\itn})');

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

9 of 14

file:///F:/glava07/glava07.html

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

10 of 14

file:///F:/glava07/glava07.html

Zadatak 4

Dat je realni signal {xr(n)},


Primenom instrukcije hilbert iz MATLAB-a formirati analitiki signal {x(n)},
09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

11 of 14

file:///F:/glava07/glava07.html

a) Nacrtati odbirke signala Re{x(n)} i Im{x(n)},

b) Izraunati diskretne Furijeove transformacije za signale Re{x(n)}, Im{x(n)} i {x(n)},


c) Grafiki prikazati rezultate iz take b).
Reenje a)

clear all, close all;


N=32;
xr=ones(8,1);
xr(N)=0;
x=hilbert(xr);
n=(0:N-1)';
figure,subplot(2,1,1),stem(n,real(x)),ylabel('Re({\itx}({\itn}))');
subplot(2,1,2),stem(n,imag(x)),
xlim([0 N-1]),
ylabel('Im({\itx}({\itn}))'),xlabel('{\itn}');

Reenje b)
ReX=fft(real(x));
ImX=fft(imag(x));
X=fft(x);

Reenje c)
figure,subplot(3,1,1),stem(n,real(ReX)),

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

12 of 14

file:///F:/glava07/glava07.html

hold on
stem(n,real(ImX),'marker','*','color',[0 0.5 0]),
stem(n,real(X),'marker','d','color',[1 0 0]),
xlim([0 N-1]),
ylabel('Relani deo DFT-a'),xlim([0 N+10]),
legend('real(x)','imag(x)','x','location','northeastoutside');
subplot(3,1,2),stem(n,imag(ReX)),
hold on
stem(n,imag(ImX),'marker','*','color',[0 0.5 0]),
stem(n,imag(X),'marker','d','color',[1 0 0]),
xlim([0 N-1]),
ylabel('Imag. deo DFT-a'),xlim([0 N+10]),
legend('real(x)','imag(x)','x','location','northeastoutside');
subplot(3,1,3),stem(n,abs(ReX)),
hold on
stem(n,abs(ImX),'marker','*','color',[0 0.5 0]),
stem(n,abs(X),'marker','d','color',[1 0 0]),
xlim([0 N-1]),
ylabel('moduo DFT-a'),xlim([0 N+10]),xlabel('{\itk}'),
legend('real(x)','imag(x)','x','location','northeastoutside');

Zadatak 5

Dati su polovi funkcije prenosa propusnika svih frekvencija drugog reda,


p1=ej/4 i p2=e-j/4.
a) Na osnovu datih polova formirati funkciju prenosa Hap(z).
b) Izraunati amplitudsku i faznu karakteristiku, kao i karakteristiku grupnog kanjenja za funkciju Hap(z).
09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

13 of 14

file:///F:/glava07/glava07.html

c) Nacrtati poloaj nula i polova funkcije Hap(z) u kompleksnoj z ravni.


d) Nacrtati karakteristike izraunate u taki b).
Reenje a)

clear all, close all;


a=poly(0.8*exp(j*pi/4*[1;-1]));
b=fliplr(a);
figure,zplane(b,a);

Reenje b)
[Hap,w]=freqz(b,a);
figure,subplot(3,1,1),plot(w/pi,abs(Hap)),
ylabel('|{\itH_{ap}}({\ite^{j\omega}})|'),
xlim([0 1]),ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})');
subplot(3,1,2),plot(w/pi,unwrap(angle(Hap))),
xlim([0 1]),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');
[gd,w]=grpdelay(b,a);
subplot(3,1,3),plot(w/pi,gd),
xlim([0 1]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itgd}({\it\omega}) [br. odbiraka]');

09-Dec-15 2:46 PM

Funkcija prenosa i frekvencijski odziv

14 of 14

file:///F:/glava07/glava07.html

Published with MATLAB 7.8

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

1 of 21

file:///F:/glava08/glava08.html

Digitalni filtri beskonanog impulsnog odziva, IIR

Sadraj

Zadatak 1
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Reenje e)
Reenje f)
Zadatak 2
Reenje
Zadatak 3
Reenje
Zadatak 4
Reenje
Zadatak 5
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 6
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 7
Reenje a)
Reenje b)
Reenje c)
Zadatak 8
Reenje a)
Reenje b)
Reenje c)

Zadatak 1

Dat je signal x(t), definisan izrazom


x(t)=cos(2100t)+cos(2300t).

a) Generisati diskretni signal {x(n)} koji sadri prvih 256 odbiraka signala x(t). Frekvencija odabiranja iznosi fs=1000
Hz.

b) Projektovati Batervortov IIR filtar propusnik niskih frekvencija koji e prvu komponentu signala x(t) oslabiti najvie 1
dB, a drugu komponentu e oslabiti barem 30 dB.
c) Izraunati i grafiki prikazati eljenu i realizovanu amplitudsku karakteristiku u linearnoj razmeri.
d) Izraunati i prikazati grupno kanjenje.

e) Izraunati i grafiki prikazati raspored nula i polova projektovanog filtra.


09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

2 of 21

file:///F:/glava08/glava08.html

f) Izraunati diskretni signal {y(n)} koji se dobija na izlazu projektovanog IIR filtra kada se ovaj pobudi signalom {x(n)}
i grafiki prikazati amplitudski spektar signala na ulazu i izlazu projektovanog filtra u linearnoj razmeri.
Reenje a)

clear all, close all;


N=256; fs=1000;
f1=100; f2=300;
t=(0:N-1)'/fs;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t);

Reenje b)
wp=f1/(fs/2); ws=f2/(fs/2);
rp=1; rs=30;
[Nf,wn]=buttord(wp,ws,rp,rs);
[b,a]=butter(Nf,wn);

Reenje c)
[H,f]=freqz(b,a,[],fs);
figure,plot(f,abs(H)),
line([0 f1],[1 1],'color',[1 0 0]);
line([f2 fs/2],10.^(-rs/20)*[1 1],'color',[1 0 0]),ylim([0 1.1]),
xlabel('{\itf} [Hz]'),ylabel('{\it\fontname{Monotype Corsiva}M}(2{\it\pif}/{\itf_s})'),
legend('realizovana','zadata');

Reenje d)
[gd,f]=grpdelay(b,a,1000,fs);
figure,plot(f,gd),
xlabel('{\itf} [Hz]'),ylabel('{\itgd}(2{\it\pif}/{\itf_s}) [br. odbiraka]');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

3 of 21

file:///F:/glava08/glava08.html

Reenje e)
nule=roots(b);
disp('Nule f-je prenosa projektovanog filtra:');
disp(nule);
polovi=roots(a);
disp('Polovi f-je prenosa projektovanog filtra:');
disp(polovi);
figure,
subplot(2,1,1),zplane(b,a);
% Dobija se isti grafik, na dva nacina, b i a su vektori-vrste,
subplot(2,1,2),zplane(nule,polovi); % nule i polovi su vektori-kolone
Nule f-je prenosa projektovanog filtra:
-1.0000 + 0.0000i
-1.0000 - 0.0000i
-1.0000
Polovi f-je prenosa projektovanog filtra:
0.4988 + 0.4640i
0.4988 - 0.4640i
0.3934

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

4 of 21

file:///F:/glava08/glava08.html

Reenje f)
y=filter(b,a,x);
X=fft(x);
Y=fft(y);
f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','location','northeastoutside');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

5 of 21

file:///F:/glava08/glava08.html

Zadatak 2

Projektovati Batervortov, ebievljev filtar I i II vrste i eliptiki IIR filtar propusnik niskih frekvencija koji e za
frekvencije nie od 100 Hz imati slabljenje od najvie 1 dB, a za frekvencije vie od 300 Hz imati slabljenje od bar 30
dB. Filtre treba projektovati za frekvenciu odabiranja od 1 kHz.
Izraunati i grafiki prikazati amplitudske karakteristike projektovanih filtara u logaritamskoj razmeri, njihove fazne
karakteristike, kao i grupno kanjenje.
Reenje

clear all, close all;


fs=1000;
f1=100; f2=300;
wp=f1/(fs/2); ws=f2/(fs/2);
rp=1; rs=30;
[Nb,wnb]=buttord(wp,ws,rp,rs);
[Nc1,wnc1]=cheb1ord(wp,ws,rp,rs);
[Nc2,wnc2]=cheb2ord(wp,ws,rp,rs);
[Ne,wne]=ellipord(wp,ws,rp,rs);
[bb,ab]=butter(Nb,wnb);
[bc1,ac1]=cheby1(Nc1,rp,wnc1);
[bc2,ac2]=cheby2(Nc2,rs,wnc2);
[be,ae]=ellip(Ne,rp,rs,wne);
[Hb,f]=freqz(bb,ab,[],fs);
[Hc1,f]=freqz(bc1,ac1,[],fs);
[Hc2,f]=freqz(bc2,ac2,[],fs);
[He,f]=freqz(be,ae,[],fs);
figure,plot(f,20*log10(abs([Hb Hc1 Hc2 He])));
xlabel('{\itf} [Hz]'),ylabel('{\itg}(2{\it\pif}/{\itf_s}) [dB]'),
legend('Batervortov','Cebisevljev I vrste','Cebisevljev II vrste','elipticki');
ylim([-100 10]);
figure,plot(f,unwrap(angle([Hb Hc1 Hc2 He])));
xlabel('{\itf} [Hz]'),ylabel('{\it\fontname{symbol}j}(2{\it\pif}/{\itf_s}) [rad]'),
legend('Batervortov','Cebisevljev I vrste','Cebisevljev II vrste','elipticki');
[gdb,f]=grpdelay(bb,ab,1000,fs);
[gdc1,f]=grpdelay(bc1,ac1,1000,fs);
[gdc2,f]=grpdelay(bc2,ac2,1000,fs);
[gde,f]=grpdelay(be,ae,1000,fs);
figure,plot(f,[gdb gdc1 gdc2 gde]);
xlabel('{\itf} [Hz]'),ylabel('{\itgd}(2{\it\pif}/{\itf_s}) [br. odbiraka]');
legend('Batervortov','Cebisevljev I vrste','Cebisevljev II vrste','elipticki');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

6 of 21

file:///F:/glava08/glava08.html

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

7 of 21

file:///F:/glava08/glava08.html

Zadatak 3

Napisati program u MATLAB-u kojim se generie diskretni niz {x(n)} koji sadri 20 odbiraka signala
x(t)=cos(2100t).

Frekvencija odabiranja iznosi 500 Hz.

Generisati signal {y(n)} proputanjem signala {x(n)} kroz filtar ija je funkcija prenosa

Nacrtati prvih pedeset odbiraka impulsnog odziva filtra i amplitudski spektar odziva {y(n)} na izlazu iz filtra.
Reenje

clear all, close all;


N=20;
fs=500;
t=(0:N-1)/fs;
x=cos(2*pi*100*t);
a=0.9;
bf=[1 -1/a];
af=[1 -a];
y=filter(bf,af,x);
Nimpz=50;
[h,n]=impz(bf,af,Nimpz);
figure,stem(n,h),
xlabel('{\itn}'),ylabel('{\ith}({\itn})');
[H,f]=freqz(bf,af,[],fs);
figure,plot(f,abs(H));
xlabel('{\itf} [Hz]'),ylabel('{\it\fontname{Monotype Corsiva}M}(2{\it\pif}/{\itf_s})');
X=fft(x);
Y=fft(y);

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

8 of 21

file:///F:/glava08/glava08.html

f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','location','northeastoutside');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

9 of 21

file:///F:/glava08/glava08.html

Zadatak 4

Generisati u MATLAB-u N=1000 odbiraka signala x(t), opisanog izrazom,


x(t)=cos(250t)+n(t).

Frekvencija odabiranja iznosi fs=500 Hz. n(t) je Gaussov um snage 2=4.


Projektovati IIR Batervortov filtar propusnik niskih frekvencija etvrtog reda koji na svojoj graninoj frekvenciji fp=100
Hz ima slabljenje od 3 dB. Nacrtati amplitudsku karakteristiku ovog filtra i impulsni odziv.
Izraunati diskretni signal {y(n)} koji se dobija na izlazu projektovanog IIR filtra kada se ovaj pobudi signalom {x(n)} i
grafiki prikazati amplitudski spektar signala na ulazu i izlazu projektovanog filtra u linearnoj razmeri.
Reenje

clear all, close all;


N=1000;
fs=500;
sigma_na_2=4;
t=(0:N-1)/fs;
x=cos(2*pi*150*t)+sqrt(sigma_na_2)*randn(size(t));
[b,a]=butter(4,100/(fs/2));
[H,f]=freqz(b,a,[],fs);
figure,plot(f,20*log10(abs(H)),100,-3,'o'),
text(100,-10,'{\itf}_g')
xlabel('{\itf} [Hz]'),ylabel('{\itg}(2{\it\pif}/{\itf_s}) [dB]'),
ylim([-100 5]);
[h,n]=impz(b,a);
figure,stem(n,h),
xlabel('{\itn}'),ylabel('{\ith}({\itn})');
y=filter(b,a,x);
figure,plot(t,x,t,y),
xlabel('{\itt} [s]'),ylabel('{\itx}({\itt}), {\ity}({\itt})'),
legend('signal na ulazu filtra','signal na izlazu filtra','location','northeastoutside');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

10 of 21

file:///F:/glava08/glava08.html

X=fft(x);
Y=fft(y);
f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','location','northeastoutside');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

11 of 21

file:///F:/glava08/glava08.html

Zadatak 5

U programskom jeziku MATLAB:

a) Generisati N=1000 odbiraka signala x(t), opisanog izrazom,


x(t)=cos(2150t)+n(t).

Frekvencija odabiranja iznosi fs=500 Hz. n(t) je Gaussov um snage 2=4.

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

12 of 21

file:///F:/glava08/glava08.html

b) Projektovati IIR ebievljev filtar I vrste, propusnik visokih frekvencija etvrtog reda granine frekvencije fp=100 Hz
sa varijacijom slabljenja u propusnom opsegu od 1 dB. Nacrtati raspored nula i polova ovog filtra, amplitudsku
karakteristiku i impulsni odziv.
c) Kako su rasporeene nule i polovi projektovanog IIR filtra u odnosu na jedinini krug i ta se moe zakljuiti iz
njihovog rasporeda?

d) Propustiti signal {x(n)} kroz projektovani filtar i tako dobijeni signal nazvati {y(n)}. Nacrtati signale {x(n)} i {y(n)}.
Reenje a)

clear all, close all;


N=1000;
fs=500;
rp=3;
sigma_na_2=4;
t=(0:N-1)/fs;
x=cos(2*pi*150*t)+sqrt(sigma_na_2)*randn(size(t));

Reenje b)
[b,a]=cheby1(4,rp,100/(fs/2),'high');
figure,zplane(b,a);
[H,f]=freqz(b,a,[],fs);
figure,plot(f,20*log10(abs(H)),100,-3,'o'),
text(100,-10,'{\itf}_g'),
xlabel('{\itf} [Hz]'),ylabel('{\itg}(2{\it\pif}/{\itf_s}) [dB]'),
ylim([-100 5]);
[h,n]=impz(b,a);
figure,stem(n,h),
xlabel('{\itn}'),ylabel('{\ith}({\itn})');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

13 of 21

file:///F:/glava08/glava08.html

Reenje c)
disp('Filtar je stabilan, minimalne faze.')
Filtar je stabilan, minimalne faze.

Reenje d)

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

14 of 21

file:///F:/glava08/glava08.html

y=filter(b,a,x);
figure,plot(t,x,t,y);
xlabel('{\itt} [s]'),ylabel('{\itx}({\itt}), {\ity}({\itt})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');
X=fft(x);
Y=fft(y);
f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

15 of 21

file:///F:/glava08/glava08.html

Zadatak 6

Zadate su specifikacije filtra propusnika niskih frekvencija:

granina frekvencija propusnog opsega p=0.35,


granina frekvencija nepropusnog opsega a=0.46,
maksimalno dozvoljeno slabljenje u propusnom opsegu ap=0.2 dB,
minimalno dozvoljeno slabljenje u nepropusnom opsegu aa=50 dB.

a) Prema postavljenim zahtevima projektovati,


(i) eliptiki filtar,
(ii) ebievljev filtar,
(iii) inverzni ebievljev filtar.

b) Uporediti karakteristike slabljenja filtara (i), (ii) i (iii).

c) Uporediti fazne karakteristike filtara (i), (ii) i (iii) u propusnom opsegu.

d) Uporediti karakteristike grupnog kanjenja filtara (i), (ii) i (iii) u propusnom opsegu.
Reenje a)

clear all, close all;


wp=0.35*pi;
wa=0.46*pi;
ap=0.2;
aa=50;
[Nc1,wnc1]=cheb1ord(wp/pi,wa/pi,ap,aa);
[Nc2,wnc2]=cheb2ord(wp/pi,wa/pi,ap,aa);
[Ne,wne]=ellipord(wp/pi,wa/pi,ap,aa);
[bc1,ac1]=cheby1(Nc1,ap,wnc1);
[bc2,ac2]=cheby2(Nc2,aa,wnc2);
[be,ae]=ellip(Ne,ap,aa,wne);

Reenje b)
[Hc1,w]=freqz(bc1,ac1);
[Hc2,w]=freqz(bc2,ac2);
[He,w]=freqz(be,ae);
figure,plot(w/pi,-20*log10(abs([Hc1 Hc2 He])));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}({\it\omega}) [dB]'),
legend('Cebisevljev I vrste','Cebisevljev II vrste','elipticki');
ylim([-10 100]);

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

16 of 21

file:///F:/glava08/glava08.html

Reenje c)
figure,plot(w/pi,unwrap(angle([Hc1 Hc2 He]))),
xlim([0 wp/pi]);
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]'),
legend('Cebisevljev I vrste','Cebisevljev II vrste','elipticki');

Reenje d)

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

17 of 21

file:///F:/glava08/glava08.html

[gdc1,w]=grpdelay(bc1,ac1);
[gdc2,w]=grpdelay(bc2,ac2);
[gde,w]=grpdelay(be,ae);
figure,plot(w/pi,[gdc1 gdc2 gde]),
xlim([0 wp/pi]);
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itgd}({\it\omega}) [br. odbiraka]');
legend('Cebisevljev I vrste','Cebisevljev II vrste','elipticki');

Zadatak 7

Zadate su specifikacije filtra propusnika opsega:

granine frekvencije propusnog opsega p1=0.30, p2=0.55,


granine frekvencije nepropusnih opsega a1=0.20, a2=0.70,
maksimalno dozvoljeno slabljenje u propusnom opsegu ap=0.5 dB,
minimalno slabljenje u nepropusnim opsezima aa=40 dB.

a) Prema postavljenim zahtevima projektovati eliptiki filtar.

b) Predstaviti poloaj nula i polova ovog filtra u kompleksnoj z ravni.

c) Nacrtati karakteristiku slabljenja ovog filtra i njegovu faznu karakteristiku.


Reenje a)

clear all, close all;


wp=[0.3*pi 0.55*pi];
wa=[0.2*pi 0.7*pi];
ap=0.5;
aa=40;
[N,wn]=ellipord(wp/pi,wa/pi,ap,aa);
[b,a]=ellip(N,ap,aa,wn);

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

18 of 21

file:///F:/glava08/glava08.html

Reenje b)
figure,zplane(b,a);

Reenje c)
[H,w]=freqz(b,a);
figure,plot(w/pi,-20*log10(abs(H)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}({\it\omega}) [dB]');
ylim([-10 100]);
figure,plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

19 of 21

file:///F:/glava08/glava08.html

Zadatak 8

Zadate su specifikacije filtra nepropusnika opsega:

granine frekvencije propusnih opsega p1=0.20, p2=0.70,


granine frekvencije nepropusnog opsega a1=0.30, a2=0.60,
maksimalno dozvoljeno slabljenje u propusnom opsegu ap=0.5 dB,
minimalno slabljenje u nepropusnim opsezima aa=40 dB.

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

20 of 21

file:///F:/glava08/glava08.html

a) Prema postavljenim zahtevima projektovati eliptiki filtar.

b) Predstaviti poloaj nula i polova ovog filtra u kompleksnoj z ravni.

c) Nacrtati karakteristiku slabljenja ovog filtra i njegovu faznu karakteristiku.


Reenje a)

clear all, close all;


wp=[0.2*pi 0.7*pi];
wa=[0.3*pi 0.6*pi];
ap=0.5;
aa=40;
[N,wn]=ellipord(wp/pi,wa/pi,ap,aa);
[b,a]=ellip(N,ap,aa,wn,'stop');

Reenje b)
figure,zplane(b,a);

Reenje c)
[H,w]=freqz(b,a);
figure,plot(w/pi,-20*log10(abs(H)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}({\it\omega}) [dB]');
ylim([-10 100]);
figure,plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

09-Dec-15 2:46 PM

Digitalni filtri beskonanog impulsnog odziva, IIR

21 of 21

file:///F:/glava08/glava08.html

Published with MATLAB 7.8

09-Dec-15 2:46 PM

Digitalni filtri konanog impulsnog odziva, FIR

1 of 19

file:///F:/glava09/glava09.html

Digitalni filtri konanog impulsnog odziva (FIR)


Sadraj

Zadatak 1
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Reenje e)
Zadatak 2
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 3
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 4
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 5
Reenje a)
Reenje b)
Reenje c)
Reenje d)

Zadatak 1

Dat je signal x(t), definisan izrazom,


x(t)=cos(2200t)+n(t),

gde je n(t) Gausov um jedinine snage.

a) Generisati diskretni signal {x(n)} koji sadri prvih 512 odbiraka signala x(t). Frekvencija odabiranja iznosi
fs=1000 Hz.

b) Projektovati FIR filtar propusnik opsega frekvencija 32. reda graninih frekvencija fc1=100 Hz i fc2=300 Hz
primenom Hamingovog prozora. Izraunati i grafiki prikazati impulsni odziv projektovanog filtra.
c) Izraunati i grafiki prikazati raspored nula i polova projektovanog filtra u z ravni, njegovu amplitudsku
karakteristiku i slabljenje, faznu karakteristiku, kao i njegovo grupno kanjenje.
d) Izraunati diskretni signal {y(n)} koji se dobija na izlazu iz projektovanog filtra kada se ovaj pobudi

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

2 of 19

file:///F:/glava09/glava09.html

signalom {x(n)}.

e) Grafiki prikazati amplitudski spektar signala na ulazu i izlazu projektovanog filtra.


Reenje a)

clear all, close all;


N=512;
fs=1000;
sigma_na_2=1;
t=(0:N-1)/fs;
x=cos(2*pi*200*t)+sqrt(sigma_na_2)*randn(size(t));

Reenje b)
N_FIR=32;
h=fir1(N_FIR,[100 300]/(fs/2)); % Hammingov prozor je podrazumevani (default) izbor
n=0:N_FIR;
figure,stem(n,h),
xlabel('{\itn}'),ylabel('{\ith}({\itn})');

Reenje c)
nule=roots(h);
polovi=zeros(size(nule));
figure,zplane(nule,polovi);
[H,f]=freqz(h,1,[],fs);
figure,subplot(2,1,1),plot(f,abs(H)),
ylabel('{\it\fontname{Monotype Corsiva}M}(2{\it\pif}/{\itf_s})'),

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

3 of 19

file:///F:/glava09/glava09.html

subplot(2,1,2),plot(f,-20*log10(abs(H))),
xlabel('{\itf} [Hz]'),ylabel('{\ita}(2{\it\pif}/{\itf_s}) [dB]'),
ylim([-5 100]);
figure,subplot(2,1,1),plot(f,unwrap(angle(H))),
ylabel('{\it\fontname{symbol}j}(2{\it\pif}/{\itf_s}) [rad]');
[gd,f]=grpdelay(h,1,1000,fs);
subplot(2,1,2),plot(f,gd),
xlabel('{\itf} [Hz]'),ylabel('{\itgd}(2{\it\pif}/{\itf_s}) [br. odbiraka]');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

4 of 19

file:///F:/glava09/glava09.html

Reenje d)
y=filter(h,1,x);
figure,plot(t,x,t,y),
xlim([0 t(N)]),

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

5 of 19

file:///F:/glava09/glava09.html

xlabel('{\itt} [s]'),ylabel('{\itx}({\itt}), {\ity}({\itt})'),


legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');

Reenje e)
X=fft(x);
Y=fft(y);
f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

6 of 19

file:///F:/glava09/glava09.html

Zadatak 2

Dat je signal x(t), definisan izrazom,


x(t)=cos(2100t)+n(t),

gde je n(t) Gausov um snage 2=2.

a) Generisati diskretni signal {x(n)} koji sadri prvih 512 odbiraka signala x(t). Frekvencija odabiranja iznosi
fs=1000 Hz.
b) Projektovati FIR filtar propusnik niskih frekvencija 32. reda granine frekvencije fg=50 Hz primenom
pravougaonog prozora i primenom trougaonog prozora.
c) Izraunati i grafiki prikazati amplitudsku karakteristiku i karakteristiku slabljenja oba filtra.

d) Izraunati diskretni signal {y(n)} koji se dobija na izlazu FIR filtra projektovanog primenom pravougaonog
prozora kada se ovaj pobudi signalom {x(n)} i grafiki prikazati signal na ulazu i izlazu projektovanog filtra.
Reenje a)

clear all, close all;


N=512;
fs=1000;
sigma_na_2=2;
t=(0:N-1)/fs;
x=cos(2*pi*10*t)+sqrt(sigma_na_2)*randn(size(t));

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

7 of 19

file:///F:/glava09/glava09.html

Reenje b)
N_FIR=32;
h_p=fir1(N_FIR,50/(fs/2),rectwin(N_FIR+1));
h_t=fir1(N_FIR,50/(fs/2),triang(N_FIR+1));
n=0:N_FIR;
figure,stem(n,[h_p;h_t]'),
xlabel('{\itn}'),ylabel('{\ith}({\itn})'),
legend('pravougaoni','trugaoni');

Reenje c)
[H_p,f]=freqz(h_p,1,[],fs);
[H_t,f]=freqz(h_t,1,[],fs);
figure,subplot(2,1,1),plot(f,abs([H_p H_t])),
ylabel('{\it\fontname{Monotype Corsiva}M}(2{\it\pif}/{\itf_s})'),
legend('pravougaoni','trugaoni');
subplot(2,1,2),plot(f,-20*log10(abs([H_p H_t]))),
xlabel('{\itf} [Hz]'),ylabel('{\ita}(2{\it\pif}/{\itf_s}) [dB]'),
ylim([-5 100]);

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

8 of 19

file:///F:/glava09/glava09.html

Reenje d)
y=filter(h_p,1,x);
figure,plot(t,x,t,y),
xlim([0 t(N)]),
xlabel('{\itt} [s]'),ylabel('{\itx}({\itt}), {\ity}({\itt})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');
X=fft(x);
Y=fft(y);
f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

9 of 19

file:///F:/glava09/glava09.html

Zadatak 3

Dat je signal x(t), definisan izrazom,


x(t)=cos(2150t)+n(t),

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

10 of 19

file:///F:/glava09/glava09.html

gde je n(t) Gausov um snage 2=2.

a) Generisati diskretni signal {x(n)} koji sadri prvih 256 odbiraka signala x(t). Frekvencija odabiranja iznosi
fs=1000 Hz.
b) Projektovati optimalni FIR filtar propusnik opsega 29. reda graninih frekvencija propusnog opsega fp1=100
Hz i fp2=200 Hz, kao i graninih frekvencija nepropusnog opsega fa1=50 Hz i fa2=250 Hz.
c) Izraunati i grafiki prikazati eljenu i realizovanu amplitudsku karakteristiku.
d) Izraunati i prikazati grupno kanjenje.

e) Izraunati diskretni signal {y(n)} koji se dobija na izlazu projektovanog FIR filtra kada se ovaj pobudi
signalom {x(n)} i grafiki prikazati amplitudski spektar signala na ulazu i izlazu projektovanog filtra.
Reenje a)

clear all, close all;


N=256;
fs=1000;
sigma_na_2=2;
t=(0:N-1)/fs;
x=cos(2*pi*150*t)+sqrt(sigma_na_2)*randn(size(t));

Reenje b)
N_FIR=29;
h=firpm(N_FIR,[0 50 100 200 250 fs/2]/(fs/2),[0 0 1 1 0 0]);
n=0:N_FIR;
figure,stem(n,h),
xlabel('{\itn}'),ylabel('{\ith}({\itn})');
[H,f]=freqz(h,1,[],fs);
figure,plot(f,abs(H)),
line([0 50],[0 0],'color',[1 0 0]),
line([100 200],[1 1],'color',[1 0 0]),
line([250 fs/2],[0 0],'color',[1 0 0]),
ylim([0 1.1]),
xlabel('{\itf} [Hz]'),ylabel('{\it\fontname{Monotype Corsiva}M}(2{\it\pif}/{\itf_s})'),
legend('realizovana','zadata');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

11 of 19

file:///F:/glava09/glava09.html

Reenje c)
[gd,f]=grpdelay(h,1,1000,fs);
figure,plot(f,gd);
xlabel('{\itf} [Hz]'),ylabel('{\itgd}(2{\it\pif}/{\itf_s}) [br. odbiraka]');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

12 of 19

file:///F:/glava09/glava09.html

Reenje d)
y=filter(h,1,x);
figure,plot(t,x,t,y),
xlim([0 t(N)]),
xlabel('{\itt} [s]'),ylabel('{\itx}({\itt}), {\ity}({\itt})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');
X=fft(x);
Y=fft(y);
f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

13 of 19

file:///F:/glava09/glava09.html

Zadatak 4

Dat je signal x(t), definisan izrazom,

x(t)=cos(2100t)+n(t)+cos(2300t).
09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

14 of 19

file:///F:/glava09/glava09.html

a) Generisati diskretni signal {x(n)} koji sadri prvih 512 odbiraka signala x(t). Frekvencija odabiranja iznosi
fs=1000 Hz.
b) Projektovati FIR filtar propusnik niskih frekvencija 32. reda granine frekvencije fg=200 Hz primenom
Hamingovog prozora. Grafiki prikazati impulsni odziv projektovanog filtra.

c) Izraunati prvih 50 odbiraka diskretnog signala {y(n)} koji se dobija na izlazu projektovanog filtra kada se
ovaj pobudi signalom {x(n)}.
d) Grafiki prikazati prvih 50 odbirak signala na ulazu i izlazu projektovanog filtra.
Reenje a)

clear all, close all;


N=512;
fs=1000;
t=(0:N-1)/fs;
x=cos(2*pi*100*t)+cos(2*pi*300*t);

Reenje b)
N_FIR=32;
fg=200;
h=fir1(N_FIR,fg/(fs/2));
n=0:N_FIR;
figure,stem(n,h),
xlabel('{\itn}'),ylabel('{\ith}({\itn})');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

15 of 19

file:///F:/glava09/glava09.html

Reenje c)
y=filter(h,1,x);

Reenje d)
figure,plot(t,x,t,y),
xlim([0 t(N)]),
xlabel('{\itt} [s]'),ylabel('{\itx}({\itt}), {\ity}({\itt})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');
X=fft(x);
Y=fft(y);
f_crt=(0:length(X)-1)/length(X)*fs;
figure,plot(f_crt(1:N/2),abs(X(1:N/2)),f_crt(1:N/2),abs(Y(1:N/2))),
xlabel('{\itf} [Hz]'),ylabel('DFT({\itx}), DFT({\ity})'),
legend('signal na ulazu filtra','signal na izlazu filtra','Location','NorthEastOutside');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

16 of 19

file:///F:/glava09/glava09.html

Zadatak 5

Zadate su specifikacije FIR filtra propusnika niskih frekvencija:

Granina frekvencija propusnog opsega p=0.35,


Granina frekvencija nepropusnog opsega a=0.46,
Tolerancija amplitudske karakteristike u propusnom opsegu p=0.025,
Tolerancija amplitudske karakteristike u nepropusnom opsegu a=0.01.

a) Prema postavljenim zahtevima projektovati optimalan FIR filtar linearne fazne karakteristike.
b) Izraunati i prikazati amplitudsku karakteristiku i karakteristiku slabljenja filtra.
c) Izraunati i prikazati faznu karakteristiku filtra.
d) Prikazati impulsni odziv filtra.
Reenje a)

clear all, close all;


wp=0.35*pi;
wa=0.46*pi;
deltap=0.025;
deltaa=0.01;
[N_FIR,fo,mo,w_FIR]=firpmord([wp/pi wa/pi],[1 0],[deltap deltaa]);
h=firpm(N_FIR,fo,mo,w_FIR);

Reenje b)
09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

17 of 19

file:///F:/glava09/glava09.html

[H,w]=freqz(h,1);
figure,subplot(2,1,1),plot(w/pi,abs(H)),
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})'),
subplot(2,1,2),plot(w/pi,-20*log10(abs(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}({\it\omega}) [dB]');

Reenje c)
figure,plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

18 of 19

file:///F:/glava09/glava09.html

Reenje d)
n=0:N_FIR;
figure,stem(n,h),
xlabel('{\itn}'),ylabel('{\ith}({\itn})');

09-Dec-15 2:47 PM

Digitalni filtri konanog impulsnog odziva, FIR

19 of 19

file:///F:/glava09/glava09.html

Published with MATLAB 7.8

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

1 of 15

file:///F:/glava10/glava10.html

Realizacija digitalnih filtara


Sadraj

Zadatak 1
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Reenje e)
Zadatak 2
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Reenje e)
Zadatak 3
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Zadatak 4
Reenje a)
Reenje b)
Reenje c)
Reenje d)
Reenje e)
Zadatak 5
Reenje a)
Reenje b)
Reenje c)
Reenje d)

Zadatak 1

a) Projektovati IIR eliptiki filtar propusnik niskih frekvencija 4. reda prema sledeim specifikacijama:
granina frekvencija propusnog opsega p=0.4,
maksimalno dozvoljeno slabljenje u propusnom opsegu ap=0.5 dB,
minimalno slabljenje u nepropusnom opsegu aa=30 dB.

b) Izraunati i prikazati karakteristiku slabljenja i faznu karakteristiku ovog filtra.


c) Odrediti konstante direktne realizacione strukture.
d) Odrediti konstante kaskadne strukture.
e) Odrediti konstante paralelne strukture.
Reenje a)

clear all, close all;


N=4;
ap=0.5;
aa=30;
wp=0.4*pi;
[z,p,k]=ellip(N,ap,aa,wp/pi); % ovaj oblik pogodniji za kasnije dobijanje koeficijenata kaskadne i paralelne strukture

Reenje b)
b=k*poly(z);
a=poly(p);
[H,w]=freqz(b,a);
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})'),
subplot(2,1,2),plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

2 of 15

file:///F:/glava10/glava10.html

Reenje c)
disp('Keoficiejnti direktne realizacione strukture:');
disp(' -brojilac:');
disp(b);
disp(' -imenilac:');
disp(a);
Keoficiejnti direktne realizacione strukture:
-brojilac:
0.1048
0.1366
0.2134
0.1366
0.1048
-imenilac:
1.0000
-1.2475

1.4920

-0.7518

0.2449

Reenje d)
[basos_c,g_c]=zp2sos(z,p,k);
[br_sec_c,ni]=size(basos_c);
disp('Keoficiejnti kaskadne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_c);
for brojac=1:br_sec_c
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_c(brojac,1:3));
disp(' -imenilac:');
disp(basos_c(brojac,4:6));
end;
Keoficiejnti kaskadne realizacione strukture:
konstanta pojacanja:
0.1048
1. sekcija
-brojilac:
1.0000

1.2754

1.0000

-imenilac:
1.0000
-0.7335

0.3008

2. sekcija
-brojilac:
1.0000

0.0281

1.0000

-imenilac:
1.0000
-0.5140

0.8141

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

3 of 15

file:///F:/glava10/glava10.html

Reenje e)
[rb,ra,g_p]=residuez(b,a);
br_sec_p=ceil(length(ra)/2);
tr_ind=1;
sec_ind=1;
while tr_ind<=length(ra)
if tr_ind==length(ra) | ra(tr_ind)~=conj(ra(tr_ind+1))
basos_p(sec_ind,1:6)=[rb(tr_ind),0,0,1 -ra(tr_ind),0];
tr_ind=tr_ind+1;
sec_ind=sec_ind+1;
else
[basos_p(sec_ind,1:3),basos_p(sec_ind,4:6)]=residuez([rb(tr_ind),rb(tr_ind+1)],[ra(tr_ind),ra(tr_ind+1)],0);
tr_ind=tr_ind+2;
sec_ind=sec_ind+1;
end;
end;
disp('Keoficiejnti paralelne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_p);
for brojac=1:br_sec_p
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_p(brojac,1:3));
disp(' -imenilac:');
disp(basos_p(brojac,4:6));
end;
H_c_uk=g_c*ones(size(H));
for brojac=1:br_sec_c
H_c_uk=H_c_uk.*freqz(basos_c(brojac,1:3),basos_c(brojac,4:6));
end;
H_p_uk=g_p*ones(size(H));
for brojac=1:br_sec_p
H_p_uk=H_p_uk+freqz(basos_p(brojac,1:3),basos_p(brojac,4:6));
end;
figure,subplot(3,1,1),plot(w/pi,-20*log10(abs(H)));
ylim([-5 100]),
ylabel('{\ita}_d({\it\omega}) [dB]');
subplot(3,1,2),plot(w/pi,-20*log10(abs(H_c_uk)));
ylim([-5 100]),
ylabel('{\ita}_c({\it\omega}) [dB]');
subplot(3,1,3),plot(w/pi,-20*log10(abs(H_p_uk)));
ylim([-5 100]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}_p({\it\omega}) [dB]');
Keoficiejnti paralelne realizacione strukture:
konstanta pojacanja:
0.4280
1. sekcija
-brojilac:
-0.1094 + 0.0000i
-imenilac:
1.0000
-0.5140
2. sekcija
-brojilac:
-0.2138

-0.1311

0.8141

0.6115

-imenilac:
1.0000
-0.7335

0.3008

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

4 of 15

file:///F:/glava10/glava10.html

Zadatak 2
Zadatak 2

a) Projektovaati IIR Batervortov filtar propusnik visokih frekvencija 7. reda za graninu frekvenciju p=0.4.
b) Izraunati i prikazati karakteristiku slabljenja i faznu karakteristiku ovog filtra.
c) Odrediti konstante direktne realizacione strukture.
d) Odrediti konstante kaskadne strukture.
e) Odrediti konstante paralelne strukture.
Reenje a)

clear all, close all;


N=5;
wp=0.4*pi;
[z,p,k]=butter(N,wp/pi,'high'); % ovaj oblik pogodniji za kasnije dobijanje koeficijenata kaskadne i paralelne strukture

Reenje b)
b=k*poly(z);
a=poly(p);
[H,w]=freqz(b,a);
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})'),
subplot(2,1,2),plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

5 of 15

file:///F:/glava10/glava10.html

Reenje c)
disp('Keoficiejnti direktne realizacione strukture:');
disp(' -brojilac:');
disp(b);
disp(' -imenilac:');
disp(a);
Keoficiejnti direktne realizacione strukture:
-brojilac:
0.1084
-0.5419
1.0837
-1.0837
0.5419
-imenilac:
1.0000
-0.9853

0.9738

-0.3864

0.1112

-0.1084
-0.0113

Reenje d)
[basos_c,g_c]=zp2sos(z,p,k);
[br_sec_c,ni]=size(basos_c);
disp('Keoficiejnti kaskadne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_c);
for brojac=1:br_sec_c
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_c(brojac,1:3));
disp(' -imenilac:');
disp(basos_c(brojac,4:6));
end;
Keoficiejnti kaskadne realizacione strukture:
konstanta pojacanja:
0.1084
1. sekcija
-brojilac:
1
-1

-imenilac:
1.0000
-0.1584
2. sekcija
-brojilac:
1
-2

-imenilac:
1.0000
-0.3493

0.1303

3. sekcija
-brojilac:

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

6 of 15

-2

file:///F:/glava10/glava10.html
1

-imenilac:
1.0000
-0.4777

0.5457

Reenje e)
[rb,ra,g_p]=residuez(b,a);
br_sec_p=ceil(length(ra)/2);
tr_ind=1;
sec_ind=1;
while tr_ind<=length(ra)
if tr_ind==length(ra) || ra(tr_ind)~=conj(ra(tr_ind+1))
basos_p(sec_ind,1:6)=[rb(tr_ind),0,0,1 -ra(tr_ind),0];
tr_ind=tr_ind+1;
sec_ind=sec_ind+1;
else
[basos_p(sec_ind,1:3),basos_p(sec_ind,4:6)]=residuez([rb(tr_ind),rb(tr_ind+1)],[ra(tr_ind),ra(tr_ind+1)],0);
tr_ind=tr_ind+2;
sec_ind=sec_ind+1;
end;
end;
disp('Keoficiejnti paralelne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_p);
for brojac=1:br_sec_p
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_p(brojac,1:3));
disp(' -imenilac:');
disp(basos_p(brojac,4:6));
end;
H_c_uk=g_c*ones(size(H));
for brojac=1:br_sec_c
H_c_uk=H_c_uk.*freqz(basos_c(brojac,1:3),basos_c(brojac,4:6));
end;
H_p_uk=g_p*ones(size(H));
for brojac=1:br_sec_p
H_p_uk=H_p_uk+freqz(basos_p(brojac,1:3),basos_p(brojac,4:6));
end;
figure,subplot(3,1,1),plot(w/pi,-20*log10(abs(H)));
ylim([-5 100]),
ylabel('{\ita}_d({\it\omega}) [dB]');
subplot(3,1,2),plot(w/pi,-20*log10(abs(H_c_uk)));
ylim([-5 100]),
ylabel('{\ita}_c({\it\omega}) [dB]');
subplot(3,1,3),plot(w/pi,-20*log10(abs(H_p_uk)));
ylim([-5 100]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}_p({\it\omega}) [dB]');
Keoficiejnti paralelne realizacione strukture:
konstanta pojacanja:
9.6217
1. sekcija
-brojilac:
0.0889

0.5978

-imenilac:
1.0000
-0.4777

0.5457

2. sekcija
-brojilac:
-3.7717

1.1655

-imenilac:
1.0000
-0.3493

0.1303

3. sekcija
-brojilac:
-5.8304

-imenilac:
1.0000
-0.1584

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

7 of 15

file:///F:/glava10/glava10.html

Zadatak 3

a) Projektovati FIR filtar linearne faze propusnik niskih frekvencija duine N=31 sa graninom frekvencijom c=0.4.
Primeniti Hanov prozor.
b) Izraunati i prikazati karakteristiku slabljenja i faznu karakteristiku ovog filtra.
c) Odrediti konstante direktne realizacione strukture.
d) Odrediti konstante kaskadne strukture.
Reenje a)

clear all, close all;


N=30;
wp=0.4*pi;
h=fir1(N,wp/pi,hann(N+1));

Reenje b)
[H,w]=freqz(h,1);
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})'),
subplot(2,1,2),plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

8 of 15

file:///F:/glava10/glava10.html

Reenje c)
disp('Keoficiejnti direktne realizacione strukture:');
disp(h);
Keoficiejnti direktne realizacione strukture:
Columns 1 through 8
0

-0.0002

-0.0006

0.0015

0.0046

-0.0000

-0.0116

-0.0105

-0.0000

-0.0631

-0.0564

0.0895

0.2993

0.3998

-0.0631

-0.0000

0.0330

0.0148

-0.0105

0.0015

-0.0006

-0.0002

Columns 9 through 16
0.0148

0.0330

Columns 17 through 24
0.2993

0.0895

-0.0564

Columns 25 through 31
-0.0116

-0.0000

0.0046

Reenje d)
z=roots(h);
tr_ind=1;
sec_ind=1;
while tr_ind<=length(z)
if tr_ind==length(z) || z(tr_ind)~=conj(z(tr_ind+1))
h_c(sec_ind,1:2)=poly(z(tr_ind));
tr_ind=tr_ind+1;
sec_ind=sec_ind+1;
else
h_c(sec_ind,1:3)=poly([z(tr_ind) z(tr_ind+1)]);
tr_ind=tr_ind+2;
sec_ind=sec_ind+1;
end;
end;
[br_sec_c,ni]=size(h_c);
disp('Keoficiejnti kaskadne realizacione strukture:');
for brojac=1:br_sec_c
disp([num2str(brojac) '. sekcija']);
disp(h_c(brojac,:));
end;
H_c_uk=ones(size(H));
for brojac=1:br_sec_c
h_c(brojac,:)=h_c(brojac,:)./abs(sum(h_c(brojac,:)));
H_c_uk=H_c_uk.*freqz(h_c(brojac,:),1);
end;
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

9 of 15

file:///F:/glava10/glava10.html

ylim([-5 100]),
ylabel('{\ita}_d({\it\omega}) [dB]');
subplot(2,1,2),plot(w/pi,-20*log10(abs(H_c_uk)));
ylim([-5 100]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}_c({\it\omega}) [dB]');
Keoficiejnti kaskadne realizacione strukture:
1. sekcija
1
0
0
2. sekcija
1.0000

2.9817

3. sekcija
1.0000

-2.2289

4. sekcija
1.0000

-3.4593

3.2706

5. sekcija
1.0000

-2.2997

2.5556

6. sekcija
1.0000

1.9894

1.0000

7. sekcija
1.0000

1.9050

1.0000

8. sekcija
1.0000

1.7396

1.0000

9. sekcija
1.0000

1.5000

1.0000

10. sekcija
1.0000

1.1970

1.0000

11. sekcija
1.0000

0.8448

1.0000

12. sekcija
1.0000

0.4616

1.0000

13. sekcija
1.0000

0.0727

1.0000

14. sekcija
1.0000

-0.8999

0.3913

15. sekcija
1.0000

-1.0577

0.3058

16. sekcija
1.0000

-0.4487

17. sekcija
1.0000

0.3354

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

10 of 15

file:///F:/glava10/glava10.html

Zadatak 4

a) Projektovaati IIR ebievljev filtar propusnik opsega 6. reda graninih frekvencija fp1=2000 Hz i fp2=3000 Hz.
Frekvencija odabiranja je 10000 Hz. Maksimalno dozvoljeno slabljenje u propusnom opsegu je ap=0.5 dB.
b) Izraunati i prikazati karakteristiku slabljenja i faznu karakteristiku ovog filtra.
d) Odrediti konstante kaskadne strukture.
e) Odrediti konstante paralelne strukture.
Reenje a)

clear all, close all;


N=6;
ap=0.5;
fp=[2000 3000];
fs=10000;
[z,p,k]=cheby1(N/2,ap,fp/(fs/2)); % ovaj oblik pogodniji za kasnije dobijanje koeficijenata kaskadne i paralelne strukture

Reenje b)
b=k*poly(z);
a=poly(p);
[H,f]=freqz(b,a,[],fs);
figure,subplot(2,1,1),plot(f,-20*log10(abs(H)));
ylabel('{\it\fontname{Monotype Corsiva}M}(2{\it\pif}/{\itf_s})'),
subplot(2,1,2),plot(f,unwrap(angle(H))),
xlabel('{\itf} [Hz]'),ylabel('{\it\fontname{symbol}j}(2{\it\pif}/{\itf_s}) [rad]');

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

11 of 15

file:///F:/glava10/glava10.html

Reenje c)
disp('Keoficiejnti direktne realizacione strukture:');
disp(' -brojilac:');
disp(b);
disp(' -imenilac:');
disp(a);
Keoficiejnti direktne realizacione strukture:
-brojilac:
0.0154
0
-0.0462
0
0.0462
-imenilac:
1.0000
-0.0000

1.9900

-0.0000

1.5715

-0.0154

0.0000

0.4583

Reenje d)
[basos_c,g_c]=zp2sos(z,p,k);
[br_sec_c,ni]=size(basos_c);
disp('Keoficiejnti kaskadne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_c);
for brojac=1:br_sec_c
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_c(brojac,1:3));
disp(' -imenilac:');
disp(basos_c(brojac,4:6));
end;
Keoficiejnti kaskadne realizacione strukture:
konstanta pojacanja:
0.0154
1. sekcija
-brojilac:
1
0
-imenilac:
1.0000
2. sekcija
-brojilac:
1
2
-imenilac:
1.0000

-1
0.0000

0.6618

1
0.5798

0.8322

3. sekcija

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

12 of 15

-brojilac:
1
-2

file:///F:/glava10/glava10.html

-imenilac:
1.0000
-0.5798

0.8322

Reenje e)
[rb,ra,g_p]=residuez(b,a);
br_sec_p=ceil(length(ra)/2);
tr_ind=1;
sec_ind=1;
while tr_ind<=length(ra)
if tr_ind==length(ra) || ra(tr_ind)~=conj(ra(tr_ind+1))
basos_p(sec_ind,1:6)=[rb(tr_ind),0,0,1 -ra(tr_ind),0];
tr_ind=tr_ind+1;
sec_ind=sec_ind+1;
else
[basos_p(sec_ind,1:3),basos_p(sec_ind,4:6)]=residuez([rb(tr_ind),rb(tr_ind+1)],[ra(tr_ind),ra(tr_ind+1)],0);
tr_ind=tr_ind+2;
sec_ind=sec_ind+1;
end;
end;
disp('Keoficiejnti paralelne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_p);
for brojac=1:br_sec_p
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_p(brojac,1:3));
disp(' -imenilac:');
disp(basos_p(brojac,4:6));
end;
H_c_uk=g_c*ones(size(H));
for brojac=1:br_sec_c
H_c_uk=H_c_uk.*freqz(basos_c(brojac,1:3),basos_c(brojac,4:6));
end;
H_p_uk=g_p*ones(size(H));
for brojac=1:br_sec_p
H_p_uk=H_p_uk+freqz(basos_p(brojac,1:3),basos_p(brojac,4:6));
end;
figure,subplot(3,1,1),plot(f,-20*log10(abs(H)));
ylim([-5 100]),
ylabel('{\ita}_d(2{\it\pif}/{\itf_s}) [dB]');
subplot(3,1,2),plot(f,-20*log10(abs(H_c_uk)));
ylim([-5 100]),
ylabel('{\ita}_c(2{\it\pif}/{\itf_s}) [dB]');
subplot(3,1,3),plot(f,-20*log10(abs(H_p_uk)));
ylim([-5 100]),
xlabel('{\itf} [Hz]'),ylabel('{\ita}_p(2{\it\pif}/{\itf_s}) [dB]');
Keoficiejnti paralelne realizacione strukture:
konstanta pojacanja:
-0.0336
1. sekcija
-brojilac:
-0.1878 - 0.0000i

0.0154 - 0.0000i

-imenilac:
1.0000
-0.5798

0.8322

2. sekcija
-brojilac:
-0.1878
-0.0154

-imenilac:
1.0000

0.5798

3. sekcija
-brojilac:
0.4247 - 0.0000i
-imenilac:
1.0000

0.0000

0.8322
0.0000

0.6618

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

13 of 15

file:///F:/glava10/glava10.html

Zadatak 5

a) Projektovati IIR eliptiki filtar propusnik opsega 6. reda sa sledeim specifikacijama: granine frekvencije propusnog
opsega p1=0.3 i p2=0.3, maksimalno dozvoljeno slabljenje u propusnom opsegu ap=1 dB, minimalno slabljenje u
nepropusnom opsegu aa=50 dB.
b) Formirati kaskadnu realizacionu strukturu ovog filtra.

c) Izraunati i prikazati amplitudske karakteristike sekcija drugog reda.

d) Izraunati i prikazati amplitudsku karakteristiku slabljenja filtra u celini.


Reenje a)

clear all, close all;


N=6;
ap=1;
aa=50;
wp=[0.3 0.4]*pi;
[z,p,k]=ellip(N/2,ap,aa,wp/pi); % ovaj oblik pogodniji za kasnije dobijanje koeficijenata kaskadne i paralelne strukture

Reenje b)
[basos_c,g_c]=zp2sos(z,p,k);
[br_sec_c,ni]=size(basos_c);
disp('Keoficiejnti kaskadne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_c);
for brojac=1:br_sec_c
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_c(brojac,1:3));
disp(' -imenilac:');
disp(basos_c(brojac,4:6));
end;
Keoficiejnti kaskadne realizacione strukture:
konstanta pojacanja:
0.0060
1. sekcija
-brojilac:
1.0000

0.0000

-1.0000

-imenilac:
1.0000
-0.8509

0.8511

2. sekcija
-brojilac:

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

14 of 15

1.0000

file:///F:/glava10/glava10.html

0.3232

1.0000

-imenilac:
1.0000
-0.6030

0.9237

3. sekcija
-brojilac:
1.0000
-1.6400

1.0000

-imenilac:
1.0000
-1.1308

0.9344

Reenje c)
za_legendu='';
for brojac=1:br_sec_c
[H_c(:,brojac),w]=freqz(basos_c(brojac,1:3),basos_c(brojac,4:6));
za_legendu=[za_legendu; num2str(brojac) '. sekcija'];
end;
figure,plot(w,abs(H_c)),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{Monotype Corsiva}M}_{sos}({\it\omega})'),
legend(za_legendu);

Reenje d)
[H,w]=freqz(k*poly(z),poly(p));
H_c_uk=g_c*ones(size(H));
for brojac=1:br_sec_c
H_c_uk=H_c_uk.*freqz(basos_c(brojac,1:3),basos_c(brojac,4:6));
end;
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));
ylim([-5 100]),
ylabel('{\ita}_d({\it\omega}) [dB]');
subplot(2,1,2),plot(w/pi,-20*log10(abs(H_c_uk)));
ylim([-5 100]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}_c({\it\omega}) [dB]');

09-Dec-15 2:47 PM

Realizacija digitalnih filtara

15 of 15

file:///F:/glava10/glava10.html

Published with MATLAB 7.8

09-Dec-15 2:47 PM

Softverska implementacija u MATLAB-u

1 of 14

file:///F:/glava11/glava11.html

Softverska implementacija u MATLAB-u


Sadraj

Zadatak 1
Reenje a)
Reenje b)
Reenje c)
Zadatak 2
Reenje a)
Reenje b)
Zadatak 3
Reenje a)
Reenje b)
Zadatak 4
Reenje
Zadatak 5
Reenje a)
Reenje b)

Zadatak 1

a) Projektovati FIR filtar propusnik opsega duine N=21 sa graninim frekvencijama


p1=0.32 i p2=0.55. Filtar projektovati primenom Hamingovog prozora. Nacrtati
amplitudsku i faznu karakteristiku ovog filtra koristei funkciju freqz.
b) Napisati MATLAB program za implementaciju ovog filtra na osnovu kaskadne
realizacione strukture.

c) Proveriti realizacionu strukturu iz take b) koristei odziv sistema na jedinini impuls. Za


ulazni signal {x(n)} uzeti,

Izraunati amplitudski spektar signala {y(n)} koji se dobija na izlazu filtra iz take b) i
rezultat uporediti sa amplitudskom karakteristikom filtra izraunatom u taki a).
Reenje a)

clear all, close all;


N=20;
wp=[0.32 0.55]*pi;
h=fir1(N,wp/pi,hamming(N+1));
[H,w]=freqz(h,1);
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})'),
subplot(2,1,2),plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

2 of 14

file:///F:/glava11/glava11.html

Reenje b)
z=roots(h);
p=zeros(size(z));
figure,zplane(z,p);
tr_ind=1;
sec_ind=1;
while tr_ind<=length(z)
if tr_ind==length(z) || z(tr_ind)~=conj(z(tr_ind+1))
h_c(sec_ind,1:2)=poly(z(tr_ind));
tr_ind=tr_ind+1;
sec_ind=sec_ind+1;
else
h_c(sec_ind,1:3)=poly([z(tr_ind) z(tr_ind+1)]);
tr_ind=tr_ind+2;
sec_ind=sec_ind+1;
end;
end;
[br_sec_c,ni]=size(h_c);
disp('Keoficiejnti kaskadne realizacione strukture:');
for brojac=1:br_sec_c
disp([num2str(brojac) '. sekcija']);
disp(h_c(brojac,:));
end;
Keoficiejnti kaskadne realizacione strukture:
1. sekcija
1.0000
-2.2100
7.6744
2. sekcija
1.0000

-1.9781

1.0000

3. sekcija
1.0000

-1.8971

1.0000

4. sekcija
1.0000

-1.7807

1.0000

5. sekcija
1.0000

2.4373

1.6417

6. sekcija
1.0000

1.2831

1.0000

7. sekcija
1.0000

1.7044

1.0000

8. sekcija
1.0000

1.9756

1.0000

9. sekcija
1.0000

1.4846

0.6091

10. sekcija

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

3 of 14

1.0000

-0.2880

file:///F:/glava11/glava11.html

0.1303

Reenje c)
H_c_uk=ones(size(H));
x=zeros(256,1);
x(1)=1;
y=x;
for brojac=1:br_sec_c
H_c_uk=H_c_uk.*freqz(h_c(brojac,:),1);
y=filter(h_c(brojac,:),1,y);
end;
g_c=1/max(abs(H_c_uk));
y=g_c*y;
H_c_uk=g_c*H_c_uk;
figure,subplot(3,1,1),plot(w/pi,-20*log10(abs(H)));
xlim([0 1]),ylim([-5 100]),
ylabel('{\ita}_d({\it\omega}) [dB]');
subplot(3,1,2),plot(w/pi,-20*log10(abs(H_c_uk)));
xlim([0 1]),ylim([-5 100]),
ylabel('{\ita}_c({\it\omega}) [dB]');
Y=freqz(y,1);
subplot(3,1,3),plot(w/pi,-20*log10(abs(Y)));
xlim([0 1]),ylim([-5 100]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itY}({\it\omega}) [dB]');

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

4 of 14

file:///F:/glava11/glava11.html

Zadatak 2

a) Projektovati ebievljev IIR filtar propusnik opsega 6. reda sa graninim frekvencijama


p1=0.32 i p2=0.55, i varijacijom slabljenja u propusnom opsegu ap=0.5 dB. Nacrtati
amplitudsku i faznu karakteristiku ovog filtra.

b) Napisati MATLAB program za implementaciju ovog filtra u kaskadnoj strukturi koristei


prog11_5 za implementaciju sekcije drugog reda.
c) Proveriti realizacionu strukturu iz take b) na osnovu odziva sistema na jedinini impuls.
Koristiti postupak iz zadatka br.1, taka c).
Reenje a)

clear all, close all;


N=3; % red LP prototip filtra (red BP filta je dva puta veci)
ap=0.5;
wp=[0.32 0.55]*pi;
[z,p,k]=cheby1(N,ap,wp/pi); % ovaj oblik pogodniji za kasnije dobijanje koeficijenata kaskadne i paralelne strukture
b=k*poly(z);
a=poly(p);
[H,w]=freqz(b,a);
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})'),
subplot(2,1,2),plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

Reenje b)
figure,zplane(z,p);
[basos_c,g_c]=zp2sos(z,p,k);
[br_sec_c,ni]=size(basos_c);
disp('Keoficiejnti kaskadne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_c);
for brojac=1:br_sec_c
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_c(brojac,1:3));
disp(' -imenilac:');
disp(basos_c(brojac,4:6));
end;
H_c_uk=g_c*ones(size(H));
x=zeros(256,1);
x(1)=1;
y=g_c*x;
for brojac=1:br_sec_c
H_c_uk=H_c_uk.*freqz(basos_c(brojac,1:3),basos_c(brojac,4:6));
y=prog11_5(basos_c(brojac,:),y);
end;

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

5 of 14

file:///F:/glava11/glava11.html

figure,subplot(3,1,1),plot(w/pi,-20*log10(abs(H)));
xlim([0 1]),ylim([-5 100]),
ylabel('{\ita}_d({\it\omega}) [dB]');
subplot(3,1,2),plot(w/pi,-20*log10(abs(H_c_uk)));
xlim([0 1]),ylim([-5 100]),
ylabel('{\ita}_c({\it\omega}) [dB]');
Y=freqz(y,1);
subplot(3,1,3),plot(w/pi,-20*log10(abs(Y)));
xlim([0 1]),ylim([-5 100]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itY}({\it\omega}) [dB]');
Keoficiejnti kaskadne realizacione strukture:
konstanta pojacanja:
0.0223
1. sekcija
-brojilac:
1
0

-1

-imenilac:
1.0000
-0.3506
2. sekcija
-brojilac:
1
2
-imenilac:
1.0000
3. sekcija
-brojilac:
1
-2

0.6172

1
0.2996

0.8001

-imenilac:
1.0000
-0.9923

0.8272

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

6 of 14

file:///F:/glava11/glava11.html

Zadatak 3

a) Za IIR filtar projektovan u zadatku br.2 napisati MATLAB program za implementaciju u


paralelnoj strukturi koristei prog11_5 za implementaciju sekcije drugog reda.

b) Proveriti realizacionu strukturu iz take a) na osnovu odziva sistema na jedinini impuls.


Koristiti postupak iz zadatka br.1, taka c).
Reenje a)

clear all, close all;


N=3; % red LP prototip filtra (red BP filta je dva puta veci)
ap=0.5;
wp=[0.32 0.55]*pi;
[z,p,k]=cheby1(N,ap,wp/pi); % ovaj oblik pogodniji za kasnije dobijanje koeficijenata kaskadne i paralelne strukture
b=k*poly(z);
a=poly(p);
[H,w]=freqz(b,a);
figure,subplot(2,1,1),plot(w/pi,-20*log10(abs(H)));
ylabel('{\it\fontname{Monotype Corsiva}M}({\it\omega})'),
subplot(2,1,2),plot(w/pi,unwrap(angle(H))),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{symbol}j}({\it\omega}) [rad]');

Reenje b)

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

7 of 14

file:///F:/glava11/glava11.html

figure,zplane(z,p);
[rb,ra,g_p]=residuez(b,a);
br_sec_p=ceil(length(ra)/2);
tr_ind=1;
sec_ind=1;
while tr_ind<=length(ra)
if tr_ind==length(ra) || ra(tr_ind)~=conj(ra(tr_ind+1))
basos_p(sec_ind,1:6)=[rb(tr_ind),0,0,1 -ra(tr_ind),0];
tr_ind=tr_ind+1;
sec_ind=sec_ind+1;
else
[basos_p(sec_ind,1:3),basos_p(sec_ind,4:6)]=residuez([rb(tr_ind),rb(tr_ind+1)],[ra(tr_ind),ra(tr_ind+1)],0);
tr_ind=tr_ind+2;
sec_ind=sec_ind+1;

end;
end;
disp('Keoficiejnti paralelne realizacione strukture:');
disp('konstanta pojacanja:');
disp(g_p);
for brojac=1:br_sec_p
disp([num2str(brojac) '. sekcija']);
disp(' -brojilac:');
disp(basos_p(brojac,1:3));
disp(' -imenilac:');
disp(basos_p(brojac,4:6));

end;
H_p_uk=g_p*ones(size(H));
x=zeros(256,1);
x(1)=1;
y=g_p*x;
for brojac=1:br_sec_p
H_p_uk=H_p_uk+freqz(basos_p(brojac,1:3),basos_p(brojac,4:6));
y=y+prog11_5(basos_p(brojac,:),x);
end;
figure,subplot(3,1,1),plot(w/pi,-20*log10(abs(H)));
xlim([0 1]),ylim([-5 100]),
ylabel('{\ita}_d({\it\omega}) [dB]');
subplot(3,1,2),plot(w/pi,-20*log10(abs(H_p_uk)));
xlim([0 1]),ylim([-5 100]),
ylabel('{\ita}_p({\it\omega}) [dB]');
Y=freqz(y,1);
subplot(3,1,3),plot(w/pi,-20*log10(abs(Y)));
xlim([0 1]),ylim([-5 100]),
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\itY}({\it\omega}) [dB]');
Keoficiejnti paralelne realizacione strukture:
konstanta pojacanja:
-0.0546
1. sekcija
-brojilac:
-0.1961

0.0679

-imenilac:
1.0000
-0.9923

0.8272

2. sekcija
-brojilac:
-0.2285 + 0.0000i
-imenilac:
1.0000

0.0144 - 0.0000i

0.2996

0.8001

3. sekcija
-brojilac:
0.5015
-0.1087

-imenilac:
1.0000
-0.3506

0.6172

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

8 of 14

file:///F:/glava11/glava11.html

Zadatak 4

a) Formirati signal,

x(n)=cos(2nf1/fs)+1.5cos(2nf2/fs) +1.8cos(2nf3/fs)

gde je frekvencija odabiranja fs=8000 Hz, i f1=1530 Hz, f2=1800 Hz, f3=2050 Hz. Signalu je
dodat um varijanse 2.
b) Izraunati spektralnu gustinu snage ovog signala za sledee duine signala {x(n)}:
N=32, 64, 128, 256, 512, 1024, 2048, 4096.
Rezultate predstaviti grafiki.
Reenje

clear all, close all;


fs=8000;
f1=1530; f2=1800; f3=2050;
N=[32 64 128 256 512 1024 2048 4096];
for br=1:length(N)
n=(0:N(br)-1)';
x=cos(2*pi*n*f1/fs)+1.5*cos(2*pi*n*f2/fs)+1.8*cos(2*pi*n*f3/fs);%+sqrt(2)*randn(size(n));
X=fft(x);
Sx=X.*conj(X)/N(br)/fs;
f=fs*(0:N(br)/2-1)/N(br);
figure,subplot(2,1,1),plot(f,10*log10((2*Sx(1:N(br)/2))));

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

9 of 14

file:///F:/glava11/glava11.html

xlabel('{\itf} [Hz]'),ylabel('{\itS_x}'),title(['duzina niza {\itN}=' num2str(N(br))]);


Hs=spectrum.periodogram;
subplot(2,1,2),psd(Hs,x,'Fs',fs);
end;

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

10 of 14

file:///F:/glava11/glava11.html

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

11 of 14

file:///F:/glava11/glava11.html

Zadatak 5

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

12 of 14

file:///F:/glava11/glava11.html

Analizirati efekte konane duine rei na karakteristiku slabljenja IIR filtra projektovanog u
zadatku br.2, taka a).

a) Analiza kaskadne realizacione strukture. Konstante filtra izraunate u zadatku br.2, taka
b), predstaviti sa duinom rei od 10 bita. Primeniti zaokruavanje. Izraunati karakteristiku
slabljenja filtra i uporediti sa karakteristikom koja se dobija sa tanim vrednostima konstanti.
b) Analiza paralelne realizacione strukture. Postupak iz prethodne take ponoviti i za
paralelnu realizacionu strukturu.
c) Postupak iz taaka a) i b) ponoviti za duine rei od 8 i 12 bita.
Reenje a)

clear all, close all;


duz_kod_rec=[8 10 12];
N=3; % red LP prototip filtra (red BP filta je dva puta veci)
ap=0.5;
wp=[0.32 0.55]*pi;
[z,p,k]=cheby1(N,ap,wp/pi); % ovaj oblik pogodniji za kasnije dobijanje koeficijenata kaskadne i paralelne strukture
b=k*poly(z);
a=poly(p);
[H,w]=freqz(b,a);
[basos_c_full,g_c_full]=zp2sos(z,p,k);
[br_sec_c,ni]=size(basos_c_full);
for br=1:length(duz_kod_rec)
basos_c=round(basos_c_full*2^(duz_kod_rec(br)-1))/2^(duz_kod_rec(br)-1);
g_c=round(g_c_full*2^(duz_kod_rec(br)-1))/2^(duz_kod_rec(br)-1);
H_c_uk(:,br)=g_c*ones(size(H));
for br_sec=1:br_sec_c
H_c_uk(:,br)=H_c_uk(:,br).*freqz(basos_c(br_sec,1:3),basos_c(br_sec,4:6));
end;
end;
figure,plot(w/pi,-20*log10(abs(H)),w/pi,-20*log10(abs(H_c_uk)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}_c({\it\omega}) [dB]');
legend('MATLAB','8 bita','10 bita','12 bita');
figure,plot(w/pi,(abs(H)),w/pi,(abs(H_c_uk)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{Monotype Corsiva}M}_c({\it\omega})');
legend('MATLAB','8 bita','10 bita','12 bita');

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

13 of 14

file:///F:/glava11/glava11.html

Reenje b)
[rb,ra,g_p_full]=residuez(b,a);
br_sec_p=ceil(length(ra)/2);
tr_ind=1;
sec_ind=1;
while tr_ind<=length(ra)
if tr_ind==length(ra) || ra(tr_ind)~=conj(ra(tr_ind+1))
basos_p_full(sec_ind,1:6)=[rb(tr_ind),0,0,1 -ra(tr_ind),0];
tr_ind=tr_ind+1;
sec_ind=sec_ind+1;
else
[basos_p_full(sec_ind,1:3),basos_p_full(sec_ind,4:6)]=residuez([rb(tr_ind),rb(tr_ind+1)],[ra(tr_ind),ra(tr_ind+1)],0);
tr_ind=tr_ind+2;
sec_ind=sec_ind+1;
end;
end;
for br=1:length(duz_kod_rec)
basos_p=round(basos_p_full*2^(duz_kod_rec(br)-1))/2^(duz_kod_rec(br)-1);
g_p=round(g_p_full*2^(duz_kod_rec(br)-1))/2^(duz_kod_rec(br)-1);
H_p_uk(:,br)=g_p*ones(size(H));
for br_sec=1:br_sec_p
H_p_uk(:,br)=H_p_uk(:,br)+freqz(basos_p(br_sec,1:3),basos_p(br_sec,4:6));
end;
end;
figure,plot(w/pi,-20*log10(abs(H)),w/pi,-20*log10(abs(H_p_uk)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\ita}_p({\it\omega}) [dB]');
legend('MATLAB','8 bita','10 bita','12 bita');
figure,plot(w/pi,(abs(H)),w/pi,(abs(H_p_uk)));
xlabel('{\it\omega}/{\it\pi}'),ylabel('{\it\fontname{Monotype Corsiva}M}_p({\it\omega})');
legend('MATLAB','8 bita','10 bita','12 bita');

09-Dec-15 2:48 PM

Softverska implementacija u MATLAB-u

14 of 14

file:///F:/glava11/glava11.html

Published with MATLAB 7.8

09-Dec-15 2:48 PM

You might also like