Professional Documents
Culture Documents
NI
LABORATORIJSKE VEBE
Digitalna obrada signala
Radenkovi Vladimir
SEk 84/06
c)
>> clf
>> y=conv(x,h);
>> ny=0:2*N-2;
>> stem(ny,y,'k'), xlabel('n'), title('Signal y(n)')
Zadatak br.2
Formirati diskretne nizove i predstaviti ih grafiki:
x1(n)=sin(2n/16),
x2(n)=sin(21.3n/16)
x3(n)=sin(217n/16),
x4(n)=sin(2n/32),
x5(n)=sin(2n/64),
n=0,1,2...,63
n=0,1,2...,63
n=0,1,2...,63
n=0,1,2...,63
n=0,1,2...,63
Da li su svi dati nizovi periodini? Da li se odbirci nizova x1(n) i x3(n) razlikuju meu sobom?
Formirati i grafiki predstaviti na istom dijagramu eksponencijalne nizove:
h1(n)=0.9n,
h2(n)=0.8n,
h3(n)=0.7n,
n=0,1,2...,63
n=0,1,2...,63
n=0,1,2...,63
n=0,1,2...,63
n=0,1,2...,63
n=0,1,2...,63
Odrediti i grafiki predstaviti niz {y(n)} koji je proizvod nizova {x1(n)} i h1(n)}.
Reenje:
a)
>> clear all
>> N=64;
>> n=0:N-1;
>> 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);
>> subplot(511), stem(n,x1,'k'), xlabel('n'), title('Signal x1')
>> subplot(512), stem(n,x2,'k'), xlabel('n'), title('Signal x2')
>> subplot(513), stem(n,x3,'k'), xlabel('n'), title('Signal x3')
>> subplot(514), stem(n,x4,'k'), xlabel('n'), title('Signal x4')
>> subplot(515), stem(n,x5,'k'), xlabel('n'), title('Signal x5')
c)
>> clf
>> h1=(-0.9).^n;
>> h2=(-0.8).^n;
>> h3=(-0.7).^n;
>> subplot(311),stem(n,h1,'k'), xlabel('n'), title('Signal h1')
>> subplot(312),stem(n,h2,'k'), xlabel('n'), title('Signal h2')
>> subplot(313),stem(n,h3,'k'), xlabel('n'), title('Signal h3')
d)
>> clf
>> y=x1.*h1;
>> stem(n,y,'k'), xlabel('n'), title('Signal y(n)')
Zadatak br.3
Formirati i grafiki predstaviti diskretne kosinusne nizove:
x(n)=cos(n),
n=0, 1, ..., 31
za za razliite vrednosti . Frekvencija uzima sledee vrednosti:
k=0, 1, ..., 17.
k=2k/16,
Da li se brzina promene diskretnog niza uvek poveava sa porastom frekvencije ?
Reenje:
>> clear all
>> N=32;
>> n=0:N-1;
>> x0=cos(2*pi*0/16*n);
>> x1=cos(2*pi*1/16*n);
>> x2=cos(2*pi*2/16*n);
>> x3=cos(2*pi*3/16*n);
>> x4=cos(2*pi*4/16*n);
>> x5=cos(2*pi*5/16*n);
>> x6=cos(2*pi*6/16*n);
>> x7=cos(2*pi*7/16*n);
>> x8=cos(2*pi*8/16*n);
>> x9=cos(2*pi*9/16*n);
>> x10=cos(2*pi*10/16*n);
>> x11=cos(2*pi*11/16*n);
>> x12=cos(2*pi*12/16*n);
>> x13=cos(2*pi*13/16*n);
>> x14=cos(2*pi*14/16*n);
>> x15=cos(2*pi*15/16*n);
>> x16=cos(2*pi*16/16*n);
>> x17=cos(2*pi*17/16*n);
>> subplot(3,2,1), stem(n,x0,'k'), xlabel('n'), title('Signal x0')
>> subplot(3,2,2), stem(n,x1,'k'), xlabel('n'), title('Signal x1')
>> subplot(3,2,3), stem(n,x2,'k'), xlabel('n'), title('Signal x2')
>> subplot(3,2,4), stem(n,x3,'k'), xlabel('n'), title('Signal x3')
>> subplot(3,2,5), stem(n,x4,'k'), xlabel('n'), title('Signal x4')
>> subplot(3,2,6), stem(n,x5,'k'), xlabel('n'), title('Signal x5')
>> clf
>> subplot(3,2,1), stem(n,x6,'k'), xlabel('n'), title('Signal x6')
>> subplot(3,2,2), stem(n,x7,'k'), xlabel('n'), title('Signal x7')
>> subplot(3,2,3), stem(n,x8,'k'), xlabel('n'), title('Signal x8')
>> subplot(3,2,4), stem(n,x9,'k'), xlabel('n'), title('Signal x9')
>> subplot(3,2,5), stem(n,x10,'k'), xlabel('n'), title('Signal x10')
>> subplot(3,2,6), stem(n,x11,'k'), xlabel('n'), title('Signal x11')
>> clf
>> subplot(3,2,1), stem(n,x12,'k'), xlabel('n'), title('Signal x12')
>> subplot(3,2,2), stem(n,x13,'k'), xlabel('n'), title('Signal x13')
>> subplot(3,2,3), stem(n,x14,'k'), xlabel('n'), title('Signal x14')
>> subplot(3,2,4), stem(n,x15,'k'), xlabel('n'), title('Signal x15')
>> subplot(3,2,5), stem(n,x16,'k'), xlabel('n'), title('Signal x16')
>> subplot(3,2,6), stem(n,x17,'k'), xlabel('n'), title('Signal x17')
c)
x3(n)={0.5, 0n<15; 0, za druge vrednosti n}
h3(n)={sin(0.2n), 0n<10; 0, za druge vrednosti n}
Reenje:
a)
>> clear all
>> nx1=0:29;
>> nh1=0:9;
>> Nx1=length(nx1);
>> Nh1=length(nh1);
>> x1=[1 ones(1,29)];
>> h1=[1 ones(1,9)];
>> y1=conv(x1,h1);
>> Ny1=length(y1);
>> ny1=0:Ny1-1;
>> subplot(311), stem(nx1,x1,'k'), xlabel('n'), title('Signal x1')
>> subplot(312), stem(nh1,h1,'k'), xlabel('n'), title('Signal h1')
>> subplot(313), stem(ny1,y1,'k'), xlabel('n'), title('Signal y1')
>> Ny1
Ny1 =
39
b)
>> clf
>> nx2=0:29;
>> nh2=0:19;
>> Nx2=length(nx2);
>> Nh2=length(nh2);
>> x2=0.9.^nx2;
>> h2=[1 ones(1,19)];
>> y2=conv(x2,h2);
>> Ny2=length(y2);
>> ny2=0:Ny2-1;
>> subplot(311), stem(nx2,x2,'k'), xlabel('n'), title('Signal x2')
>> subplot(312), stem(nh2,h2,'k'), xlabel('n'), title('Signal h2')
>> subplot(313), stem(ny2,y2,'k'), xlabel('n'), title('Signal y2')
>> Ny2
Ny2 =
49
c)
>> clf
>> nx3=0:14;
>> nh3=0:9;
>> Nx3=length(nx3);
>> Nh3=length(nh3);
>> x3=[0.5 ones(1,14)./2];
>> h3=sin(0.2*pi*nh3);
>> y3=conv(x3,h3);
>> Ny3=length(y3);
>> ny3=0:Ny3-1;
>> subplot(311), stem(nx3,x3,'k'), xlabel('n'), title('Signal x3')
>> subplot(312), stem(nh3,h3,'k'), xlabel('n'), title('Signal h3')
Zadatal br.5
Ulazno-izlazna relacija kauzalnog sistema data je diferencijalnom jednainom prvog reda:
y(n)=x(n)+0.8y(n-1) .
Odrediti i grafiki prikazati prvih 40 odbiraka izlaznog signala ako je sistem pobuen nizom {x3(n)} iz zadatka br.4.
Reenje:
y(n)=x(n)+0.8y(n-1)
y(n)-0.8y(n-1)=x(n) => a=[1 -0.8]; b=1
>> clear all
>> n=0:39;
>> x=[0.5 ones(1,14)./2 zeros(1,25)];
>> a=[1 -0.8];
>> b=1;
>> y=filter(b,a,x);
>> stem(n,y,'k'), xlabel('n'), title('Signal y(n)')
>> clf
>> faza1=angle(H1);
>> faza2=angle(H2);
>> subplot(211),plot(w,faza1,'k'),xlabel('omega'),title('Fazni spektar, a=0.9')
>> subplot(212),plot(w,faza2,'k'),xlabel('omega'),title('Fazni spektar, a=-0.9')
>> clf
>> subplot(211), semilogy(n,amp2,'k'), xlabel('omega'), title('Amplitudski spektar x2')
>> subplot(212), plot(n,faza2,'k'), xlabel('omega'), title('Fazni spektar x2')
>> clf
>> [H,w]=freqz(Q,P,256);
>> subplot(211), plot(w,abs(H),'k'), xlabel('frekvencija [rad]'), title('Amplitudska karakteristika')
>> subplot(212), plot(w,unwrap(angle(H)),'k'), xlabel('frekvencija [rad]'), title('Fazna
karakteristika')
>> clf
>> [gd,w]=grpdelay(Q,P,256);
>> subplot(211),plot(w,gd,'k'), xlabel('frekvencija [rad]'),title('Grupno kasnjenje'),axis([0 pi 0 18])
>> [h,n]=impz(Q,P,50);
>> subplot(212),stem(n,h,'k'),xlabel('n'),title('Impulsni odziv')
Zadatak br.2
Data je funkcija prenosa FIR sistema
H(Z)=0.0186 -0.0294z-1 -000731z-2 +0.0396z-3 +0.3045z-4 +0.4528z-5 +0.3045z-6 +0.0396z-7 - 0.0731z-8 -0.0294z-9
+0.0186z-10
Odrediti poloak 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
>> N=11;
>> A=[0.0186 -0.0294 -0.0731 0.0396 0.3045 0.4528 0.3045 0.0396 -0.0731 -0.0294 0.0186];
>> z=roots(A);
>> p=zeros(size(z));
>> zplane(z,p)
>> clf
>> [H,w]=freqz(A,1,256);
>> subplot(211),plot(w,abs(H),'k'),xlabel('frekvencija [rad]'),title('Amplitudska karakteristika'),
axis([0 pi 0 1.1])
>> subplot(212),plot(w,unwrap(angle(H)),'k'),xlabel('frekvencija [rad]'),title('Fazna karakteristika'),
axis([0 pi -10 0])
>> clf
>> [gd,w]=grpdelay(A,1,256);
>> subplot(211),plot(w,gd,'k'),xlabel('frekvencija [rad]'),title('Grupno kasnjenje'),axis([0 pi 0 10])
>> n=0:N-1;
>> subplot(212),stem(n,A,'k'),xlabel('n'),ylabel('Impulsni odziv')
Zadatak br.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:
a)
>> clear all
>> Q=[0.2031 0.2588 0.2588 0.2031];
>> P=[1.0000 -0.6804 0.7865 -0.1821];
>> zplane(Q,P)
>> clf
>> [H,w]=freqz(Q,P,256);
>> subplot(211),plot(w,abs(H),'k'),xlabel('frekvencija [rad]'),title('Amplitudska karakteristika')
>> subplot(212),plot(w,unwrap(angle(H)),'k'),xlabel('frekvencija [rad]'),title('Fazna karakteristika')
>> clf
>> [gd,w]=grpdelay(Q,P,256);
>> subplot(211),plot(w,gd,'k'),xlabel('frekvencija [rad]'),title('Grupno kasnjenje')
>> [h,n]=impz(Q,P,50);
>> subplot(212),stem(n,h,'k'),xlabel('n'),title('Impulsni odziv')
b)
Q1(z)=Q(z2)=0.2031+0.2588z-2+0.2588z-4+0.2031z-6
P1(z)=P(z2)=1.0000-0.6804z-2+0.7865z-4-0.1821z-6
>> clf
>> Q1=[0.2031 0 0.2588 0 0.2588 0 0.2031];
>> P1=[1.0000 0 -0.6804 0 0.7865 0 -0.1821];
>> zplane(Q1,P1)
>> clf
>> [H1,w1]=freqz(Q1,P1,256);
>> subplot(211),plot(w1,abs(H1),'k'),xlabel('frekvencija [rad]'),title('Amplitudska karakteristika')
>> subplot(212),plot(w1,unwrap(angle(H1)),'k'),xlabel('frekvencija [rad]'),title('Fazna
karakteristika')
>> clf
>> [gd1,w1]=grpdelay(Q1,P1,256);
>> subplot(211),plot(w1,gd1,'k'),xlabel('frekvencija [rad]'),title('Grupno kasnjenje')
>> [h1,n1]=impz(Q1,P1,50);
>> subplot(212),stem(n1,h1,'k'),xlabel('n'),title('Impulsni odziv')
c)
>> clf
>> Q2=conv(Q,Q);
>> P2=conv(P,P);
>> zplane(Q2,P2)
>> clf
>> [H2,w2]=freqz(Q2,P2,256);
>> subplot(211),plot(w2,abs(H2),'k'),xlabel('frekvencija [rad]'),title('Amplitudska karakteristika')
>> subplot(212),plot(w2,unwrap(angle(H2)),'k'),xlabel('frekvencija [rad]'),title('Fazna
karakteristika')
>> clf
>> [gd2,w2]=grpdelay(Q2,P2,256);
>> subplot(211),plot(w2,gd2,'k'),xlabel('frekvencija [rad]'),title('Grupno kasnjenje')
>> [h2,n2]=impz(Q2,P2,50);
>> subplot(212),stem(n2,h2,'k'),xlabel('n'),title('Impulsni odziv')