Sunteți pe pagina 1din 63

CUPRINS

CUPRINS.............................................................................................................3
LUCRAREA DE LABORATOR NR. 1
SECVENE NUMERICE 1D I 2D..................................................................7
OBIECTIVELE LUCRRII.....................................................................................7
DESFURAREA LUCRRII.................................................................................7
Eantionarea semnalelor continue................................................................7
Secvene elementare......................................................................................8
Secvene complexe......................................................................................10
Secvene modulate.......................................................................................10
Reprezentarea secvenelor numerice 1D i 2D folosind seria Fourier
n timp discret (SFTD)................................................................................10
Teorema eantionrii...................................................................................12
Semnalul chirp............................................................................................12
Transformata Fourier discret n timp discret (TFTD)..............................13
Transformata Hilbert..................................................................................13
Secvene 2D.................................................................................................14
Analiza Fourier a secvenelor 2D...............................................................14
Studiul secvenelor numerice utiliznd mediul DIDACTICIEL..................16
Tem............................................................................................................16
LUCRAREA DE LABORATOR NR. 2
SISTEME NUMERICE 1D I 2D...................................................................17
OBIECTIVELE LUCRRII...................................................................................17
DESFURAREA LUCRRII...............................................................................17
Sisteme numerice liniare 1D.......................................................................17
Funcia de transfer, polii i zerourile unui sistem numeric.........................18
Funcia pondere a unui sistem numeric......................................................18
Stabilitatea sistemelor numerice.................................................................19
Conectarea n cascad a sistemelor numerice............................................19
Funcia indicial a unui sistem numeric.....................................................20
Efectul zerourilor i polilor asupra funciei de transfer a unui sistem
numeric.......................................................................................................20
Sisteme numerice liniare 2D.......................................................................21
Sisteme numerice neliniare 2D...................................................................21
Studiul sistemelor numerice utiliznd mediul DIDACTICIEL....................22
Tem............................................................................................................22
3

LUCRAREA DE LABORATOR NR. 3


CONVOLUII I CORELAII......................................................................23
OBIECTIVELE LUCRRII...................................................................................23
DESFURAREA LUCRRII...............................................................................23
Interpretarea polinomial a convoluiei liniare i ciclice...........................23
Teorema lui Plancherel...............................................................................25
Calculul convoluiilor cu ajutorul transformatei Fourier..........................26
Mecanismul de calcul al convoluiei...........................................................26
Convoluia, corelaia i filtrajul adaptat....................................................27
Studiul operatorilor de convoluie i corelaie utiliznd mediul
DIDACTICIEL............................................................................................27
Tem............................................................................................................27
LUCRAREA DE LABORATOR NR. 4
STUDIUL TRANSFORMATELOR APLICATE SECVENELOR
NUMERICE.......................................................................................................28
OBIECTIVELE LUCRRII...................................................................................28
DESFURAREA LUCRRII...............................................................................28
Transformata Fourier discret a unei secvene numerice 1D....................28
Densitatea spectral de putere i transformata Fourier............................29
Proprieti ale transformatei Fourier.........................................................29
Influena lungimii semnalului asupra spectrului estimat cu TFD..............30
Influena tipului ferestrei asupra spectrului estimat cu TFD......................31
Transformata cosinus discret 1D..............................................................33
Compresia de imagini cu transformata cosinus discret 2D......................33
Compresia de imagini utiliznd TKL..........................................................34
Studiul transformatei Fourier discrete utiliznd mediul DIDACTICIEL. .35
Tem............................................................................................................35
LUCRAREA DE LABORATOR NR. 5
FILTRE NUMERICE FIR...............................................................................36
OBIECTIVELE LUCRRII...................................................................................36
DESFURAREA LUCRRII...............................................................................36
Comenzi MATLAB pentru proiectarea FN-FIR.........................................36
Proiectarea FN-FIR prin metoda ferestrelor..............................................36
Proiectarea FN-FIR prin metoda eantionrii n frecven......................38
Proiectarea FN-FIR tip cosinus ridicat......................................................39
Proiectarea FN-FIR prin optimizare folosind algoritmul Remez ..............40
Proiectarea FN-FIR prin optimizare folosind minimizarea erorilor
ptratice......................................................................................................40
Proiectarea FN-FIR cu faz liniar prin interpolare.................................40
Studiul filtrelor numerice de tip FIR utiliznd mediul DIDACTICIEL.......41
Tem............................................................................................................41
4

LUCRAREA DE LABORATOR NR. 6


FILTRE NUMERICE IIR................................................................................42
OBIECTIVELE LUCRRII...................................................................................42
DESFURAREA LUCRRII...............................................................................42
Proiectarea FILTRELOR NUMERICE tip RII (IIR)...................................42
Proiectarea FN prin aproximare n planul z...............................................43
Proiectarea FN-IIR prin metoda invarianei la impuls..............................44
Proiectarea FN IIR prin transformarea biliniar...................................45
Proiectarea FN- IIR prin optimizarea n planul z.......................................46
Studiul filtrelor numerice IIR utiliznd mediul DIDACTICIEL..................47
Tem............................................................................................................47
LUCRAREA DE LABORATOR NR. 7
ESTIMARE SPECTRAL I ANALIZ TIMP-FRECVEN.................48
OBIECTIVELE LUCRRII...................................................................................48
DESFURAREA LUCRRII...............................................................................48
Estimatorul spectral simplu........................................................................48
Estimatorul spectral mediat........................................................................48
Estimatorul spectral modificat....................................................................49
Rezoluia dinamic......................................................................................50
Proces aleator AR.......................................................................................50
Analiza spectral de nalt rezoluie parametric......................................51
Spectrograma unui semnal chirp................................................................52
Compromisul rezoluie spectral-rezoluie temoral..................................53
Scalograma.................................................................................................53
Distribuia Wigner-Ville..............................................................................54
Analiza multirezoluie.................................................................................55
Studiul operatorilor de estimare spectral i analiz timp-frecven
utiliznd mediul DIDACTICIEL.................................................................56
Tem............................................................................................................56
LUCRAREA DE LABORATOR NR. 8
DETECIA SECVENELOR NUMERICE..................................................57
OBIECTIVELE LUCRRII...................................................................................57
DESFURAREA LUCRRII...............................................................................57
Caracteristicile filtrului adaptat.................................................................57
Detecia semnalelor....................................................................................58
Receptor cu filtru adaptat...........................................................................59
Receptor cu filtru trece jos..........................................................................60

LUCRAREA DE LABORATOR NR. 9


PRELUCRAREA MULTIRAT A SECVENELOR SAU SCHIMBAREA
RATEI DE EANTIONARE............................................................................61
OBIECTIVELE LUCRRII...................................................................................61
DESFURAREA LUCRRII...............................................................................61
Comenzi MATLAB pentru prelucrarea multirat.......................................61
Decimarea si interpolarea secventelor.......................................................61
Interpolatorul de ordinul zero.....................................................................62
Transmultiplexorul numeric........................................................................62
Proiectarea filtrelor de band ngust........................................................64

LUCRAREA DE LABORATOR NR. 1


SECVENE NUMERICE 1D I 2D

Obiectivele lucrrii
1) Asimilarea funciilor MATLAB specifice lucrului cu secvene discrete
1D i 2D;
2) Deprinderea tehnicilor de analiz a secvenelor discrete n domeniile
temporal i spectral;
3) Studiul interactiv al proprietilor secvenelor discrete i al operatorilor
aplicai acestora utiliznd mediul DIDACTICIEL.

Desfurarea lucrrii
Eantionarea semnalelor continue
S se reprezinte formele de und pentru un semnal sinusoidal continuu
x t i varianta sa eantionat (n timp discret) x n , tiind c:
x(t ) A sin 0t 0

Semnalul eantionat se scrie:


x t t nT x nT A sin 0 nT 0 A sin 2F0 nT 0

F
F

A sin 2 0 n 0 A sin 2 0 n 0
1/ T
Fe

Se obine deci:
x n A sin 0 n 0 A sin 2f 0 n 0
unde: 0 2f 0 2F0 / Fe cu Fe 1/ T .
Deoarece t nT i 0 0T , rezult:
0 0

t rad s

rad/eantion
n
s eantion

O imagine grafic sugestiv asupra corespondenelor n frecven dintre


domeniile timp continuu i timp discret este redat n figura 1.1.

Figura 1.1

Codul MATLAB urmtor reprezint formele de und pentru un semnal


sinusoidal continu i discret, pentru urmtorii parametri:
F0 1200 Hz, Fe 16 KHz, 40 rad,
/
10 A 0, ts0 5, tms
f
Fe=16e3; t=0:1/Fe:5e-3; n=0:length(t)-1;
subplot(211); plot(t,10*sin(2*pi*1200*t+pi/4));
xlabel('timp continuu'); ylabel('amplitudine')
title('Semnal sinusoidal continuu')
subplot(212); stem(10*sin(2*pi*(1200/16000)*n+pi/4))
xlabel('timp discret'); ylabel('amplitudine')
title(' Semnal sinusoidal discret')

Secvene elementare
S se genereze i s se reprezinte grafic secvenele numerice 1D
elementare urmtoare:
a) impuls Dirac n 10 ,
b) semnal treapt unitate u n ,
c) semnal poart r n 5 ,
d) semnal sinusoidal cu frecvena 1 KHz eantionat la 10 KHz
sin 2 (1000 /10000) n / 4 ,
e) semnal sinus cardinal sinc n ,
f) semnal exponenial e n ,
g) semnal putere 2 n / 2 ,
f) semnal logaritm natural ln n ,
h) semnal aleator cu repartiie normal cu media 1.5 i dispersia
0.25.

f=figure('Units','Norm','Position',[.01 .01 .98 .95]);


set(f,'MenuBar','none'); a1=axes('Position',[.05 .7 .25 .25]);
stem([zeros(1,14) 1 zeros(1,5)]);
set(a1,'YLim',[0 1.5],'XTick',[0:5:20],...
'XTickLabel',[-10:5:10],'FontSize',8);
legend('Impuls Dirac',2)
a2=axes('Position',[.35 .7 .25 .25]);
stem([zeros(1,10) ones(1,10)]);
set(a2,'YLim',[0 1.5],'XTick',[0:5:20],...
'XTickLabel',[-10:5:10],'FontSize',8);
legend('Semnal treapta unitate',2)
a3=axes('Position',[.65 .7 .25 .25]);
stem([zeros(1,12) ones(1,5) zeros(1,3)]);
set(a3,'YLim',[0 1.5],'XTick',[0:5:20],...
'XTickLabel',[-10:5:10],'FontSize',8);
legend('Semnal poarta',2)
a4=axes('Position',[.05 .4 .25 .25]);
stem(sin(2*pi*.1*[0:20]+pi/4));
set(a4,'XLim',[0 20],'YLim',[-1 2],'XTick',[0:10:20],...
'XTickLabel',[0:10:20]*1e-4,'FontSize',8);
legend('Semnal sinusoidal',2)
a5=axes('Position',[.35 .4 .25 .25]);
stem(sinc(.25*[-9:10]));
set(a5,'XLim',[0 20],'YLim',[-.25 1.5],'XTick',[0:5:20],...
'XTickLabel',[-10:5:10],'FontSize',8);
legend('Semnal sinc',2)
a6=axes('Position',[.65 .4 .25 .25]);
stem(exp(-(0:20)));
set(a6,'YLim',[0 1.2],'XLim',[1 21],'XTick',[1:5:21],...
'XTickLabel',[0:5:20],'FontSize',8);
legend('Semnal exponential e^-^n',2)
a7=axes('Position',[.05 .1 .25 .25]);
stem(pow2(-0.5*(0:20)))
set(a7,'YLim',[0 1.2],'XLim',[1 21],'XTick',[1:5:21],...
'XTickLabel',[0:5:20],'FontSize',8);
legend('Semnal putere 2^-^0^.^5^n',2)
a8=axes('Position',[.35 .1 .25 .25]);
stem(log([.1:.1:2]))
set(a8,'YLim',[-3 3],'XLim',[0 20],'XTick',[0:5:20],...
'XTickLabel',[0:.5:2],'FontSize',8);
legend('Semnal logaritm natural',2)
a9=axes('Position',[.65 .1 .25 .25]);
stem(1.5+.5*randn(1,20))
set(a9,'YLim',[0 4],'XLim',[0 20],'XTick',[0:5:20],...
'XTickLabel',[-10:5:10],'FontSize',8);
legend('Semnal aleator normal',2)

n cazul ultimului semnal, s se verifice valorile mediei i dispersiei. Ce


valoare are puterea semnalului ?
9

Secvene complexe
S se genereze semnalul:
x(n) K exp[c n] ,
unde: K=2, c 1/12 j / 6 , n N i 0 n 40 .
c = -(1/12)+(pi/6)*i;
K = 2; n = 0:40;
x = K*exp(c*n);
subplot(2,1,1);
stem(n,real(x));
xlabel(' Index temporal n');
ylabel('Amplitudine');
title('Parte reala');
subplot(2,1,2);
stem(n,imag(x));
xlabel(' Index temporal n');
ylabel('Amplitudine');
title('Parte imaginara');

Care este semnificaia prii reale i a prii imaginare a lui c ?

Secvene modulate
S se genereze semnalul modulat n amplitudine:
y (n) (1 m sin(2fb n)) sin(2f h n)
unde: m= 0.4, fb 0.01, f h 0.1 , n N i 0 n 100 .
n = 0:100 ; m = 0.4 ; fh = 0.1 ; fb = 0.01 ;
xh = sin(2*pi*fh*n) ; xb = sin(2*pi*fb*n) ;
y = (1+m*xb).*xh ; stem(n,y) ; grid ;
xlabel(' Index temporal n') ; ylabel('Amplitudine');

Reprezentarea secvenelor numerice 1D i 2D folosind seria


Fourier n timp discret (SFTD)

O secven 1D periodic x n poate fi reprezentat reprezentat prin seria


Fourier n timp discret 1D ( SFTD1D ):
x n x n N

N 1

ck e j2 k N n

k 0

unde:
1
ck
N
10

N 1

x n e j2 k N n , k 0, N 1

n0

n mod similar, o secven 2D periodic x n1 , n2 poate fi reprezentat


prin seria Fourier n timp discret 2D ( SFTD 2D ):
x n1 , n2 x n1 N1 , n2
x n1 , n2 N 2

N1 1 N 2 1

ck , k

k1 0 k2 0

k
k
exp j2 1 n1 j2 2 n2
N1
N2

unde:
ck1 , k2

N1 N 2

N1 1 N 2 1

k 0, N i 1

k
k
x n1 , n2 exp j2 1 n1 j2 2 n2 , i
N1
N2

i 1, 2
n2 0

n1 0

a) S se realizeze descompunerea n SFTD1D a unei serii de impulsuri


periodice cu factorul de umplere 0.5. Motivul de baz va fi definit folosind 64 de
eantioane. S se verifice apoi proprietile generale ale coeficienilor
descompunerii n SFTD1D a unei secvene periodice, cu valori reale, pentru
care:
N 1
N 1
1
1
c(1)
x n 1 , c( N 2)
x n 1 ( 1) n , cN k ck
N n0
N n0

b) S se realizeze descompunerea n SFTD 2D a unei secvene 2D


periodice al crei motiv de baz este definit de o secven rectangular unitar
de 88, avnd un suport 2D de 1616.
a)

b)

x=[ones(1,32),zeros(1,32)];N=64;
for k=0:N-1
c(k+1)=0;
for n=0:N-1
c(k+1)=c(k+1)+x(n+1)*exp(-j*pi*2*k/N*n);
end
c(k+1)=c(k+1)/N
end
stem(abs(c(1:N/2)))
x=zeros(16);x(1:8,1:8)=ones(8);c=zeros(16);N=16;
for k1=0:N-1
for k2=0:N-1
for n1=0:N-1
for n2=0:N-1
c(k1+1,k2+1)=c(k1+1,k2+1)+x(n1+1,n2+1)*
exp(-j*2*pi*k1/N*n1-j*2*pi*k2/N*n2);
end
end
end
end
c=abs(c)

11

Teorema eantionrii
1. S se genereze un semnal de 0.5 s compus din suma a dou sinusoide
de frecvene 100 Hz i 156 Hz cu amplitudinea de 1V. Se consider o frecven
de eantionare de 256 Hz. Reprezentai semnalul sum. Comentai rezultatul.
2. S se genereze, s se reprezinte i s se compare dou sinusoide de
frecvene 100 Hz i 356 Hz i amplitudinea de 1V. Se consider o frecven de
eantionare de 256 Hz.
1.

2.

t=(1:128); f1=100; f2=156;fe=256;


y=sin(2*pi*f1/fe*t)+sin(2*pi*f2/fe*t);
plot(t/fe,y); xlabel('timp (s)') ; ylabel('amplitudine (V)')
t=(1:100); f1=100; f2=356; fe=256;
y1=sin(2*pi*f1/fe*t); y2=sin(2*pi*f2/fe*t);
subplot(211); plot(t/fe,y1); ylabel('amplitudine (V)');
title('sinusoida de frecventa 100 Hz')
subplot(212); plot(t/fe,y2);
xlabel('timp (s)'); ylabel('amplitudine (V)');
title('sinusoida de frecventa 356 Hz')

Semnalul chirp

Semnalul chirp , de durat T, are expresia: x t A0 cos t , unde faza

instantanee este dat de: t 0t t 2 . Rezult c frecvena instantanee a


semnalului chirp, t , variaz liniar pe durata T, conform relaiei:

t d t /dt 0 2 t , sau: / 2T f 0 / 2T .

Secvena MATLAB urmtoare analizeaz n domeniile temporal i


frecvenial un semnal chirp, a crui frecven instantanee variaz ntre 0 i
5 MHz, pe o durat T 10 s . Frecvena de eantionare utilizat este
Fe 50 MHz .
f0=0;ff=5e6; T=1e-5; beta=(ff-f0)*pi/T; Fe=5e7;t=0:1/Fe:T;
x=cos(2*pi*f0*t+beta*t.^2);
subplot(211),plot(t,x),
xlabel('timp [s]'); ylabel('amplitudine [V]');
title('semnal temporal')
X=abs(fft(x,1024));
subplot(212), plot([0:99]/Fe,X(1:100))
xlabel('frecventa [Hz]'); ylabel('amplitudine [V]');
title('spectrul semnalului')

12

Transformata Fourier discret n timp discret (TFTD)


S se elaboreze o funcie MATLAB pentru calculul TFTD a unei secvene
finite, de lungime N , pentru N frecvene echidistante pe cercul unitate. S se
utilizeze funcia creat pentru calculul TFTD a secvenei x n 0.88n n
N 128 puncte.
function [H,W]=tftd(h,N)
W=(2*pi/N)*[0:N-1]'; mid=ceil(N/2)+1;
W(mid:N)=W(mid:N)-2*pi; W=fftshift(W);
H=fftshift(fft(h,N));
nn=0:40; xn=0.88.^nn;
[X,W]=tftd(xn,128);
subplot(211),plot(W/2/pi,abs(X))
xlabel('frecventa normalizata')
ylabel('amplitudine [V]')
subplot(212),plot(W/2/pi,180/pi*angle(X))
xlabel('frecventa normalizata')
ylabel('faza [grade]')

Transformata Hilbert
2
n . Transformata sa Hilbert notat
N
y n - constituie partea imaginar a secvenei analitice: x n jy n . S se
determine transformata Hilbert a unui semnal cosinusoidal.
Fie secvena real: x n cos

N=64;n=0:N-1;
x=cos(2*pi/N*n); stem(x) ;
y=hilbert(x);
subplot(211);stem(real(y));
title('Semnalul real');
xlabel('n');ylabel('Amplitudine');
subplot(212);stem(imag(y));
title('Transformata Hilbert a semnalului');
xlabel('n'); ylabel('Amplitudine');

Funcia pondere h n a unui transformator Hilbert i funcia sa de transfer


pot fi obinute astfel:
for nn=-31:1:32;
h(nn+32)=2*pi./nn.*((sin(pi*nn/2)).^2);
end
h(32)=0;[H,f]=freqz(h);
amp=20*log10(abs(H));
phase=unwrap(angle(H))*180/pi;
subplot(311); stem(h);

13

title('Functia pondere'); xlabel('n')


subplot(312); semilogy(f,amp);
xlabel('Pulsatie normalizata');
ylabel('Amplitudine (dB)'); grid
subplot(313); plot(f,phase);
xlabel('Pulsatie normalizata');
ylabel('Faza (grade)'); grid

Funcia pondere a unui transformator Hilbert poate fi, de asemenea,


obinut folosind:
h=remez(64,[0.1,0.9],[1,1], 'Hilbert');

Secvene 2D
Secvena 2D:
x=[1 1 1 1 1
10001
10001
10001
1 1 1 1 1];
reprezint o imagine binar, sub forma unui ptrat negru pe un fond alb.
Vizualizai aceasta imagine. Calculai apoi TFD 2D a matricii i vizualizai
rezultatul acestei transformri. Comentai.
x=[1 1 1 1 1;1 0 0 0 1;1 0 0 0 1;1 0 0 0 1;1 1 1 1 1];
Xf=fft2(x);Xfsh=fftshift(Xf);
subplot(221);
imagesc(x);
title('imagine initiala ')
subplot(222);
imagesc(log(abs(Xf)));
title('Modulul spectrului imaginii')
subplot(223);
imagesc(log(abs(Xfsh)));
title('Modulul spectrului simetrizat al imaginii')
subplot(224);
imagesc(unwrap(angle(Xf)));
title('Faza spectrului imaginii') ;
colormap(gray)

Analiza Fourier a secvenelor 2D


Incrcai imaginile Clown i Gatlin2 sub MATLAB. Reprezentai
spectrele celor dou imagini i apoi reconstruii cele dou imagini
interschimbnd spectrele de faz ale acestora.
14

load clown ; x = X;load gatlin2 ; y = X;


l = min(size(x,1),size(y,1));
c = min(size(x,2),size(y,2));
x = x(1:l,1:c);y = y(1:l,1:c);
X=fft2(x) ; Y=fft2(y);
Z1 = abs(X).*exp(i*angle(Y));
Z2 = abs(Y).*exp(i*angle(X));
z1 = real(ifft2(Z1));
z2 = real(ifft2(Z2));
figure(1)
fh = ([1:l]-l/2)/l;fv = ([1:c]-c/2)/c;
subplot(3,2,1); image(x); axis('image');
title('imagine x'); axis off
subplot(3,2,2); image(y); axis('image');
title('imagine y'); axis off
subplot(3,2,3);
imagesc(fh,fv,log(abs(fftshift(X.^2))));
axis('image'); title('Modul X');
xlabel('frecvente orizontale');
ylabel('frecvente verticale')
subplot(3,2,4);
imagesc(fh,fv,log(abs(fftshift(Y.^2))));
axis('image'); title('Modul Y');
xlabel('frecvente orizontale');
ylabel('frecvente verticale')
subplot(3,2,5);
imagesc(fh,fv,angle(fftshift(X))); axis('image');
title('Faza X');xlabel('frecvente orizontale');
ylabel('frecvente verticale')
subplot(3,2,6);
imagesc(fh,fv,angle(fftshift(Y)));
axis('image'); title('Faza Y')
xlabel('frecvente orizontale');
ylabel('frecvente verticale')
figure(2) ;
subplot(2,2,1); image(x); axis('image');
title('imagine x'); axis off
subplot(2,2,2); image(y); axis('image');
title('imagine y'); axis off
subplot(2,2,3); image(z1);
axis('image'); axis off
title('imagine: modul x + faza y')
subplot(2,2,4); image(z2);
axis('image'); axis off
title('imagine: modul y + faza x');colormap('gray')

Concluzionai n privina importanei spectrului de faz pentru


reconstrucia imaginilor.
15

Studiul secvenelor numerice utiliznd mediul DIDACTICIEL)

1) Se lanseaz DIDACTICIEL-ul prin introducerea comenzii:


didact

2) Se studiaz interactiv proprietile diverselor secvene numerice cu


ajutorul meniurilor definite n:
Signal generator
Numerical signals
Random signals

Tem
Verificai proprietatea de liniaritate a TFTD1D :
TFTD1D a1 x1 n a2 x2 n a1TFTD1D x1 n a2 TFTD1D x2 n
folosind urmtoarele semnale:
4 n,
0 ,

x1 n

2n ,
0 ,

x2 n

dac n 0,1,2,3,4
n rest
dac n 0,1,2,3,4
n rest

i considernd a1 1i a2 0.5 .

Programul DIDACTICIEL a fost iniiat de prof. Andr Quinquis i studenii si de la


ENSIETA - Brest, Frana, n 1998. Ulterior, n cadrul cooperrii tehnico-tiinifice dintre
ENSIETA - Brest i ATM - Bucureti, programul DIDACTICIEL a suferit numeroase
mbuntiri.

16

LUCRAREA DE LABORATOR NR. 2


SISTEME NUMERICE 1D I 2D

Obiectivele lucrrii
1) Asimilarea funciilor MATLAB specifice lucrului cu sisteme discrete
1D i 2D;
2) Studiul proprietilor de liniaritate, invarian n timp i stabilitate, n
cazul sistemelor numerice;
3) Deprinderea tehnicilor de determinare a funciei pondere, funciei
indiciale, precum i rspunsului sistemelor numerice la diverse secvene
discrete;
4) Studiul interactiv al proprietilor secvenelor discrete i al operatorilor
aplicai acestora utiliznd mediul DIDACTICIEL.

Desfurarea lucrrii
Sisteme numerice liniare 1D
S se verifice c sistemul numeric reprezentat prin funcia de transfer:
H ( z)

2.2403 2.4908 z 1 2.2403 z 2


1 0.4 z 1 0.75 z 2

este un sistem liniar i invariant n timp.


1)

clear; n = 0:40; a = 2;b = -3;


x1 = cos(2*pi*0.1*n); x2 = cos(2*pi*0.4*n);
x = a*x1 + b*x2;
num = [2.2403 2.4908 2.2403]; den = [1 -0.4 0.75]; ic = [0 0];
y1 = filter(num,den,x1,ic); y2 = filter(num,den,x2,ic);
y = filter(num,den,x,ic); yt = a*y1 + b*y2; d = y - yt;
figure
subplot(3,1,1); stem(n,y); ylabel('Amplitudine');
title('Iesirea pt intrarea ponderata: a \cdot x_{1}[n] + b \cdot
x_{2}[n]');
subplot(3,1,2); stem(n,yt); ylabel('Amplitudine');
title('Iesire: a \cdot y_{1}[n] + b \cdot y_{2}[n]');
subplot(3,1,3); stem(n,d);
xlabel('Index temporal n'); ylabel('Amplitudine');
title(' Semnal diferenta');

17

2)

clear; n = 0:40; D = 10;a = 3.0;b = -2;


x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);xd = [zeros(1,D) x];
num = [2.2403 2.4908 2.2403]; den = [1 -0.4 0.75]; ic = [0 0];
y = filter(num,den,x,ic); yd = filter(num,den,xd,ic);
d = y - yd(1+D:41+D);
figure
subplot(3,1,1);stem(n,y); ylabel('Amplitudine');
title('Iesire y[n]'); grid;
subplot(3,1,2);stem(n,yd(1:41)); ylabel('Amplitudine');grid;
title(['Iesire pt intrarea decalata x[n -', num2str(D),']']);
subplot(3,1,3); stem(n,d);
xlabel('Index temporal n'); ylabel('Amplitudine');
title(' Semnal diferenta'); grid;

Funcia de transfer, polii i zerourile unui sistem numeric


Fie un SNLI1D caracterizat n domeniul timp discret de ecuaia:
y n 0.334 y n 1 0.334 x n 0,334 x n 1
S se determine funcia de transfer, polii i zerourile acestui sistem.
Funcia de transfer corespunztoare este dat de:
Y z 0.334 0.334 z 1
H z

X z
1 0.334 z 1
clear;b=[0.334,0.334]; a=[1.0,-0.334];
figure(1) ; zplane(b,a) ;
figure(2) ; freqz(b,a)

Funcia pondere a unui sistem numeric


1) S se determine funcia pondere pentru un SNLI1D definit prin funcia
de transfer:
2.2403 2.4908 z 1 2.2403 z 2
H ( z)
1 0.4 z 1 0.75 z 2
2) S se compare funciile pondere pentru dou FTB de tip Butterworth i
Cauer de ordinul 5, avnd frecvena de tiere normat de 0.5.
1)

18

clear; N = 40;
num=[2.2403 2.4908 2.2403];
den= [1 -0.4 0.75];
y = impz(num,den,N); figure
stem(y);xlabel('Index temporal n');
ylabel('Amplitudine'); title('Functia pondere'); grid;

2)

clear;[b,a]=butter(5,0.5);h=impz(b,a,50);
figure;subplot(211);stem(h); title('butterworth ')
[b,a]=ellip(5,1,20,0.5);h=impz(b,a,50);
subplot(212);stem(h); title('cauer ')

Stabilitatea sistemelor numerice


S se arate c sistemul numeric caracterizat prin funcia de transfer:
1 0.8 z 1
H (z)
1 1.5 z 1 0.9 z 2
este stabil.
clear; num = [1 -0.8]; den = [1 1.5 0.9];
N = 200; h = impz(num,den,N+1); parsum = 0;
for k = 1:N+1;
parsum = parsum + abs(h(k));
if abs(h(k)) < 10^(-6),
break,
end
end
figure
n = 0:N;stem(n,h)
xlabel('Index temporal n'); ylabel('Amplitudine');
figure
zplane(num,den);disp('Sum =');disp(abs(h(k)));

Conectarea n cascad a sistemelor numerice


Fie dou sisteme numerice definite prin funciile de transfer urmtoare:
H1 ( z )
H 2 ( z)

0.3 0.2 z 1 0.4 z 2


1 0.9 z 1 0.8 z 2
0.2 0.5 z 1 0.3 z 2
1 0.7 z 1 0.85 z 2

Artai c funcia de transfer a sistemului numeric obinut prin conectarea


n cascad a celor dou sisteme este egal cu produsul funciilor de transfer ale
acestora.
clear;x = [1 zeros(1,40)];n = 0:40;
den = [1 1.6 2.28 1.325 0.68];num = [0.06 -0.19 0.27 -0.26 0.12];
y = filter(num,den,x);
num1 = [0.3 -0.2 0.4];den1 = [1 0.9 0.8];
num2 = [0.2 -0.5 0.3];den2 = [1 0.7 0.85];
y1=filter(num1,den1,x);y2=filter(num2,den2,y1);d=y-y2;

19

figure;subplot(3,1,1); stem(n,y);ylabel('Amplitudine');
title('Iesirea sistemului rezultat'); grid;
subplot(3,1,2); stem(n,y2);ylabel('Amplitudine');
title('Iesirea celor doua sisteme conectate in cascada'); grid;
subplot(3,1,3); stem(n,d)
xlabel('Index temporal n');ylabel('Amplitudine');
title(' Semnal diferenta'); grid;

Funcia indicial a unui sistem numeric


S se compare funciile indiciale pentru dou FTB de tip Butterworth i
Cauer de ordinul 5, avnd frecvena de tiere normat de 0.5.
clear;[b,a]=butter(5,0.5);
unit=[ones(50,1)]; h=filter(b,a,unit);
subplot(211);stem(h); title('butterworth')
[b,a]=ellip(5,1,20,0.5); h=filter(b,a,unit);
subplot(212);stem(h); title('cauer')

Efectul zerourilor i polilor asupra funciei de transfer a unui


sistem numeric
1) Fie sistemul reprezentat prin funcia de transfer H z 1 0.5 z 1

j
prezentnd un singur zerou la z 0.5 . S se studieze variaia lui H e

la

apropierea zeroului de cercul unitate.


2) Procedai n acelai mod pentru sistemul reprezentat prin funcia de
1
transfer H z
, care are un singur pol la z 0.5 .
1 0.5 z 1
b(1,1:2)=[1 -0.4];b(2,1:2)=[1 -0.6];
b(3,1:2)=[1 -0.8];b(4,1:2)=[1 -1];
figure;hold on;tipcul=['b';'r';'g';'k'];
for k=1:4
h=freqz(b(k,:),1); plot(abs(h),tipcul(k,:))
end
axis([0 512 0 2.2]);grid on
legend('zerou=.4','zerou=.6','zerou=.8','zerou=1',2)
title('Influenta zerourilor asupra functiei de transfer')
a(1,1:2)=[1 -0.5];a(2,1:2)=[1 -0.6];
a(3,1:2)=[1 -0.7];a(4,1:2)=[1 -0.8];
figure;hold on
for k=1:4
h=freqz(1,a(k,:));plot(abs(h),tipcul(k,:))
end
axis([0 512 0 5.5]);grid on
legend('pol=.5','pol=.6','pol=.7','pol=.8')
title('Influenta polilor asupra functiei de transfer')

20

Sisteme numerice liniare 2D


Funcia de transfer a unui SNLI 2D de tip nerecursiv este de forma:
H z1 , z2 B z1 , z2

bm , m z1m z2m
1

m1 0 m2 0

S se determine funcia pondere, funcia indicial i rspunsul la o


exponenial complex pentru un SNLI 2D avnd matricea coeficienilor:
b11 b12
1 1

1 0

b21 b22

clear; b=[1,1;1,0];
dirac2D=zeros(50); dirac2D(1,1)=1; h=conv2(b,dirac2D);
subplot(221); mesh(dirac2D); title('impuls Dirac 2D ');
subplot(223); mesh(h);title('functia pondere ')
subplot(222); unit2D=ones(50); mesh(unit2D);
title('functia treapta unitate 2D ');
subplot(224); g=conv2(b,unit2D); mesh(g);
title('functia indiciala ')
for n1=1:64
for n2=1:64
e(n1,n2)=exp(j*n1*2*pi/64)*exp(j*n2*2*pi/64);
end
end
y=conv2(b,e);
figure; subplot(211); mesh(real(e));rotate3d
title('partea reala a unei exponentiale complexe 2D ')
subplot(212); mesh(real(y));rotate3d
title('partea reala a raspunsului sistemului ')

Sisteme numerice neliniare 2D


S se filtreze imaginea eight.tif, afectat de un zgomot de tip sare i
piper de dispersie 0.02, folosind filtre de ordine corespunztoare statisticilor 1,
4, 5 i 9 i o fereastr de filtrare de 33.
nlocuii filtrul de ordine corespunztor statisticii 5 cu un filtru median.
Ce observai ?
clear; I = imread('eight.tif');
J = imnoise(I,'salt & pepper',0.02);
K1 = ordfilt2(J,5,ones(3,3));
K2 = ordfilt2(J,1,ones(3,3));
K3 = ordfilt2(J,9,ones(3,3));
K4 = ordfilt2(J,4,[0 1 0; 1 0 1; 0 1 0]);
figure
subplot(321);imshow(I);title('Imagine initiala')
subplot(322);imshow(J);title('Imagine perturbata')

21

subplot(323);imshow(K1);
title('Filtrare de ordine (statistica
subplot(324);imshow(K2);
title('Filtrare de ordine (statistica
subplot(325);imshow(K3);
title('Filtrare de ordine (statistica
subplot(326);imshow(K4);
title('Filtrare de ordine (statistica
K = medfilt2(J);figure
subplot(211);imshow(J);title('Imagine
subplot(212);imshow(K);title('Imagine

5 - median)')
1 - min)')
9 - max)')
4)')
initiala')
filtrata')

Studiul sistemelor numerice utiliznd mediul DIDACTICIEL


1) Se lanseaza DIDACTICIEL-ul prin introducerea comenzii:
didact

2) Se studiaz interactiv stabilitatea i influena zerourilor i polilor


asupra caracteristicii de transfer a unui SN cu ajutorul meniurilor definite n:
Filtering

Tem
Se dau funciile de transfer urmtoare, care corespund unor SNLI1D :
H1 z 1 2 z 1 z 2
H 2 z 1 2 z 1 z 2
H 3 z 1 z 1 0.5 z 2
H 4 ( z)
H5 ( z)

1 z 1

1 z 1

1 z 1 0.5 z 2

1 z 1 0.5 z 2
1
H 6 ( z)
1 z 1 0.5 z 2
a) Utiliznd funcia zplane.m reprezentai n planul Z diagramele polzerourilor pentru funciile H k z , k 1,6 .
b) Utiliznd funcia freqz.m reprezentai caracteristicile de frecven
ale acestor funcii de transfer. Precizai ce tip de sisteme reprezint fiecare.
c) Determinai rspunsul sistemului H 5 z la semnalul impuls unitate i
treapt unitate.
22

LUCRAREA DE LABORATOR NR. 3


CONVOLUII I CORELAII

Obiectivele lucrrii
1) Asimilarea funciilor MATLAB pentru realizarea convoluiilor,
corelaiilor 1D i 2D;
2) Studiul algoritmilor pentru calculul convoluiilor i corelaiilor;
3) Studiul interactiv al convoluiilor i transformatelor utiliznd mediul
DIDACTICIEL.

Desfurarea lucrrii
Interpretarea polinomial a convoluiei liniare i ciclice
Operaiile de convoluie liniar i ciclic, precum i de deconvoluie se
pot interpreta prin prisma operaiilor cu polinoame. S considerm secvenele
1D i polinoamele asociate de mai jos:
x x0 ,x1 ,x2 X z x0 x1 z x2 z 2

h h0 ,h1 H z h0 h1 z
Conform definiiei: yn

N 1

xm hn m . Se obine prin urmare:

m0

y y0 , y1 , y2 , y3 x0 h0 , x0 h1 x1h0 , x1h1 x2 h0 , x2 h1
Aceiai coeficieni pot fi obinui ca urmare a produsului polinoamelor
X z si H z :

Y z X z H z x0 x1 z x2 z 2

h0 h1z

x0 h0 x0 h1 x1h0 z x1h1 x2 h0 z 2 x2 h1 z 3
Funcia MATLAB conv, pentru calculul convoluiilor liniare 1D
calculeaz de fapt acest produs. De exemplu, pentru a realiza convoluia
h 11 , se utilizeaz:
secvenelor x 1,2,3i
x=[1,2,3] ; h=[1,1] ; [y]=conv(x,h)

23

Deconvoluia poate fi realizat cu funcia MATLAB deconv i poate fi


vzut ca rezultatul mpririi cu rest a polinoamelor Y i X.
[q,r]=deconv(y,x)

i convoluia ciclic admite o interpretare polinomial. S considerm


secvenele:
x x0 ,x1 X z x0 x1 z, cu N 2
h h0 ,h1 X z h0 h1 z

Conform definiiei: yn

N 1

xm h n m , se obine:

m0

y y0 , y1 x0 h0 x1h1 , x0 h1 x1h0
Acelai rezultat se obine ca rest al operaiei polinomiale:
Y z X z H z mod z 2 1 , adic ca rest al mpririi polinomului

2
h1 x1 z 2 h0 x1 h1 x0 z h0 x0 prin z 1 .

Un exemplu de convoluie ciclic 1D este prezentat mai jos:


x=[1,2]; h=[3,4]; m=[1,0,-1];
[q,y]=deconv(fliplr(conv(x,h)),m)

Aceleai consideraii sunt valabile i n cazul secvenelor 2D. Astfel, n


cazul convoluiei liniare:

n2 0 ,1,2 1,0,1;1,0 ,1

xn1 ,n2 ,n1 0,1; n2 0,1,2 0 ,1,2 ; 3,4,5

hn1 ,n2 ,n1 0,1;

Modul de calcul al primelor elemente ale secvenei 2D y h x este


prezentat mai jos:
y0 ,0

h0 r ,0 r xr ,r

r1 0 r2 0

y0 ,1

1 2

h0 r ,1 r xr ,r

r1 0 r2 0

y0 ,2

1 2

h0 r ,2 r xr ,r

r1 0 r2 0

1 2

h0 ,0 x0 ,0 0
h0 ,1 x0 ,0 h0 ,0 x0 ,1 0 1 1
h0 ,2 x0 ,0 h0 ,1 x0 ,1 h0 ,0 x0 ,2 0 0 1 2 2

Rezultatul complet se obine utiliznd comenzile MATLAB:


x=[0,1,2;3,4,5] ; h=[1,0,1;1,0,1] ;
y=conv2(x,h)

24

Acelai rezultat poate fi obinut reprezentnd convoluia ca produs de


polinoame:
Y0 z
Y1 z
Y2 z

H0 r z X r z H 0 z X 0 z z 2z 2 z 3 2z 4

r1 0

H1 r z X r z H1 X 0 H 0 X1 3 5z 10z 2 5z 3 7 z 4

r1 0

H 2 r z X r z H1 z X 1 z 3 4 z 8 z 2 4 z 3 5 z 4

r1 0

Reprezentnd fiecare secven 2D ca un polinom de dou variabile, se


obine:
X z1 , z2 0 z10 z20 1z10 z12 2 z10 z22 3 z11 z20 4 z11 z12 5 z11 z22
z2 2 z22 3 z1 4 z1 z2 5 z1 z22
H z1 , z2 1z10 z20 0 z10 z12 1z10 z22 1z11 z20 0 z11 z12 1z11 z22
1 z22 z1 z1 z22
Se poate deci scrie convoluia 2D sub forma polinomulului de dou
variabile:
Y z1 , z2 H z1 , z2 X z1 , z2

z2 2 z22 3z1 4 z1 z2 5 z1 z22

1 z

2
2

z1 z1 z22

Teorema lui Plancherel


Pentru a verifica teorema lui Plancherel se poate considera urmtorul
exemplu:
x1 (n) 2n 1, n [1 9]
x2 (n) 1, 2, 3, 2, 1, 0, 0, ...
w = -pi:2*pi/255:pi;
x1 = [1 3 5 7 9 11 13 15 17];x2 = [1 -2 3 -2 1];
y = conv(x1,x2);h1 = freqz(x1, 1, w);
h2 = freqz(x2, 1, w);hp = h1.*h2;h3 = freqz(y,1,w);
subplot(2,2,1) ;plot(w/(2*pi),abs(hp));grid
title('Produsul spectrelor de amplitudine')
subplot(2,2,2) ;plot(w/(2*pi),abs(h3));grid
title('Spectrul de amplitudine a rezultatului convolutiei')
subplot(2,2,3) ;plot(w/(2*pi),angle(hp));grid
title('Suma spectrelor de faza')
subplot(2,2,4) ;plot(w/(2*pi),angle(h3));grid
title('Spectrul de faza a rezultatului convolutiei')

25

Calculul convoluiilor cu ajutorul transformatei Fourier


S se calculeze convoluia ciclic a dou secvene, x i h , de aceeai
perioad N , utiliznd TFD1D .
x=[1,2]; h=[3,4];
X=fft(x);H=fft(h);Y=X.*H;
y=abs(ifft(Y))

S se utilizeze aceeai metod pentru a realiza convoluia ciclic 2D


dintre secvenele:
x xn1 ,n2 ,n1 0,1; n2 0,1,2 0 ,1,2 ; 3,4,5

hn1 ,n2 ,n1 0,1;

n2 0 ,1,2 1,0,1;1,0 ,1

x=[1,2,3;4,5,6]; h=[1,0,1;1,0,1];
X=fft2(x); H=fft2(h);
Y=X.*H;
y=abs(ifft2(Y))

Mecanismul de calcul al convoluiei


S se calculeze pas cu pas convoluia a dou secvene discrete. Originea
celor dou funcii este presupus la n 0 .
x=ones(3,1); h=exp(-[1:10]);
Ly=length(x)+length(h)-1;
lh=length(h);lx=length(x); y=zeros([Ly,1]);
xf=fliplr(x);
disp(['Apasati pe orice tasta pentru a calcula convolutia']);
for i=1:1:Ly
indlo=max(0,i-lx); indhi=min(i-1,lh-1);
for j=indlo:indhi
y(i)=h(j+1)*x(i-j)+y(i);
end
subplot(311);stem(-lx+i:1:i-1,xf);ylabel('x in oglinda');
lim1= max(lh,lx) ;lim2= min(min(min(x),min(h)),0) ;
lim3= max(max(x),max(h)) ;
axis([-lx,lim1,lim2,lim3]);
subplot(312);stem(0:1:lh-1,h);ylabel('h');
axis([-lx,lim1,lim2,lim3]);
subplot(313);stem(0:1:Ly-1,y);ylabel('y');
pause
end

26

Convoluia, corelaia i filtrajul adaptat


S se scrie un program care s arate c operaia de convoluie realizat de
un filtru adaptat este echivalent cu corelaia dintre semnalul cu care acesta este
adaptat i semnalul de intrare.
Se va considera semnalul de intrare:
x(n) 1,-2,3,-4,3,2,1,0,...
i filtrul adaptat caracterizat prin funcia pondere:
h(n) 3,2,1,-2,1,0,-4,0,3,0,...
h = [3 2 1 -2 1 0 -4 0 3];
x = [1 -2 3 -4 3 2 1];
xa = fliplr(h);
y1 = conv(h,x) ;
y2 = filter(h,1,[x zeros(1,length(x)+1)]);
y3 = xcorr(x,xa);
subplot(311);stem(y1); ylabel('Amplitudine');
title('Iesire obtinuta prin convolutie'); grid;
subplot(312);stem(y2); ylabel('Amplitudine');
title('Iesire obtinuta prin filtraj'); grid;
subplot(313);stem(y1)
xlabel('Index temporal n'); ylabel('Amplitudine');
title('Iesire obtinuta prin corelatie'); grid;

Studiul operatorilor de convoluie i corelaie utiliznd mediul


DIDACTICIEL
1) Se lanseaza DIDACTICIEL-ul prin introducerea comenzii:
didact

2) Se studiaza interactiv operatorii de convoluie i corelaie cu ajutorul


meniurilor definite n:
Math Tools

Tem
Se dau secvenele 1D:
1, dac n 0,1,2
0, n rest

x n

5 n, dac
0, n rest

h n

n 0,1,2,3,4

Calculai analitic convoluia lor ciclic pentru N 6 i verificai


rezultatul n MATLAB.

27

LUCRAREA DE LABORATOR NR. 4


STUDIUL TRANSFORMATELOR APLICATE
SECVENELOR NUMERICE

Obiectivele lucrrii
1) Asimilarea funciilor MATLAB pentru realizarea transformatelor
aplicate secvenelor 1D i 2D;
2) Studiul algoritmilor pentru calculul transformatelor;
3) Studiul proprietilor transformatei Fourier discrete i a ctorva
aplicaii ale transformatelor;
4) Studiul interactiv al transformatelor aplicate secvenelor numerice
utiliznd mediul DIDACTICIEL.

Desfurarea lucrrii
Transformata Fourier discret a unei secvene numerice 1D
Calculai i vizualizai spectrul secvenei 1D:
1, pentru n 0, N 1
0, n rest

x[n]

cu N 8, 16, 64, 128, 512 .


N=8;x=ones(1,N);
X=fft(x);
subplot(311);
stem(x);
title('Reprezentarea secventei discrete x[n]');
subplot(312);
stem(abs(X));
title('Reprezentarea modulului transformatei Fourier');
subplot(313);
stem(angle(X));
title('Reprezentarea fazei transformatei Fourier');

28

Densitatea spectral de putere i transformata Fourier


Reprezentai densitatea spectral de putere a unui semnal format din dou
sinusoide de 50 Hz i 120 Hz i un zgomot aditiv, alb, gaussian, de medie nul i
dispersie 4.
t=0:0.001:0.8;
x=sin(2*pi*50*t)+sin(2*pi*120*t)+2*randn(1,length(t));
subplot(211);plot(x);
title('Semnalul x(t)');
grid;
X=fft(x,512);
Px=X.*conj(X)/512;
f=1000*(0:255)/512;
subplot(212);plot(f,Px(1:256));
title('Densitatea spectrala de putere');
grid

Proprieti ale transformatei Fourier


S ve verifice proprietile de translaie (deplasare, decalaj) n timp i de
modulaie ale transformatei Fourier. Se va considera semnalul:
n pentru n [1,8]
x (n)
0 pentru n [9,16]
figure
w = -pi:2*pi/255:pi;
wo = 0.4*pi; D = 10;
num = [1 2 3 4 5 6 7 8 9];
h1 = freqz(num, 1, w);
h2 = freqz([zeros(1,D) num], 1, w);
subplot(2,2,1)
plot(w/(2*pi),abs(h1));grid
title('Spectrul de amplitudine al secventei initiale')
subplot(2,2,2)
plot(w/(2*pi),abs(h2));grid
title('Spectrul de amplitudine al secventei decalate')
subplot(2,2,3)
plot(w/(2*pi),angle(h1));grid
title('Spectrul de faza al secventei initiale')
subplot(2,2,4)
plot(w/(2*pi),angle(h2));grid
title('Spectrul de faza al secventei decalate')
figure
w = -pi:2*pi/255:pi;
wo = 0.4*pi;num1 = [1 3 5 7 9 11 13 15 17];
L = length(num1);

29

h1 = freqz(num1, 1, w);
n = 0:L-1;
num2 = exp(wo*i*n).*num1;
h2 = freqz(num2, 1, w);
subplot(2,2,1)
plot(w/(2*pi),abs(h1));grid
title('Spectrul de amplitudine al secventei initiale')
subplot(2,2,2)
plot(w/(2*pi),abs(h2));grid
title('Spectrul de amplitudine al secventei modulate')
subplot(2,2,3)
plot(w/(2*pi),angle(h1));grid
title('Spectrul de faza al secventei initiale')
subplot(2,2,4)
plot(w/(2*pi),angle(h2));grid
title('Spectrul de faza al secventei modulate')

Influena lungimii semnalului asupra spectrului estimat


cu TFD
S se studieze influena lungimii semnalului asupra spectrului su, estimat
prin intermediul TFD. Se va considera un semnal sinusoidal de frecven 10 Hz,
eantionat la 100 Hz. S se studieze apoi efectul procedeului de zero-paddding i
cazurile n care numrul de perioade este ntreg sau nu.
t = 0:0.01:0.5-0.01;
x = cos(20*pi*t);
N = length(x) ; X = fft(x,N);
fp = (0:N-1)/N/0.01; fp = fp - 1/2/0.01;
stem(fp,fftshift(abs(X)));
axis([ -1/(2*0.01) 1/(2*0.01) 0 25]);
xlabel('frecventa (Hz)')
ylabel('spectru de amplitudine')
X = fft(x,20*N); N = length(X);
fp = (0:N-1)/N/0.01;
fp = fp - 1/2/0.01;
plot(fp,abs(fftshift(X)));
axis([ -1/(2*0.01) 1/(2*0.01) 0 25]);
xlabel('frecventa (Hz)')
ylabel('spectru de amplitudine')
t = 0:0.01:0.5-0.01-1/20;
x = cos(20*pi*t); N = length(x);
X = fft(x,N);
fp = (0:N-1)/N/0.01;
fp = fp - 1/2/0.01;
plot(fp,abs(fftshift(X)));
axis([ -1/(2*0.01) 1/(2*0.01) 0 25]);
xlabel('frecventa (Hz)'); ylabel('spectru de amplitudine')

30

Influena tipului ferestrei asupra spectrului estimat cu TFD


a) S se genereze o sinusoid de amplitudine 1V, de frecven 100 Hz,
eantionat la 256 Hz, n 32 de puncte. S se calculeze TFD n 1024 de puncte
considernd succesiv o fereastr dreptunghiular, apoi triunghiular, Hamming,
Hanning i Blackman. S se concluzioneze asupra rezoluiilor spectrale i
dinamice.
t=(1:32);f1=50;Fe=256;Nfft=1024 ;
y1=sin(2*pi*f1/Fe*t);sig=y1.*boxcar(32)' ;
y_rect=abs(fftshift((fft(sig,Nfft))));
sig=y1.*triang(32)';
y_tria=abs(fftshift((fft(sig,Nfft))));
sig=y1.*hamming(32)' ;
y_hamm=abs(fftshift((fft(sig,Nfft))));
sig=y1.*hanning(32)' ;
y_hann=abs(fftshift((fft(sig,Nfft))));
sig=y1.*blackman(32)';
y_blac=abs(fftshift((fft(sig,Nfft))));
f=[-Fe/2:Fe/Nfft:(Fe/2-Fe/Nfft)];
subplot(511)
semilogy(f(513:1024),y_rect(513:1024));axis([0 128 1e-3 100]);grid
legend('fereastra rectangulara',-1)
subplot(512);semilogy(f(513:1024),y_tria(513:1024));
axis([0 128 1e-3 100]);grid
legend('fereastra triangulaire',-1)
subplot(513);semilogy(f(513:1024),y_hamm(513:1024));
grid;ylabel('amplitudine spectrala')
axis([0 128 1e-4 100]);legend('fereastra Hamming',-1)
subplot(514);semilogy(f(513:1024),y_hann(513:1024));
axis([0 128 1e-3 100]);grid ; legend('fereastra Hanning',-1)
subplot(515);semilogy(f(513:1024),y_blac(513:1024));
axis([0 128 1e-3 100]);grid
legend('fereastra Blackman',-1)

b) S se genereze un semnal compus din suma a dou sinusoide de


frecvene 100 i 94 Hz i de amplitudine 1V. Se va considera aceeai lungime a
semnalului de 32 puncte, iar TFD va fi calculat tot n 1024 de puncte.
t=(1:32);
f1=94;f2=100 ;
Fe=256;Nfft=1024 ;
y1= sin(2*pi*f1/Fe*t)+ sin(2*pi*f2/Fe*t);
sig=y1.*boxcar(32)' ;
y_rect=abs(fftshift((fft(sig,Nfft))));
sig=y1.*triang(32)';
y_tria=abs(fftshift((fft(sig,Nfft))));
sig=y1.*hanning(32)' ;
y_hann=abs(fftshift((fft(sig,Nfft))));
sig=y1.*hamming(32)' ;

31

y_hamm=abs(fftshift((fft(sig,Nfft))));
sig=y1.*blackman(32)';
y_blac=abs(fftshift((fft(sig,Nfft))));
f=[-Fe/2:Fe/Nfft:(Fe/2-Fe/Nfft)];
subplot(511)
plot(f(513:1024),y_rect(513:1024));
grid;axis([0 128 0 20])
legend('fereastra rectangulara',-1)
subplot(512);
plot(f(513:1024),y_tria(513:1024));grid;
axis([0 128 0 7])
legend('fereastra triangulaire ',-1)
subplot(513);
plot(f(513:1024),y_hann(513:1024));
grid;
axis([0 128 0 7])
legend('fereastra Hanning ',-1)
ylabel('amplitudine spectrala')
subplot(514);
plot(f(513:1024),y_hamm(513:1024));
grid;
axis([0 128 0 7])
legend('fereastra Hamming ',-1)
subplot(515);
plot(f(513:1024),y_blac(513:1024));
grid;
axis([0 128 0 6])
legend('fereastra Blackman',-1)
xlabel('frecventa (Hz)')

c) S se genereze semnalul urmtor n 32 de puncte:


100
74

x[n] sin 2
n 0.1sin
2 n
256
256

Reprezentai spectrul su utiliznd diverse ponderri i interpretai rezultatele.


t=(1:32);f1=74;f2=100 ;Fe=256;Nfft=1024 ;
y1= 0.1*sin(2*pi*f1/Fe*t)+ sin(2*pi*f2/Fe*t);
sig=y1.*boxcar(32)' ; y_rect=abs(fftshift(fft(sig,Nfft)));
sig=y1.*triang(32)'; y_tria=abs(fftshift(fft(sig,Nfft)));
sig=y1.*hanning(32)' ; y_hann=abs(fftshift(fft(sig,Nfft)));
sig=y1.*hamming(32)' ; y_hamm=abs(fftshift(fft(sig,Nfft)));
sig=y1.*blackman(32)' ; y_blac=abs(fftshift(fft(sig,Nfft)));
f=[-Fe/2:Fe/Nfft:(Fe/2-Fe/Nfft)];
subplot(511)
plot(f(513:1024),y_rect(513:1024));grid;axis([0 128 0 20])
legend('fereastra rectangulara',-1)
subplot(512);plot(f(513:1024),y_tria(513:1024));grid;
axis([0 128 0 10])
legend('fereastra triangulaire ',-1)

32

subplot(513);plot(f(513:1024),y_hann(513:1024));grid;
axis([0 128 0 10])
legend('fereastra Hanning ',-1)
ylabel('amplitudine spectrala')
subplot(514);plot(f(513:1024),y_hamm(513:1024));grid;
axis([0 128 0 10])
legend('fereastra Hamming ',-1)
subplot(515);plot(f(513:1024),y_blac(513:1024));grid;
axis([0 128 0 8])
legend('fereastra Blackman',-1) ; xlabel('frecventa (Hz)')

Transformata cosinus discret 1D


Generai o secven sinusoidal de 10 Hz, eantionat cu 1000 Hz.
Calculai i vizuzalizai coeficienii descompunerii n DCT.
t=0:0.001:1;
x=sin(2*pi*10*t);
y=dct(x);
stem(y(1:40));

Compresia de imagini cu transformata cosinus discret 2D


S se studieze efectul compresiei utiliznd TCD asupra unei imagini
simple. Se va utiliza pentru aceasta imaginea dots, care se gsete n fiierul
imdemos al toolbox-ului images i funcia dct2 din MATLAB.
a) S se reprezinte variaia erorii medii ptratice n funcie de numrul de
coeficieni reinui.
b) S se realizeze compresia conservnd numai cei mai importani 1024
coeficieni ai transformatei.
a)

load imdemos dots;[N1,N2]=size(dots); sl=dots; s=zeros(N1,N2);


s(sl)=ones(1,length(find(sl)));
y=dct2(s); [ly,cy]=size(y); yv=y(:);
[yvs,idxs]=sort(abs(yv)); yvs=flipud(yvs);
idxs=flipud(idxs); cont=0;
for r=2.^[0:14]
yvr=yv; yr=y;
yvr(idxs(r+1:N1*N2))=zeros(N1*N2-r,1);
for k=1:N2
yr(:,k)=yvr((k-1)*N1+1:k*N1,1);
end
sr=idct2(yr); cont=cont+1;
eqm(cont)=(sum(sum(s-sr).^2))/(N1*N2);
end
plot(eqm);
set(gca,'XTickLabels',2.^(str2num(get(gca,'XTickLabels'))-1))
xlabel('Numr de coeficieni reinui'); ylabel('Eroare')
title('Variaia erorii medii ptratice')

33

b)

load imdemos dots


r=1024; [N1,N2]=size(dots); sl=dots; s=zeros(N1,N2);
s(sl)=ones(1,length(find(sl)));
y=dct2(s); [ly,cy]=size(y); yv=y(:);
[yvs,idxs]=sort(abs(yv)); yvs=flipud(yvs);
idxs=flipud(idxs); cont=0;
yv(idxs(r+1:N1*N2))=zeros(N1*N2-r,1);
for k=1:N2
y(:,k)=yv((k-1)*N1+1:k*N1,1);
end
sr=idct2(y);
subplot(121); imagesc(s)
colormap(gray); title('Imagine iniial')
subplot(122); imagesc(sr)
colormap(gray); title('Imagine reconstruit')

Compresia de imagini utiliznd TKL


S se realizeze compresia aceleeai imagini utiliznd transformarea
Karhunen-Love, aplicat vectorilor obinui prin mprirea imaginii n blocuri
de 44 pixeli.
a) S se reprezinte variaia erorii medii ptratice n funcie de numrul de
coeficieni reinui.
b) S se realizeze compresia imaginii conservnd numai componenta cea
mai important a fiecrui vector din spaiul transformat.
a)

load imdemos dots;[N1,N2]=size(dots); sl=dots; s=zeros(N1,N2);


s(sl)=ones(1,length(find(sl)));
x=im2col(s,[4 4],'distinct'); xr=x'; sigx=cov(xr);
[vectp,valp]=eig(sigx);
vlpr=diag(valp); [ld,idx]=sort(vlpr);
idx=flipud(idx); ld=flipud(ld);
for r=1:16
vectps='=[';
for k=1:r
no=num2str(k);
eval(['vectps=[vectps ''vectp(:,idx(',no,')) ''];'])
end
vectps=[vectps ']'';'];
eval(['kmat',vectps]);
kmatc=zeros(16,16); kmatc(1:r,:)=kmat; sc=kmat*x;
srcol=kmat'*sc;
sr=col2im(srcol,[4 4],[N1 N2],'distinct');
eqm(r)=(sum(sum(s-sr).^2))/(N1*N2);
end
plot(eqm); xlabel('Numr de coeficieni reinui');
ylabel('Eroare')
title('Variaia erorii medii ptratice')

34

b)

load imdemos dots


r=1;[N1,N2]=size(dots); sl=dots; s=zeros(N1,N2);
s(sl)=ones(1,length(find(sl)));
x=im2col(s,[4 4],'distinct'); xr=x'; sigx=cov(xr);
[vectp,valp]=eig(sigx);
vlpr=diag(valp); [ld,idx]=sort(vlpr);
idx=flipud(idx); ld=flipud(ld);
vectps='=[';
for k=1:r
no=num2str(k);
eval(['vectps=[vectps ''vectp(:,idx(',no,')) ''];'])
end
vectps=[vectps ']'';'];
eval(['kmat',vectps]);kmatc=zeros(16,16);kmatc(1:r,:)=kmat;
sc=kmat*x;srcol=kmat'*sc;
sr=col2im(srcol,[4 4],[N1 N2],'distinct');
subplot(121); imagesc(s);
colormap(gray); title('Imagine iniial')
subplot(122); imagesc(sr);
colormap(gray); title('Imagine reconstruit')

Studiul transformatei Fourier discrete utiliznd mediul


DIDACTICIEL
1) Se lanseaz DIDACTICIEL-ul prin introducerea comenzii:
didact

2) Se studiaz interactiv transformata Fourier discret cu ajutorul


meniurilor definite n:
Fourier analysis

Tem
S se verifice relaia lui Parceval:
N 1

x n

n 0

N 1

X k

k 0

n cazul secvenei numerice:


n, pentru n 0,7
x n
0, n rest

35

LUCRAREA DE LABORATOR NR. 5


FILTRE NUMERICE FIR

Obiectivele lucrrii
1) Studiul operatorilor de filtrare numeric;
2) Asimilarea funciilor MATLAB pentru proiectarea filtrelor cu rspuns
finit la impuls;
3) Realizarea filtrajului numeric al secvenelor 1D i 2D, folosind filtre
FIR;
4) Studiul interactiv al filtrelor numerice FIR 1D i 2D, utiliznd mediul
DIDACTICIEL.

Desfurarea lucrrii
Comenzi MATLAB pentru proiectarea FN-FIR
fir1
fir2
kaiserord
firls
remez
remezord
fircls
fircls1
cremez
firrcos

metoda ferestrelor
metoda ferestrelor cu caracteristic de frecven prescris
estimeaz parametrii pentru fir1 cu fereastra Kaiser
utilizeaz metoda celor mai mici ptrate
utilizeaz algoritmul Remez pentru proiectarea FIR
estimeaz ordinul FIR pentru utilizarea algoritmului Remez
utilizeaz metoda celor mai mici ptrate cu constrngeri
utilizeaz metoda celor mai mici ptrate pentru FTJ i FTS
proiecteaz FIR cu faz neliniar echiriplu
proiecteaz un FIR cu caracteristic tip cosinus ridicat

Proiectarea FN-FIR prin metoda ferestrelor


Algoritm:
a) Se d H d (e j )

-1
{ H d (e j )}
b) Se determin rspunsul h [ n] TFD1D

1
h [ n]
2
36

H d (e

) e j n d

c) Se determin rspunsul h[ n] al FN-FIR


h[ n] h[n] wind

d) Se calculeaz rspunsul n frecven al FN-FIR


H (e j ) TFD1D {H d (e j )}

37

Exemplu de proiectare a unui FN-FIR cu n 57 i t 0.4 rad/sec:


h=0.4*sinc (0.4* (-25:25));
stem(h)
H,w=freqz (h,1,512,2);
plot (w,abs (H)) , grid

sau folosind fereastra Hamming:


h=h.*hamming (51);
H,w=freqz (h,1,512,2);
plot (w,abs (H)) , grid

Exemple de proiectare a FN-FIR prin metoda ferestrelor


folosind funcia b=fir1 (n,wn,ftype,window)
a) calculul rspunsurilor pondere

fd1=fir1(8,0.5,boxcar (9));fd2=fir1(9,0.5,boxcar (10));


fh1=fir1(8,0.5,hamming (9));fh2=fir1(9,0.5,hamming (10));
fb1=fir1(8,0.5,blackman(9));fb2=fir1(9,0.5,blackman(10));

b) calculul caracteristicilor de frecven

Fd1=abs (fft (fd1,9)); Fd2=abs (fft (fd2,10));


Fh1=abs (fft (fh1,9)); Fh2=abs (fft (fh2,10));
Fb1=abs (fft (fb1,9)); Fb2=abs (fft (fb2,10));

c) vizualizarea caracteristicilor de frecven

stem (n1,Fd1); stem (n2,Fd2)


stem (n1,Fh1); stem (n2,Fh2)
stem (n1,Fb1); stem (n2,Fb2)

sau

Fd1,w=freqz (fd1,1,512,2);
plot (w,abs (Fd1))

Proiectarea FN-FIR prin metoda eantionrii n frecven

H [k ] [1 1 0 1]

38

1 zN
H (z)
N

N 1

k 0

H k
1 e

jk

2
N z 1

r=1,1,0,1;N=4;
for k=0:N-1
ka=k+1;p(ka)=exp (j*k*2*pi/N);K(ka)=0;
end
b,a=residuez (r,p,k);
bb (1:N)=b (1:N);bbb=1,0,0,0,-1;
B=conv (bbb,bb);A=N.*a;
H=deconv (B,A);freqz (B,A)

Proiectarea unui FN-FIR tip trece jos cu N=30 cu caracteristica de


frecven prescris:
f= 0 0.6 0.6 1; m= 1 1 0 0;
b= fir2 (30,f,m);
h,w= freqz (b,1,128);
plot (f,m,w/pi,abs (h));

Proiectarea unui FN-FIR tip trece sus prin metoda eantionrii n


frecven, plecnd de la urmtoarele date de proiectare:
-ordinul N 24
-frecvena limit de trecere f z 6 KHz
-frecvena de eantionare f e 20 KHz
N=24;wt=6e3;we=1e4;wtn=wt/we;inc=0.01;ff=0:inc:1;
hh=zeros (1, wtn/inc-1) ones (1,(1-wtn/inc+2));
b=fir2 (N,ff,hh);h,f=freqz (b,1,we);
subplot (221), plot (f, 20*log10 (abs(h)));
subplot (222), plot (f, unwrap(angle(h))*180/pi);

Proiectarea FN-FIR tip cosinus ridicat


b= firrcos (

F0 ,

df

Fs )

frecvena de eantionare
banda de tranziie Hz
frecvena de tiere Hz = 0Fs/2 iar
( F0 df / 2) (0, Fs / 2)
ordinul par al FN-FIR
Exemplu: un FN-FIR cosinus ridicat de ordinul N 20 cu f 0 0.25 .
h=firrcos (20, 0.25,0.25);H=fft (h,1024);

39

plot((0:1023)/1024*2,abs(H)),axis (0 1 0 1.2);grid

Proiectarea FN-FIR prin optimizare folosind algoritmul


Remez elaborat de Parks-McClellan
b= remez( n ,

, w

, ftype)
hilbert pentru tipul III i IV
diferentiator pentru tipul III i IV
vector pondere
caracteristica de frecven impus FN-FIR
ordinul FN-FIR care va fi caracterizat
de b [b(1), b(2),.., b( n 1)] coeficieni

Exemplu: proiectarea unui FTB numeric de gradul n 17 specificat prin:


f=0 0.3 0.4 0.6 0.7 1;
a=0 0 1 1 0 0;
b=remez (17,f,a);
[h,w=freqz (b,1,512);
plot (f,a,w/pi,abs(h));

Proiectarea FN-FIR prin optimizare folosind minimizarea


erorilor ptratice
b= firls ( n ,

, a , w , ftype )
hilbert
differentiator
vector pondere
perechi de vectori care specific caracteristica
de frecven prescris filtrului
ordinul FN care va fi caracterizat de b(1), b(2),..., b(n 1)

Exemplu: se proiecteaz acelai filtru proiectat prin metoda remez i se


compar rezultatele:
f=0 0.3 0.4 0.6 0.7 1;
a=0 0 1 1 0 0;
bb=firls (17,f,a);
hh,w=freqz (bb,1,512);
plot (w/pi,abs(h),w/pi,abs (hh), ); grid

Proiectarea FN-FIR cu faz liniar prin interpolare


b= intfilt (r,1,alpha)
b= intfilt (r,n,Lagrange)

40

Studiul filtrelor numerice de tip FIR utiliznd mediul


DIDACTICIEL
1) Se lanseaz DIDACTICIEL-ul prin introducerea comenzii:
didact

2) Se studiaz interactiv operatorii de filtraj numeric FIR 1D i 2D cu


ajutorul meniurilor definite n:
Filtering
Image processing

Tem
S se proiecteze un FTJ FIR de ordinul 32, avnd frecvena de tiere de
5 KHz, pentru o frecven de eantionare de 50 KHz, prin metoda eantionrii n
frecven. S se proiecteze apoi un FTS cu aceiai parametrii i un FTB i FOB,
avnd banda de trecere (blocare), cuprins ntre 5 i 10 KHz.

41

LUCRAREA DE LABORATOR NR. 6


FILTRE NUMERICE IIR

Obiectivele lucrrii
1) Studiul operatorilor de filtrare numeric;
2) Asimilarea funciilor MATLAB pentru proiectarea filtrelor cu rspuns
infinit la impuls;
3) Realizarea filtrajului numeric IIR al secvenelor 1D i 2D;
4) Studiul interactiv al filtrelor numerice IIR 1D i 2D utiliznd mediul
DIDACTICIEL.

Desfurarea lucrrii
Proiectarea FILTRELOR NUMERICE tip RII (IIR)
Metoda de proiectare FN tip IIR dintr-un filtru prototip
Proiectarea unui FA
FTJ prototip
buttap, cheb1ap,
ellipap, cheb2ap

Transformare de
frecven lp2lp,
lp2hp, bp2bp,
bp2bs

Proiectare direct n planul variabilei z


[b, a]
butter (n,Wn, options )
[ z , p , k ]
[b, a]
cheby1(n, Rp,Wn, options)
[ z , p, k ]
[b, a]
cheby 2( n, Rp, Rs,Wn, options )
[ z , p , k ]
[b, a]
ellip (n, Rp, Rs,Wn, options )
[ z , p, k ]
42

Discretizare
- biliniar
- impinv

iar:
butterd

cheb1ord
[n,Wn]
(Wp,Ws, Rp, Rs )
cheb
2
ord

ellipord

Exemple de proiectare a unor FA prototip


Proiectai un FA-FTB Cebev tip I de ordinul n 10 cu R p 3 dB i
F1 0.1 (1 2 F1 0.2) i F2 0.5 ()
2
.
[b,a]=cheby1(n,Rp,wn,'ftype','s')
[b,a]=cheby1(10,3,1,'s')
freqs(b,a)
w1=0.2*pi ;
w2=pi;
Bw=w2-w1;
w0=sqrt(w1*w2);
[bt,at]=lp2bp(b,a,w0,Bw);
w=linspace(0.01,1,500)*2*pi;
H=freqs(bt,at,w);
semilogy(w/2/pi,abs(H));
grid

Proiectarea FN prin aproximare n planul z


Proiectai un FN FTB cu banda de trecere [1 KHz, 2 KHz], benzile
de blocare [0, 500 Hz] i [2.5 KHz, 5 KHz], iar R p 1 dB, Rs 60 dB,
f e 10 KHz .
[n,Wn]=buttord([1000,2000]/5000,[500,2500]/5000,1,60);
[b,a]=butter(n,Wn)

sau:

[n,Wn]=ellipord([1000,2000]/5000,[500,2500]/5000,1,60)
[b,a]=ellip(n,1,60,Wn)
w=linspace(0.01,1)*pi;
freqz(b,a,w);

Proiectai un FN-FTS cu:


s = ws = 0.25, s = ds = 0.02
p = wp = 0.35, p = dp = 0.1
prin aproximare direct tip Cebev (n banda de trecere) n planul z.
[n,wt]=cheby1ord(wp,wa,aM,am)
[Bd,Ad]=cheby1(nc1,aM,wt,'high');
freqz(Bd,Ad)

43

Proiectarea FN-IIR prin metoda invarianei la impuls


Proiectai un FN dintr-un FA-tip Butterworth cu n 4, R p 0.3 dB prin
metoda invarianei la impulsul unitate alegnd Fs 10 Hz .
n general funcia folosit este:
[bz,az]=impinvar(b,a,Fs)

Dac Fs lipsete, atunci implicit Fs 1 Hz .


[b,a]=butter(4,0.3,'s');freqs(b,a)
[bz,az]=impinvar(b,a,10)
real(bz); freqz(bz,az)

Exemplu: S se proiecteze un FN-IIR tip trece jos dintr-un FA prin


metoda invarianei rspunsului la impulsul unitate.
p = wp = 0.2, p = dp = 0.1
s = ws = 0.3, s = ds = 0.01
Se va considera frecvena de eantionare Fs 24 KHz .
S determinm parametri FA.
aM 20lg(1 p ) 20lg 0.9 0.915 dB
am 20lg s 20lg 0.01 40 dB
S determinm ordinul FA-Butterworth care satisface aceste condiii:
[n,Wt]=butterord(wp,ws,aM,am,s);

S proiectm FA-Butterworth:
[b,a]=butter (n,Wt,s);

S analizm FA proiectat:
freqz(Ba,Aa)

Se proiecteaz FN din FA prototip:


[Bd,Ad]=impinvar(Ba,Aa,Fs)

Comentariu: n Matlab: h[n] ha (nTs ) i nu h[ n] Ts ha (nTs ) .


n acest ultim caz se va modifica Bd astfel:
Bd Bd / Ts
Se analizeaz FN obinut:
freqz(Bd,Ad)

44

Exemplu: Proiectai un FN FTS cu:


ws = s = 0.25, s = 0.02 = ds
wp = p = 0.35, p = 0.1 = dp
dintr-un FA FTS de referin prin metoda invarianei la impulsul unitate pentru
Fs 10 KHz .
omgp=wp*Fs;omgs=ws*Fs;aM=20*log10(1/(1-dp));am=20*log10(1/ds);
[n omgt]=cheby1ord(omgp,omgs,aM,am,s);
[Ba,Aa]=cheby1(n,aM,omgp,high,s);
figure(1); freqs(Ba,Aa)
[Bd,Ad]=impinvar(Ba,Aa,Fs);
figure(2); freqz(Bd,Ad)

Proiectarea FN IIR prin transformarea biliniar


Proiectarea FN tip IIR dintr-un FA folosind transformarea biliniar
[zd,pd,kd]=bilinear(z,p,k,Fs,Fp)

unde Fp este opional i precizeaz frecvena de preaccentuare.


[bd,ad]=bilinear(b,a,Fs,Fp)

H ( z ) H (s)

z 1
z 1
)
.
cu s e j iar z e j (, ) i (,

Rezult: 2arctg
2 fs
Opional, pentru Fp 1 Hz :
s 2 fs

H ( z ) H (s)

2f s
s
f p
tg

f s

z 1
,
z 1

f p
tg

f s

2arctg
2 f p

Proiectarea FN IIR dintr-un FA folosind metoda biliniar


S se proiecteze un FN FTJ plecnd de la un FA FTJ de tip
Butterworth, Cebev I, Cebev II i Eliptic pentru:
wp = p = 0.2, p = 0. 1 = dp
ws = s = 0.3, s = 0.01 = ds
S determinm parametrii FA:
aM 20lg(1 - p ) 20lg 0.9 0.915 dB
am 20lg s 20lg 0.01 40 dB
(2 / T )tg( / 2)
45

S proiectm FA-prototip:
[nb,wb]=butterord(wp,ws,aM,am,s)
[nc1,wc1]=cheby1ord(wp,ws,aM,am,s)
[nc2,wc2]=cheby2ord(wp,ws,aM,am,s)
[nel,wel]=ellipord(wp,ws,aM,am,s)

S proiectm cte un FA prototip:


[Bb,Ab]=butter(nb,wb,s)
[Bc1,Ac1]=cheby1(nc1,aM,wc1,s)
[Bc2,Ac2]=cheby2(nc2,aM,wc2,s)
[Bel,Ael]=ellip(nel,aM,am,wel,s)
[Bbd,Abd]=bilinear(Bb,Ab,1)
[Bc1d,Ac1d]=bilinear(Bc1,Ac1,1)
[Bc2d,Ac2d]=bilinear(Bc2,Ac2,1)
[Beld,Aeld]=bilinear(Bel,Ael,1)
freqz(B_d,A_d)

Exemplu: Proiectai un FN - FTS pentru:


ws = s = 0.25, s = 0.02= ds
wp = p = 0.35, p = 0. 1 = dp
dintr-un FA FTS de referin prin metoda transformrii biliniare. Se va
considera T 1 .
T=1; omgp=(2/T)*tan(wp/2); omgs=(2/T)*tan(ws/2);
aM=20*log10(1/(1-dp)); am=20*log10(1/ds);
[n,ongt]=cheby1ord(omgp,omgs,aM,am,high,'s');
[Ba,Aa]=cheby1(n,aM,omgt,'high','s');
wa=linspace(0.1,1,500)*2*pi; figure(1),freqs(Ba,Aa);
[Bd,Ad]=bilinear(Ba,Aa,1/T); figure(2),freqz(Bd,Ad,);

Proiectarea FN- IIR prin optimizarea n planul z


Proiectarea unui FN IIR care aproximeaz n sensul erorilor ptratice
minime o caracteristic de frecven folosete funcia:
[b,a]=yulewalk(n,f,m)

unde:

m un vector cu valorile amplitudinilor dorite


f un vector cu valorile frecvenelor specificate

Exemplu: Proiectai un FN de gradul n 8 de tip trece jos, a crui


caracteristic de frecven este specificat prin:
f=[0 0.6 0.6 1]; m=[1 1 0 0 ];
[b,a]=yulewalk(8,f,m);[h,w]=freqz(b,a,128);
plot(f,m,w/pi,abs(h),--)

46

Proiectarea unui FN tip Butterworth generalizat:


[b,a]=maxflat(nb,na,Wn)
[b,a,b1,b2]=maxflat(na,nb,Wn)
[b,a,b1,b2]=maxflat(nb,na,Wn,design_flat)

Studiul filtrelor numerice IIR utiliznd mediul DIDACTICIEL


1) Se lanseaz DIDACTICIEL-ul prin introducerea comenzii:
didact

2) Se studiaz interactiv operatorii de filtraj numeric IIR 1D i 2D cu


ajutorul meniurilor definite n:
Filtering
Image processing

Tem
S se proiecteze un FN FTJ IIR plecnd de la un FA FTJ de tip eliptic,
prin metoda invarianei la impuls i metoda transformrii biliniare pentru:
wp = p = 0.1, p = 0.1 = dp
ws = s = 0.2, s = 0.001 = ds
Se va considera frecvena de eantionare Fs 100 KHz .

47

LUCRAREA DE LABORATOR NR. 7


ESTIMARE SPECTRAL I ANALIZ TIMP-FRECVEN

Obiectivele lucrrii
1) Studiul estimatorilor spectrali clasici, parametrici i neparametrici;
2) Studiul metodelor de analiz timp-frecven a proceselor nestaionare;
3) Utilizarea funciilor MATLAB pentru implementarea tehnicilor de
estimare spectral i de analiz timp-frecven;
4) Studiul interactiv al metodelor de estimare spectral i de analiz
timp-frecven utiliznd mediul DIDACTICIEL.

Desfurarea lucrrii
Estimatorul spectral simplu
2
Fie P un proces alb, gaussian, centrat ( m p 0 ) i de dispersie p 0,25 ,
definit pe 2048 eantioane. S se realizeze analiza spectral a acestui proces
utiliznd estimatorul spectral simplu.
a) S se determine deplasarea i dispersia estimatorului.
b) S se refac aceeai analiz pentru 512, 1024 i 4096 eantioane.
c) S se verifice c acest estimator este deplasat i c dispersia sa nu
depinde de durata observaiei (estimator inconsistent).

longueur_P=2048;
P=randn(1,longueur_P)*sqrt(0.25);
[spectre_simple,Frecventa]=periodo_simple(P,longueur_P);
semilogy(Frecventa,spectre_simple,'b');
xlabel('Frecventa normalizata');
ylabel('Amplitudine (dB)');
title('Periodograma simpla');
biais=mean(spectre_simple)
variance=std(spectre_simple)^2

Estimatorul spectral mediat


n cazul aceluiai proces aleator s se realizeze analiza spectral folosind
estimatorul spectral mediat. S se studieze influena numrului de secvene
folosite pentru mediere. S se determine deplasarea i dispersia estimatorului.
48

longueur_sequence=256;
[spectre_moyenne,Frecventa]=periodo_moyenne(P,longueur_sequence);
semilogy(Frecventa,spectre_moyenne,'b');
xlabel('frecventa normalizata');
ylabel('Amplitudine (dB)');
hold on;
longueur_sequence=128;
[spectre_moyenne,Frecventa]=periodo_moyenne(P,longueur_sequence);
semilogy(Frecventa,spectre_moyenne,'--r');
title('Periodograma mediata');
legend('mediere pe 8 ferestre','mediere pe 16 ferestre');

S se verifice c acest estimator este tot deplasat, dar consistent. Ce se


poate spune despre variaia rezoluiei frecveniale n raport cu numrul de
seciuni mediate ?
Rezultatele se vor trece ntr-un tabel de tipul:
Lungimea seciunilor

Rezoluia frecvenial

f
fe

Dispersia

512
256
128
64

Estimatorul spectral modificat


S se realizeze analiza spectral a aceluiai proces aleator folosind
estimatorul spectral modificat. S se studieze influena numrului de secvene
folosite pentru mediere i a diferitelor ferestre utilizate pentru netezire. S se
determine deplasarea i dispersia estimatorului.
fenetre=[boxcar(longueur_sequence)];
fenetre=fenetre*sqrt(longueur_sequence/ sum(fenetre.*fenetre));
fenetre=fenetre.';
[spectre_modifie,Frecventa]=periodo_modifie(P,
longueur_sequence,fenetre);
semilogy(Frecventa,spectre_modifie,'b');
xlabel('frecventa normalizata');
ylabel('Amplitudine (dB)');
hold on;
title('Periodograma modificata');

49

Rezoluia dinamic
S se realizeze analiza spectral a unui semnal compus din dou sinusoide
afectate de zgomot. Parametrii componentelor semnalului sunt urmtorii:
prima sinusoid:
a doua sinusoid:
zgomot alb gaussian:
frecven = 25 Hz
frecven = 50 Hz
medie = 0
amplitudine = 1
amplitudine = 0.01
deviaie standard = 0.031
Frecvena de eantionare se consider 200 Hz. Lungimea K a semnalului
va lua valorile urmtoare : K ={512, 1024, 2048, 4096}.
S se testeze cei trei estimatori spectrali studiai anterior pentru: { K =512,
L =2}, { K =1024, L =4}, { K =2048, L =8}, { K =4096, L =16} i ferestrele
rectangular, Hamming i Blackman, L fiind numrul de subsecvene n care
este mprit secvena iniial.
longueur_signal=512;
t=0:1/200:(longueur_signal/200)-1/200;
y1=sin(2*pi*25*t); y2=0.01 * sin(2*pi*50*t);
bruit=randn(1,longueur_signal); signal=y1+y2+bruit*0.031;
[spectre_simple,Frecventa]=periodo_simple(signal,
longueur_signal);
semilogy(Frecventa,spectre_simple,'b'); title('512 puncte');
longueur_sequence=256;
[spectre_moyenne,Frecventa]=periodo_moyenne(signal,
longueur_sequence);
semilogy(Frecventa,spectre_moyenne,'b');
title('K=512, L=2');
longueur_sequence=256;
fenetre=[hamming(longueur_sequence)];
fenetre=fenetre*sqrt(longueur_sequence/ sum(fenetre.*fenetre));
fenetre=fenetre.';
[spectre_modifie,Frecventa]=periodo_modifie(signal,
longueur_sequence,fenetre);
semilogy(Frecventa,spectre_modifie,'b');title('Hamming');
xlabel('frecventa normalizata');ylabel('Amplitudine')

Proces aleator AR
S se genereze un zgomot alb, gaussian, centrat, de dispersie 2 =0.25.
S se filtreze apoi acest semnal cu ajutorul unui filtru, avnd caracteristica
1
de transfer
.
1 0,5 z 1 0,75 z 2
S se identifice procesul AR rezultat i s se regseasc valorile
parametrilor ( 2 , a1 , a2 ) corespunztor datelor generate. Se va presupune
cunoscut ordinul procesului ( p 2 ).
bruit=randn(1,2048)*0.5;

50

b=1;a=[1 0.5 0.75];


y=filter(b,a,bruit); y=y.';
[coef,sigma2]=parametre_AR(y,2);
title('Polii si zerourile unui proces A.R. de ordinul 2');
ordre=2;dsp=0;
for nu=0:200
denominateur=1;
for ind=1:ordre
coef(ind+1,1);
coefm=coef(ind+1,1)*exp(-2*pi*j*ind*nu/200);
denominateur=denominateur+coefm ;
end;
dsp=[dsp sigma2/(abs(denominateur).^2)];
end;
nu=0:1/200:0.5;
plot(nu,dsp(1,1:length(nu)));
title('Raspunsul in frecventa al filtrului');
xlabel('frecventa normalizata');
ylabel('Amplitudine');

Analiza spectral de nalt rezoluie parametric


S se genereze o sinusoid pur de frecven 50 Hz eantionat la 200 Hz
(definit pe 4096 eantioane). Reprezentai densitatea sa spectral de putere
considernd acest semnal ca un proces AR, al crui ordin se va determina
folosind criteriul lui Akaike.
longueur=4096;t=0:1/200:(longueur/200)-1/200; y=sin(2*pi*50*t);y=y.';
dsp=[];FPE=zeros(1,10);
for ordre=1:10
[coef,sigma2]=parametre_AR(y,ordre);
FPE(1,ordre)=((longueur+ordre)/(longueur-ordre))*sigma2;
[mini,position]=min(FPE);
ordre_selectionne=position;
end
[coef,sigma2]=parametre_AR(y,ordre_selectionne);
for nu=0:200
denominateur=1;
for ind=1:ordre_selectionne
coef(ind+1,1);
coefm= coef(ind+1,1)*exp(-2*pi*j*ind*nu/200);
denominateur=denominateur+coefm ;
end;
dsp=[dsp sigma2/(abs(denominateur).^2)];
end;
nu=0:1/200:0.5; dsp=dsp/max(dsp);
plot(nu,dsp(1,1:length(nu))); title('DSP a semnalului');
xlabel('frecventa normalizata');ylabel('Amplitudine');

51

Spectrograma unui semnal chirp


Un semnal MLF are urmtoarea expresie analitic:
s (t ) sin((2 f1 2 t )t 0 )
unde ( f 2 f1 ) /(2 Pulselength) , Pulselength fiind durata semnalului.
a) S se genereze un astfel de semnal pentru 0 0 .
b) S se reprezinte semnalul n domeniile temporal i frecvenial.
c) S se reprezinte acelai semnal n planul timp-frecven cu ajutorul
spectrogramei.
a)

f1=2000;
f2=8000;
pulselength=0.025;
Fe=20000;
t=(0:1/Fe:pulselength);
beta=(f2-f1)/(2*pulselength);
chirp=sin(2*pi*(f1+beta*t).*t);
chirp2=vco(sawtooth((2*pi/pulselength)*t,1), [f1/Fe,f2/Fe]*Fe,Fe);
figure(1);clf;
subplot(211);
plot(t,chirp);
xlabel('Timp');
ylabel('Amplitudine');
title('Analiza unei modulatii liniare de frecventa')

b)

C=fftshift(abs(fft(chirp)).^2);
lc=length(chirp);
mc=lc/2;
freq=(-mc:1:mc-1)*Fe/lc;
subplot(212);
plot(freq,C);
xlabel('Frecventa [Hz]');
ylabel('Densitatea spectrala de putere')

c)

Wsize=32;
[Cspec,F,T] = specgram(chirp,128,Fe,Wsize);
figure(2);clf;
imagesc(1000*T,F/1000,abs(Cspec));
xlabel('Timp [ms]');
ylabel('Frecventa [kHz]');
title('Analiza unei modulatii liniare de frecventa')

Ce concluzie se poate trage n privina informaiei aduse de cele 3


reprezentri ?

52

Compromisul rezoluie spectral/rezoluie temoral


S se genereze un semnal compus dintr-o sinusoid i un Dirac.
S se analizeze acest semnal cu ajutorul spectrogramei pentru diverse
dimensiuni ale ferestrei de analiz.
S se interpreteze rezultatele obinute.
Fe=10000; f1=1000; f2=4000;
T=0.015; t=[0.005:1/Fe:T];
delta=0.005*Fe;
sig=[zeros(1,delta), sin(2*pi*f1*t), zeros(1,delta),
5*ones(1,1), zeros(1,2*delta)];
subplot(311);
plot(0:1000*(1/Fe):1000*(length(sig)/Fe-1/Fe),sig);
title('Semnal temporal');
xlabel('Timp [ms]');ylabel('Amplitudine');
[S,F,T] = specgram(sig,128,Fe,64);
subplot(312); imagesc(T*1000,F/1000,abs(S));
xlabel('Timp [ms]'); ylabel('Frecventa [kHz]');
Title('Spectrograma cu o fereastra de 64 puncte'),
[S,F,T] = specgram(sig,128,Fe,16);
subplot(313); imagesc(T*1000,F/1000,abs(S));
xlabel('Timp [ms]'); ylabel('Frecventa [kHz]');
title('Spectrograma cu o fereastra de 16 puncte')

Scalograma
Scalograma este o distribuie de energie care se obine ca modulul la
ptrat al transformatei wavelet continue.
a) Undioara Morlet este definit prin relaia:
1
2

1
2 4

t
h(t ) ( t0 ) exp
exp( j2 f 0t)
t 0
2

Aceasta nu verific proprietatea de medie nul. Pentru a aproxima aceast


condiie, conservnd un numr mic de oscilaii Morlet a propus compromisul:
2f 0t0 5.4285 .
S se vizualizeze alura acestei undioare pentru diveri parametri.
b) Punei n eviden variaiile rezoluiilor temporal i frecvenial n
funcie de poziia n planul timp-frecven. Se va utiliza un semnal compus
dintr-un Dirac i dou sinusoide trunchiate, de frecvene diferite.
a)

[onde,ts]= ond_mor(129, 10, 100);


figure(1);clf;
subplot(211);plot(ts,real(onde));
hold on;plot(ts,abs(onde),'r');
grid;title('Undisoara Morlet')

53

b)

Fe=64000;
f1=500; f2=8000; T=0.01;
t=[0:1/Fe:T];
delta=0.005*Fe;
sig1=[zeros(1,delta), sin(2*pi*f1*t), zeros(1,2*delta)];
sig2=[zeros(1,delta),sin(2*pi*f2*t), zeros(1,2*delta)];
sig=sig1+sig2;sig(4*delta+1:4*delta+5)=10*ones(1,5);
figure(1);subplot(212); plot(sig);
title('Semnal studiat: suma a doua sinusoide si un Dirac')
NB_OCT=8;NB_VOIES=1;
[TOnd_SIG, freqs] = morlet( sig, Fe, length(sig), Fe/2,
NB_OCT, NB_VOIES);
vec_Timp=[0:1/Fe:length(sig)/Fe]*1000;vec_freqs=[0:1:7];
figure(2);clf;colormap(gray);
imagesc(vec_Timp,vec_freqs,2*log10(abs(TOnd_SIG)));
set(gca,'YTickLabels',250*2.^([7:-1:0]));
title('Scalograma unui Dirac si doua sinusoide');
xlabel('Timp [ms]');ylabel('Frecventa [Hz]')

Distribuia Wigner-Ville
a) S se calculeze distribuia Wigner-Ville a unui semnal MLF.
b) S se genereze un semnal compus din 3 sinusoide trunchiate: dou
debutnd la momentul t1 , de frecvene f1 i f 2 diferite, a treia debutnd la
momentul t2 , de frecven f1 .
S se reprezinte distribuia Wigner-Ville a acestui semnal i s se
concluzioneze asupra interferenelor temporale i frecveniale.
a)

f1=2000; f2=8000;T=0.008;Fe=20000;t=(0:1/Fe:T);
beta=(f2-f1)/(2*T); delta=0.001*Fe;
x=[zeros(1,delta), sin(2*pi*(f1+beta*t).*t),
zeros(1,delta)]; [W,Wr,abscisse]=wigner(x,Fe);
max(max(real(W)))
max(max(imag(W)))
sum(sum(W))
sum(x.^2)

b)

f1=1000;deltaf=3000;f2=f1+deltaf;
Fe=round(3*f2);T=0.01;t=[0:1/Fe:T];
deltat=0.01*Fe;marge=20;
sig1=[zeros(1,marge), sin(2*pi*f1*t),
zeros(1,T*Fe+deltat+marge)];
sig2=[zeros(1,marge),sin(2*pi*f2*t), zeros(1,T*Fe+deltat+marge)];
sig3=[zeros(1,marge+T*Fe+deltat),sin(2*pi*f1*t), zeros(1,marge)];
sig=sig1+sig2+sig3;
[W,Wr,fwv,abscisse]=wigner(sig,Fe); [N1,N2]=size(W);

54

figure(2);clf; zoom on ;
subplot(311); milieuf=round(((f1+f2)/2)/(Fe/2)*N1);
plot(abscisse,Wr(milieuf,:)); xlabel('Timp (ms)');
title('Studiul interferentelor')
subplot(312);milieut=round(marge+T*Fe+deltat);
plot(fwv,Wr(:,milieut));xlabel('Frecventa [kHz]')
subplot(313);repere=round(marge+T/2*Fe);
plot(fwv,Wr(:,repere));xlabel('Frecventa [kHz]')

Analiza multirezoluie
S se studieze cu ajutorul analizei multirezoluie un semnal format dintr-o
sinusoid cu zgomot. Pentru analiz se va folosi undioara lui Haar.
S se realizeze sinteza aceluiai semnal plecnd de la coeficienii
descompunerii i s se arate c este posibil filtrarea semnalului anulnd o parte
dintre acetia.
clear;Fe=5000;taille=1024;
Timp=[1:1:taille]/Fe;numpts=length(Timp);
data=sin(2*pi*25*Timp)+rand(1,taille);
[approx,detail]=analysehaar(data);
newsig=synthesehaar(approx,detail);
selection=detail;selection(8:10,:)=zeros(3,numpts);
sig_debruite=synthesehaar(approx,selection);
figure(1);clf; zoom on
for plt = 1:size(detail,1),
subplot(10,2,2*(plt-1)+1),plot(Timp,detail(plt,1:numpts));
grid;
if (plt == 1),
title('Detaliu');
end;
if (plt == 10);
xlabel('Timp [s]');
end
end
for plt = 1:size(approx,1),
subplot(10,2,2*plt),plot(Timp,approx(plt,1:numpts));grid
if (plt == 1),
title('Aproximare');
end;
if (plt == 10);
xlabel('Timp [s]');
end
end
figure(2);clf;zoom on;
subplot(311);plot(Timp,data);title('Semnal original');
subplot(312);plot(Timp,newsig);title('Semnal reconstruit');
subplot(313);plot(Timp,sig_debruite);
title('Semnal filtrat');xlabel('Timp [s]')

55

Studiul operatorilor de estimare spectral i analiz


timp-frecven utiliznd mediul DIDACTICIEL
1) Se lanseaza DIDACTICIEL-ul prin introducerea comenzii:
didact

2) Se studiaza interactiv operatorii de estimare spectral i analiz timpfrecven cu ajutorul meniurilor definite in:
Fourier analysis\Parametric Models
Fourier analysis\Estimators
Deep Study\Time-Frequency Analysis

Tem
S se realizeze analiza spectral folosind algoritmul MUSIC a unui
semnal compus din dou sinusoide afectate de zgomot. Parametrii
componentelor semnalului sunt urmtorii:
prima sinusoid:
a doua sinusoid:
zgomot alb gaussian:
frecven = 25 Hz
frecven = 30 Hz
medie = 0
amplitudine = 1
amplitudine = 1
deviaie standard=0.25
Frecvena de eantionare se consider 100 Hz. Se consider c se dispune
de 32 eantioane ale semnalului util.
(Indicaie: matricea de autocorelaie se estimeaz folosind subsecvene ale
semnalului, obinute prin parcurgerea acestuia cu o fereastr glisant de lungime
16, iar dimensiunea subspaiului semnal se consider egal cu 4).

56

LUCRAREA DE LABORATOR NR. 8


DETECIA SECVENELOR NUMERICE

Obiectivele lucrrii
1) Studiul caracteristicilor filtrului adaptat;
2) Investigarea performanelor diferitelor structuri de receptoare bazate pe
diferite filtre prin msurarea probabilitilor de eroare pe bit;
3) Utilizarea diagramei ochiului ca instrument de analiz al diferiilor
parametrii ai procesului de detecie;
4) Asimilarea funciilor MATLAB pentru implementarea diferitelor
tehnici de detecie.

Desfurarea lucrrii
Caracteristicile filtrului adaptat
a) S se genereze un impuls rectangular unitar de durat 1 ms. S se
reprezinte funcia pondere a filtrului adaptat cu acest tip de semnal. S se
reprezinte ieirea filtrului adaptat atunci cnd semnalul generat se aplic la
intrarea sa. S se determine momentul cnd semnalul de ieire atinge maximul.
b) S se repete punctul a) pentru un impuls triunghiular unitar de durat
10 ms.
c) S se repete punctul a) pentru un cod manchester unitar de durat
10 ms. S se prezic funcia pondere a filtrului adaptat corespunztor i ieirea
filtrului cnd la intrare i se aplic acest semnal.
d) S se genereze secvena [1 0 0 1 0] codificat NRZ bipolar, pentru un
debit binar de 1 kbps i o amplitudine de 1 V. S se determine ieirea filtrului
adaptat cnd la intrare i se aplic acest semnal.
e) S se foloseasc acelai filtru adaptat pentru filtrarea aceleeai secvene
codificate NRZ unipolar.
a)

r=wave_gen(1,'polar_nrz',1000);
rm=match('polar_nrz',r);
figure ; subplot(3,1,1)
waveplot(r)
subplot(312)
match('polar_nrz')
subplot(313); waveplot(rm)

57

b)

r=wave_gen(1,'triangle',1000);
rm=match('triangle',r);
figure
subplot(3,1,1)
waveplot(r)
subplot(312)
match('triangle')
subplot(313)
waveplot(rm)

c)

r=wave_gen(1,'manchester',100);
rm=match('manchester',r);
figure
subplot(3,1,1)
waveplot(r)
subplot(312)
match('manchester')
subplot(313)
waveplot(rm)

d)

x5=wave_gen([1 0 0 1 0],'polar_nrz',1000);
rm=match('polar_nrz',x5);
figure
subplot(211)
waveplot(x5)
subplot(212)
waveplot(rm)

e)

x5=wave_gen([1 0 0 1 0],'unipolar_nrz',1000);
rm=match('polar_nrz',x5);
figure
subplot(211)
waveplot(x5)
subplot(212)
waveplot(rm)

Detecia semnalelor
S se genereze o secven binar de lungime 10 i semnalul care o
codific NRZ polar. S se aplice acest semnal unui canal avnd banda de
4.9
kHz i s se suprapun peste acesta un zgomot alb, aditiv, gaussian de putere 2
W. S se aplice apoi semnalul rezultat filtrului adaptat corespunztor. S se
concluzioneze asupra erorilor de detecie atunci cnd decizia se ia plecnd de la
semnalul brut sau folosind semnalul filtrat.
b10=binary(10);
x10=wave_gen(b10,'polar_nrz',1000);
subplot(311)

58

waveplot(x10)
y10=channel(x10,1,2,4900);
subplot(312)
waveplot(y10)
subplot(313)
z10=match('polar_nrz',y10);
waveplot(z10)

Receptor cu filtru adaptat


a) S se genereze o secven binar de lungime 2000 i semnalul care o
codific NRZ polar. S se aplice acest semnal unui canal avnd banda de
4.9
kHz i s se suprapun peste acesta un zgomot alb, aditiv, gaussian de putere 0.5
W. S se aplice apoi semnalul rezultat filtrului adaptat corespunztor.
S se reprezinte apoi diagrama ochiului corespunztoare ieirii filtrului
adaptat. Pe baza acesteia s se determine momentele de eantionare i valoarea
de prag optime pentru detecie.
S se compare probabilitatea de eroare estimat pe baza acestui
experiment cu cea teoretic.
b) S se repete punctul a) pentru puteri ale zgomotului de 1, 1.5 i 2 W.
a)

b=binary(2000);x=wave_gen(b,'polar_nrz');
y=channel(x,1,.5,4900);
z=match('polar_nrz',y);
eye_diag(z)
detect(z,0,1e-3,b)
pte=.5*(1-erf(sqrt(5/.5)))

b)

b=binary(2000);x=wave_gen(b,'polar_nrz');
y=channel(x,1,1,4900);
z=match('polar_nrz',y);
detect(z,0,1e-3,b)
pte=.5*(1-erf(sqrt(5/1)))
b=binary(2000);x=wave_gen(b,'polar_nrz');
y=channel(x,1,1.5,4900);
z=match('polar_nrz',y);
detect(z,0,1e-3,b)
pte=.5*(1-erf(sqrt(5/1.5)))
b=binary(2000);x=wave_gen(b,'polar_nrz');
y=channel(x,1,2,4900);
z=match('polar_nrz',y);
detect(z,0,1e-3,b)
pte=.5*(1-erf(sqrt(5/2)))

59

Receptor cu filtru trece jos


a) S se aplice un impuls unui filtru RC de ordinul 1, cu banda de 1 kHz.
S se reprezinte ieirea filtrului i s se determine amplitudinea maxim a
acesteia.
b) S se genereze o secven de zgomot alb, gaussian, centrat de putere
0.5 W, coninnd 2000 de eantioane. S se aplice apoi aceast secven filtrului
RC i s se determine puterea de ieire a zgomotului.
c) S se genereze o secven binar de lungime 2000 i semnalul care o
codific NRZ polar.
S se aplice acest semnal unui canal avnd banda de 4.9 kHz i s se
suprapun peste acesta un zgomot alb, aditiv, gaussian de putere 0.5 W.
S se aplice apoi semnalul rezultat filtrului RC.
S se reprezinte diagrama ochiului corespunztoare semnalului de ieire.
Pe baza acesteia s se determine momentele de eantionare i valoarea de prag
optime pentru detecie.
S se decodifice secvena binar plecnd de la z_lpf. S se compare
probabilitatea de eroare rezultat cu cea obinut n cazul filtrului adaptat.
d) S se repete punctele a)-c) pentru puteri ale zgomotului de 1, 1.5 i 2 W
i apoi pentru o band a filtrului de 500 Hz.
e) S se aplice secvena [1 0 0 1 0] codificat NRZ polar, pentru un debit
binar de 1 kbps i o amplitudine de 1 V, la intrarea unui filtru RC practic i s se
reprezinte semnalul de ieire. S se compare probabilitatea de eroare rezultat cu
cea obinut n cazul filtrului adaptat i n cazul filtrului trece-jos ideal.
a)

r=wave_gen(1,'unipolar_nrz');
r_lpf=rc(1000,r);
subplot(211)
waveplot(r)
subplot(212)
waveplot(r_lpf)

b)

n=gauss(0,0.5,2000);
meansq(rc(1000,n))

c)

b=binary(2000);
x=wave_gen(b,'polar_nrz');
y=channel(x,1,.5,4900);
z_lpf=rc(1000,y);
clf,eye_diag(z_lpf);
detect(z_lpf,prag,moment_esantionare,b);

e)

x5=wave_gen([1 0 0 1 0],'unipolar_nrz',1000);
y5=int_dump(x5);
clf;waveplot(x5);hold on;waveplot(5*y5)

60

LUCRAREA DE LABORATOR NR. 9


PRELUCRAREA MULTIRAT A SECVENELOR
SCHIMBAREA RATEI DE EANTIONARE

SAU

Obiectivele lucrrii
1) Studiul operaiilor de baza specifice prelucrrii multirat a secvenelor
numerice;
2) Asimilarea funciilor MATLAB dedicate prelucrrii multirat a
secvenelor;
3) Studiul unor exemple care s ilustreze utilizarea prelucrrii multirat n
diverse aplicaii ale prelucrrii numerice.

Desfurarea lucrrii
Comenzi MATLAB pentru prelucrarea multirat
decimate - realizeaz funcia de decimare a unei secvene x[ n] cu M ,

astfel ncat rezult secvena decimat x[n] x[nM ] cu M N * .


interp - realizeaz funcii de interpolare a unei secvene x[ n] cu L ,
astfel
nct rezult secvena interpolat x[n] x[n / L] , cu
n 0, L, 2 L, 3L, ...

Decimarea si interpolarea secventelor


Generai cu ajutorul comenzilor MATLAB versiunile decimate i
interpolate cu 4 ale unei secvene armonice. Verificai refacerea secvenei dup
decimare i interpolare.
Fe=32000;T=1/Fe;t=0:T:1;
x=sin(2*pi*1000*t)+0.3*sin(2*pi*3000*t);
figure(1)
stem(x(1:33));xlabel('nT, T=31.75 microsec');grid
xd=decimate(x,4);figure(2)
stem(xd(1:9));xlabel('nTd, Td=4T=125 microsec');grid
xr=interp(xd,4);figure(3)
stem(xr(1:33));xlabel('nT, T=31.75 microsec');grid

Analizai transformatele Fourier ale secvenelor: iniial, decimat,


interpolat i refcut.
61

Interpolatorul de ordinul zero


Un interpolator de ordinul zero transform o secven x[n] aplicat la
intrarea sa repetnd fiecare valoare a secvenei de L ori, astfel inct funcia
pondere a unui astfel de interpolator este:
h0 [n] [ n] [n -1] [ n - 2] ... [ n - ( L -1)]
Semnalul interpolat y[n] se obine din relaia y[n] x[n] h0 [ n] .
Programul MATLAB de mai jos ilustreaz interpolarea de ordinul zero cu
L 3 pentru secvena x[n] [2 1 0.5] .
x=[2 1 0.5 0 0 0 0 0];xe=expa(x,3);
h0=[1 1 1 0 0 0 0 0];y=conv(xe,h0);
subplot(311)
stem(x);title('Semnalul x[n]');grid
subplot(312)
stem(xe);title('Semnalul xe[n]');grid
subplot(313)
stem(y);title('Semnalul y[n]');grid

n secvena de mai sus s-a folosit o funcie auxiliar expa.m, care


insereaz ntre fiecare dou eantioane succesive ale secvenei x[n] un numr L
de zerouri.
Iat codul MATLAB al acestei functii:
function xe=expa(x,L)
N=L*length(x);xe=zeros(1,N);xe(1:L:N)=x;

Transmultiplexorul numeric
Transmultiplexorul realizeaz n sens bidirecional legtura dintre
formatele de linie numerice i analogice ale sistemelor de multiplexare a
canalelor cu diviziune n timp (MDT) i a celor cu diviziune n frecven
(MDF).
n figura 9.1 este prezentat cazul simplu al unui multiplexor cu dou
canale.
Semnalul x[n] este, n acest caz, rezultat din conversia A/N a unui semnal
de linie analogic, ce conine spectrele de frecven a dou cai multiplexate n
frecven (vezi fig. 9.1 b)
Semnalele y0 i y1 sunt secvenele corespunztoare celor dou ci n
format numeric separate din semnalul x[n] . Semnalele y0 i y1 , pot fi utilizate
separat sau pot fi multiplexate n timp, ntr-un format numeric specific
echipamentelor MDT.
Prelucrarea numeric a semnalului x[n] pentru obinerea semnalelor y0 i
y1 , precum si prelucrarea lor invers, pentru refacerea semnalului x[n] pot fi
urmrite cu uurin pe schema bloc a transmultiplexorului i pe spectrele
semnalelor notate de la 1 la 8.
62

2
H40
3

x n

4
3

H1

b
c

6
5

y0 2n

y1 2n
8
8

2
7
4
3

H1

4
3

x n

7
4
3
8

2
4
H
0
3

6
5

2
4
3

4
3

6
5

Figura 9.1

Urmtoarea secven MATLAB simuleaz funcionarea acestui


transmultiplexor. Pentru simplitatea programului am considerat c cele dou
canale sunt caracterizate de ctre o singur sinusoid de frecven (joas) de
200 Hz i una (nalt) de 5000Hz.
Fe=16000;t=0:1/Fe:0.01;
x=sin(2*pi*200*t)+sin(2*pi*5000*t);
X=abs(fftshift(fft(x,512)));vf=((-255:256)/512)*Fe;
figure(1),subplot(211),plot(vf,X),

63

title('Spectrul semnalului x[n]')


b0=fir2(50,[0 .5 .5 1],[1 1 0 0]);
b1=fir2(50,[0 .5 .5 1],[0 0 1 1]);
[h0,w0]=freqz(b0,1,512);[h1,w1]=freqz(b1,1,512);
subplot(212),plot(w0/pi,abs(h0),w1/pi,abs(h1)),
title('Spectrele H0 si H1')
x0=filter(b0,1,x);x1=filter(b1,1,x);
x0d=x0(1:2:length(x0));y0=x0d;
x1d=x1(1:2:length(x1));
td=(0:length(x0d)-1)/Fe;
X0=abs(fftshift(fft(x0,512)));
X1=abs(fftshift(fft(x1,512)));
figure(2);subplot(211),plot(vf,X0),
title('Spectrul semnalului x0 sau y0')
subplot(212),plot(vf,X1);
title('Spectrul semnalului x1')
vf=((-255:256)/512)*(Fe/2);
X0d=abs(fftshift(fft(x0d,512)));
X1d=abs(fftshift(fft(x1d,512)));
figure(3);subplot(211),plot(vf,X0d),
title('Spectrul semnalului x0d')
subplot(212),plot(vf,X1d);
title('Spectrul semnalului x1d')
N2=length(x1d);
for k=0:N2-1
y1(k+1)=((-1)^k)*x1d(k+1);
end
figure(4),subplot(211),plot(td,y1),title('Semnalul y1')
Y1=abs(fftshift(fft(y1,512)));
subplot(212),plot(vf,Y1),title('Spectrul semnalului y1')

Proiectarea filtrelor de band ngust


S proiectm un FTJ cu specificaiile date n figura 9.2 a). Fie N gradul
necesar pentru acest filtru (cu banda de tranziie f foarte mic!).
n locul proiectrii acestui filtru, care are f s f p f 100 Hz , s
proiectm un FTJ mai simplu, care are specificaiile prezentate n figura 9.2 b).
Evident, n acest caz: 2 f s 2 f p 2f 200 Hz i, n consecin, ordinul
filtrului va fi N / 2 , care nseamn c n realizarea sa numrul de multiplicri i
de adunri se va reduce de dou ori. Dac cu G ( z ) este notat funcia de transfer
a acestui filtru, atunci caracteristica de transfer a funciei G ( z 2 ) este cea din
figura 9.2 c). ns, acest filtru are dou benzi de trecere. Prima este cea care
intereseaz, iar cea centrat in jurul lui este nedorit. Aceast band poate fi
suprimat cu ajutorul unui filtru trece jos I ( z ) , foarte simplu, a crui
caracteristic de transfer este ilustrat n figura 9.2 d).
Ansamblul format din filtrele caracterizate de funciile de transfer G ( z 2 )
i I ( z ) ndeplinete condiiile initial dorite.
64

H
a

G z
1

p s

G z2

2 p

2 s

I z
1

p s

Figura 9.2

S exemplificm procesul proiectrii ilustrat n figura 15.10 cu urmtorul


program MATLAB n care f p 300 Hz, f s 400 Hz, Fe 8000 Hz, 1 0.02 i
1 0.001 .
Fe=8000;f=[600 800];a=[1 0];
[n,f0,a0,w]=remezord(f,a,[0.01 0.001],Fe);
n
b=remez(n,f0,a0,w);[h,w]=freqz(b,1,1024);
figure(1),
plot(w/pi,20*log10(abs(h)));title('H(z)'),grid
N=2*length(b);be=zeros(1,N);be(1:2:N)=b;
[h2,w2]=freqz(be,1,1024);
figure(2),
plot(w2/pi,20*log10(abs(h2)));title('G(z2)');grid
[n,f0,a0,w]=remezord([300 3600],[1 0],[0.01 0.001],Fe);
n
b3=remez(3,f0,a0,w);[h3,w3]=freqz(b3,1,1024);
figure(3),
plot(w3/pi,20*log10(abs(h3)));title('I(z)');grid
b4=[b3,zeros(1,length(be)-length(b3))];
b5=conv(be,b4);[h5,w5]=freqz(b5,1,1024);
figure(4),
plot(w5/pi,20*log10(abs(h5))),
title('I(z)G(z2)');grid

65