Documente Academic
Documente Profesional
Documente Cultură
=
t
e (2)
Funcia ) (e F sau modulul ei este interpretat ca intensitatea semnalului iniial la frecvena .
Transformarea invers este dat de o formul similar:
e e
t
d F e t f
iwt
) ( ) (
2
}
= (3)
Cele mai importante proprieti ale transformatei Fourier sunt: pentru simplitate, legtura dintre
funcia i transformata sa Fourier va fi notat astfel: ) ( ) ( w F t f . Dac ), ( ) ( ), ( ) ( w G t g w F t f
atunci ) ( ) ( ) ( ) ( w bG w aF t bg t af + + i ) ( ) (
2
w F e a t f
iwa t
.
Convoluia a dou funcii este funcia ) ( * ) ( ) ( t g t f t h = , redat prin formula:
}
= dx x g x t f t h ) ( ) ( ) ( .
Are loc relaia ) ( ) ( ) ( w G w F t h .
Relaia bilateral are forma: ) ( * ) ( ) ( ) ( w G w F t g t f .
Vorbind la general, nu ne asumm faptul c funcia f(t) este real. Dac ntr-adevr este aa, atunci
) ( ) ( w F w F
n
r
a
d
i
a
n
i
27
Program 3_2
Programul dat servete pentru pentru identificarea proprietilor de modificare n timp a
transformatei DTFT.
% Program P3_2
% Proprietile DTFT de modificare n timp
clf;
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/pi,abs(h1));
grid
title('Spectru de valori a secvenei iniiale');
subplot(2,2,2);
plot(w/pi,abs(h2));
grid
title('Spectru de valori a unei secvene modificate n timp');
subplot(2,2,3);
plot(w/pi,angle(h1));
grid
title('Spectrul de faze a secvenei iniiale');
subplot(2,2,4);
plot(w/pi,angle(h2));
grid
title('Spectrul de faze a secvenei modificate n timp');
Rezultatul programului 3_2:
-1 -0.5 0 0.5 1
0
20
40
60
Spectru de valori a secvenei iniiale
-1 -0.5 0 0.5 1
0
20
40
60
Spectru de valori a unei secvene modificate n timp
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Spectrul de faze a secvenei iniiale
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Spectrul de faze a secvenei modificate n timp
28
Program 3_3
Programul dat servete pentru identifcarea proprietilor de modificare a frecvenei DTFT.
% Program P3_3
% Proprietatea de modificare a frecvenei DTFT
clf;
w=-pi:2*pi/255:pi; wo=0.4*pi;
num1=[1 3 5 7 9 11 13 15 17];
L=length(num1);
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/pi,abs(h1)); grid
title('Spectrul de valori a secvenei iniiale');
subplot(2,2,2);
plot(w/pi,abs(h2)); grid
title('Spectrul de valori a secveelor cu frecvena modificat');
subplot(2,2,3);
plot(w/pi,angle(h1)); grid
title('Spectrul de faze a secvenei iniiale');
subplot(2,2,4);
plot(w/pi,angle(h2)); grid
title('Spectrul de faze a secvenelor cu frecvena modificat');
Rezultatul programului 3_3:
-1 -0.5 0 0.5 1
0
50
100
Spectrul de valori a secvenei iniiale
-1 -0.5 0 0.5 1
0
50
100
Spectrul de valori a secveelor cu frecvena modificat
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Spectrul de faze a secvenei iniiale
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Spectrul de faze a secvenelor cu frecvena modificat
29
Program 3_4
Aici este identificat proprietatea de convoluie a transformatei DTFT.
% Program P3_4
% Proprietatea de convoluie a DTFT
clf;
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/pi,abs(hp)); grid;
title('Modulul spectrului');
subplot(2,2,2);
plot(w/pi,abs(h3)); grid;
title('Spectrul de valori a secvenei de convoluie');
subplot(2,2,3);
plot(w/pi,angle(hp)); grid;
title('Suma de faze a spectrului');
subplot(2,2,4);
plot(w/pi,angle(h3)); grid;
title('Spectrul de faze a secvenei de convoluie');
Rezultatul programului 3_4
-1 -0.5 0 0.5 1
0
50
100
Modulul spectrului
-1 -0.5 0 0.5 1
0
50
100
Spectrul de valori a secvenei de convoluie
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Suma de faze a spectrului
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Spectrul de faze a secvenei de convoluie
30
Program 3_5
Acesta este programul de evaluare a proprietii de modulare a transformrii DTFT.
% Program P3_5
% Proprietatea de modulare a DTFT
clf;
w=-pi:2*pi/255:pi;
x1=[1 3 5 7 9 11 13 15 17];
x2=[1 -1 1 -1 1 -1 1 -1 1];
y=x1.*x2;
h1=freqz(x1,1,w);
h2=freqz(x2,1,w);
h3=freqz(y,1,w);
subplot(3,1,1);
plot(w/pi,abs(h1)); grid
title('Spectrul de valori din prima secven');
subplot(3,1,2);
plot(w/pi,abs(h2)); grid
title('Spectrul de valori din a doua secven');
subplot(3,1,3);
plot(w/pi,abs(h3)); grid
title('Spectrul de valori din secvena final');
Rezultatul programului:
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
0
50
100
Spectrul de valori din prima secven
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
0
5
10
Spectrul de valori din a doua secven
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
0
50
100
Spectrul de valori din secvena final
31
Program 3_6
Aici este dezvluit proprietatea de inversare a timpului n trasformarea DTFT.
% Program P3_6
% Proprietatea de inversare a timpului DTFT
clf;
w=-pi:2*pi/255:pi;
num=[1 2 3 4];
L=length(num)-1;
h1=freqz(num,1,w);
h2=freqz(fliplr(num),1,w);
h3=exp(w*L*i).*h2;
subplot(2,2,1);
plot(w/pi,abs(h1)); grid
title('Spectrul de valori a secvenei iniiale');
subplot(2,2,2);
plot(w/pi,abs(h3)); grid
title('Spectrul de valori a secvenei cu timp inversat');
subplot(2,2,3);
plot(w/pi,angle(h1)); grid
title('Spectrul de faze a secvenei iniiale');
subplot(2,2,4);
plot(w/pi,angle(h3)); grid
title('Spectrul de faze a secvenei cu timp inversat');
Rezultatul programului:
-1 -0.5 0 0.5 1
2
4
6
8
10
Spectrul de valori a secvenei iniiale
-1 -0.5 0 0.5 1
2
4
6
8
10
Spectrul de valori a secvenei cu timp inversat
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Spectrul de faze a secvenei iniiale
-1 -0.5 0 0.5 1
-4
-2
0
2
4
Spectrul de faze a secvenei cu timp inversat
32
Program 3_7
Aceast program este utilizat pentru a ilustra principiul de schimbare ciclic a secvenelor de lungime
fix. Pentru aceasta este utilizat funcia MATLAB circshift.
% Program P3_7
% Ilustrarea principiului de schimbare ciclic a secvenelor
clf;
M=6;
a=[0 1 2 3 4 5 6 7 8 9];
b=circshift(a,M);
L=length(a)-1;
n=0:L;
subplot(2,1,1);
stem(n,a);
axis([0,L,min(a),max(a)]);
title('Secvena iniial');
subplot(2,1,2);
stem(n,b);
axis([0,L,min(a),max(a)]);
title('Secvena obinut prin schimbarea ciclic');
Rezultatul programului:
0 1 2 3 4 5 6 7 8 9
0
2
4
6
8
Secvena iniial
0 1 2 3 4 5 6 7 8 9
0
2
4
6
8
Secvena obinut prin schimbarea ciclic
Program 3_8
Aici se dezvluie proprietatea de schimbare ciclic n timpul transformrii DTFT.
% Programul P3_8
% Proprietatea DTFT de schimbare ciclic n timp
clf;
x=[0 2 4 6 8 10 12 14 16];
N=length(x)-1; n=0:N;
y=circshift(x,5);
XF=fft(x);
YF=fft(y);
subplot(2,2,1);
stem(n,abs(XF)); grid
title('DFT a secvenei iniiale');
subplot(2,2,2);
33
stem(n,abs(YF)); grid
title('DFT a secvenei cu schimbare ciclic n timp');
subplot(2,2,3);
stem(n,angle(XF)); grid
title('Faza DFT a secvenei iniiale');
subplot(2,2,4);
stem(n,angle(YF)); grid
title('Faza DFT a secvenei cu schimbare ciclic n timp');
Rezultatul programului:
0 2 4 6 8
0
20
40
60
80
DFT a secvenei iniiale
0 2 4 6 8
0
20
40
60
80
DFT a secvenei cu schimbare ciclic n timp
0 2 4 6 8
-4
-2
0
2
4
Faza DFT a secvenei iniiale
0 2 4 6 8
-4
-2
0
2
4
Faza DFT a secvenei cu schimbare ciclic n timp
Program 3_9
Aici vom stabili legtura ntre transformrile DFT ale prilor secvenelor periodice pare i
periodice impare ale numerelor reale cu transformarea DFT a acestei secvene.
% Programul P3_9
% Legtura ntre transformrile DFT periodice pare i impare
% a prilor secvenelor ale numerelor reale
x=[1 2 4 2 6 32 6 4 2 zeros(1,247)];
x1=[x(1) x(256:-1:2)];
xe=0.5*(x+x1);
XF=fft(x);
XEF=fft(xe);
clf;
k=0:255;
subplot(2,2,1);
plot(k/128,real(XF)); grid;
ylabel('Amplitudinea');
title('Re(DFT\{x[n]\})');
subplot(2,2,2);
plot(k/128,imag(XF)); grid;
ylabel('Amplitudinea');
title('Im(DFT\{x[n]\})');
subplot(2,2,3);
plot(k/128,real(XEF)); grid;
xlabel('Timpul n');
34
ylabel('Amplitudinea');
title('Re(DFT\{x_{e}[n]\})');
subplot(2,2,4);
plot(k/128,imag(XEF)); grid;
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Im(DFT\{x_{e}[n]\})');
Rezultatul programului:
0 0.5 1 1.5 2
-50
0
50
100
A
m
p
l
i
t
u
d
i
n
e
a
Re(DFT{x[n]})
0 0.5 1 1.5 2
-100
-50
0
50
100
A
m
p
l
i
t
u
d
i
n
e
a
Im(DFT{x[n]})
0 0.5 1 1.5 2
-50
0
50
100
Timpul n
A
m
p
l
i
t
u
d
i
n
e
a
Re(DFT{x
e
[n]})
0 0.5 1 1.5 2
-0.5
0
0.5
x 10
-14
Timpul n
A
m
p
l
i
t
u
d
i
n
e
a
Im(DFT{x
e
[n]})
35
Lucrare de laborator Nr.4
Tema: Sisteme discrete liniare n timp continuu cercetate n domeniul de frecven
Scopul lucrii: De studiat proprietile de baz ale sistemelor discrete n timp continuu n domeniul
de frecven.
Noiuni teoretice
Orice sistem discret liniar n timp continuu este complet caracterizat de domeniul de frecven n
secvena de impulsuri de raspuns. Astfel semnalul de ieire poate fi obinut pentru orice sistem de aa tip
prin convoluia secvenei de intrare cu secvena impulsului de raspuns al ei. Anumite categorii de astfel de
sisteme, de asemenea, pot fi caracterizate printr-o ecuaie (de difereniere) liniar cu coefcieni constani.
Pentru aceste categorii de sisteme semnalul de ieire poate fi calculat recursiv pentru orice secven de
intrare. Aplicnd DTFT sau transformata-z la rezultatul convolutiei sau la ecuaia de difereniere,
sistemele discrete liniare i continue n timp pot fi carcterizate in domeniul de frecven. Acest tip de
specificarea sistemelor furnizeaz informaii suplimentare despre comportamentul sistemului, pe lng
faptul c o astfel de specificare a sistemelor acord posibiliti mai uoare de proiectri, realizri i
utilizri n diferite aplicaii.
Comenzile MATLAB utilizate:
Comenzi de uz general
disp
Operatori i simboluri speciale
: . + - * / ; %
Construcii sintactice
function pause
Matrici elementare i operaiile asupra lor
fliplr pi
Funcii elementare
cos abs angle imag log10 real
Grafic bidimensional
axis plot stem title xlabel ylabel grid
Funcii grafice de uz general
clf subplot
Funcii pachetului de prelucrare a semnalelor
filter impz filtfilt fregz grpdelay poly2rc sinc zplane
Programul 4_1
n acestprogram se calculeaz aproximarea de sus. Se folosete funcia sinc din sistemul MATLAB
%Programul P4_1
% raspunsul impuls filtrului ideal
clf;
fc=0.25;
n=[-6.5:1:6.5];
y=2*fc*sinc(2*fc*n);
k=n+6.5;
stem(k,y); title('N=13'); axis([0 13 -0.2 0.6]);
36
xlabel('Timpul n'); ylabel('Amplituda'); grid
Rezultatul programului:
0 2 4 6 8 10 12
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
N=13
Timpul n
A
m
p
l
i
t
u
d
a
Programul 4_2
Programul calculeaz rspunsul propriu al filtrului de frecven joas.
% Programul P4_2
% Rspunsul propriu al filtrului de frecven joas.
clf;
M=2;
num=ones(1,M)/M;
w=0:pi/255:pi;
h=freqz(num,1,w);
g=20*log10(abs(h));
plot(w/pi,g); grid
axis([0 1 -50 0.5]);
xlabel('\omega /\pi'); ylabel('Adaugare');
title(['M = ',num2str(M)]);
37
Rezultatul programului:
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
e /t
A
d
a
u
g
a
r
e
M = 2
Programul 4_3
Cu ajutorul programul dat putem analiza proprietile celor patru tipuri de funcii de transfer care
caracterizeaz filtrele:
Tipul 1: Rspunsul impuls simetric de lungime impar;
Tipul 2: Rspunsul impuls simetric de lungime par;
Tipul 3: Rspunsul impuls asimetric de lungime impar;
Tiplu 4: Rspunsul impuls asimetric de lungime par.
% Programul P4_3
% Punctele zero FIR filtrelor in faza liniara
clf;
b=[1 -8.5 30.5 -63];
num1=[b 81 fliplr(b)];
num2=[b 81 81 fliplr(b)];
num3=[b 0 -fliplr(b)];
num4=[b 81 -81 -fliplr(b)];
n1=0:length(num1)-1;
n2=0:length(num2)-1;
subplot(2,2,1); stem(n1,num1);
xlabel('Timpul n'); ylabel('Amplituda'); grid
title('Tipul 1 FIR filtrului');
subplot(2,2,2); stem(n2,num2);
xlabel('Timpul n'); ylabel('Amplituda'); grid
title('Tip 2 FIR filtrului');
subplot(2,2,3); stem(n1,num3);
xlabel('Timpul n'); ylabel('Amplituda'); grid
title(' Tip 3 FIR filtrului ');
subplot(2,2,4); stem(n2,num4);
xlabel('Timpul n'); ylabel('Amplituda'); grid
38
title('Tip 2 FIR filtrului');
pause
subplot(2,2,1); zplane(num1,1);
title(' Tip 1 FIR filtrului ');
subplot(2,2,2); zplane(num2,1);
title(' Tip 2 FIR filtrului ');
subplot(2,2,3); zplane(num3,1);
title('Tip 3 FIR filtrului');
subplot(2,2,4); zplane(num4,1);
title('Tip 4 FIR filtrului');
disp('Zeroul FIR filtrului de Tip 1');
disp(roots(num1));
disp(' Zeroul FIR filtrului de Tip 2');
disp(roots(num2));
disp(' Zeroul FIR filtrului de Tip 3');
disp(roots(num3));
disp(' Zeroul FIR filtrului de Tip 4');
disp(roots(num4));
Rezultatul programului:
0 2 4 6 8
-100
-50
0
50
100
Timpul n
A
m
p
l
i
t
u
d
a
Tipul 1 FIR filtrului
0 5 10
-100
-50
0
50
100
Timpul n
A
m
p
l
i
t
u
d
a
Tip 2 FIR filtrului
0 2 4 6 8
-100
-50
0
50
100
Timpul n
A
m
p
l
i
t
u
d
a
Tip 3 FIR filtrului
0 5 10
-100
-50
0
50
100
Timpul n
A
m
p
l
i
t
u
d
a
Tip 2 FIR filtrului
39
-1 0 1 2 3
-1
0
1
8
Real Part
I
m
a
g
i
n
a
r
y
P
a
r
t
Tip 1 FIR filtrului
-2 0 2 4
-2
-1
0
1
2
9
Real Part
I
m
a
g
i
n
a
r
y
P
a
r
t
Tip 2 FIR filtrului
-2 0 2 4 6
-2
0
2
8
Real Part
I
m
a
g
i
n
a
r
y
P
a
r
t
Tip 3 FIR filtrului
-1 0 1 2 3
-1
0
1
9
Real Part
I
m
a
g
i
n
a
r
y
P
a
r
t
Tip 4 FIR filtrului
b = 1.0000 -8.5000 30.5000 -63.0000
Zeroul FIR filtrului de Tip 1
2.9744
2.0888
0.9790 + 1.4110i
0.9790 - 1.4110i
0.3319 + 0.4784i
0.3319 - 0.4784i
0.4787
0.3362
Zeroul FIR filtrului de Tip 2
3.7585 + 1.5147i
3.7585 - 1.5147i
0.6733 + 2.6623i
0.6733 - 2.6623i
-1.0000
0.0893 + 0.3530i
0.0893 - 0.3530i
0.2289 + 0.0922i
0.2289 - 0.0922i
Zeroul FIR filtrului de Tip 3
4.7627
1.6279 + 3.0565i
1.6279 - 3.0565i
-1.0000
1.0000
0.1357 + 0.2549i
0.1357 - 0.2549i
0.2100
Zeroul FIR filtrului de Tip 4
3.4139
1.6541 + 1.5813i
1.6541 - 1.5813i
-0.0733 + 0.9973i
-0.0733 - 0.9973i
1.0000
0.3159 + 0.3020i
0.3159 - 0.3020i
0.2929
40
Programul 4_4
Acest program prezint cercetarea stabilitii a filtrului numeric IIR. Stabilitatea filtrului
ereprezint o calitate foarte important a filtrului. Filtrul numeric IIR este stabil dac polii funciei de
transfer se afl n interiorul cercului unitate.
% Programul P4_4
% Test de verificare a stabilitatii
clf;
den=input('Introduceti coeficientii de numitor:');
ki=poly2rc(den);
disp('Parametrii testului de stabilitate: ');
disp(ki);
Exemplu:
Introduceti coeficientii de numitor:10
Parametrii testului de stabilitate:
>>
41
Lucrare de laborator Nr.5
Tema: Prelucrarea digital a semnalelor continue n timp.
Sarcina: De a studia restabilirea unui semnal continuu dintr-un semnal discret dat, cu o cantitate
minim de pierderi.
Consideraii teoretice
Algoritmii de prelucrare a semnalelor discrete sunt adesea aplicate asupra semnalelor continue n
timp. Aceast lucrare de laborator permite studierea algoritmilor principali de transformare a
semnalelor continue n semnale discrete, mai apoi, dup aplicarea corespunztoare a algoritmilor de
transformare, va avea loc transformarea semnalului ntr-un semnal continuu echivalent lui, dup
posibilitate cu cantiti minime de cheltuieli.
Restabilirea semnalului discret: sarcina de gsit condiiile necesare, cu ajutorul crora semnalul
poate fi restabilit conform eantioanului discret. nainte de toate:
2 / )] ( ) ( [ ) 2 cos(
0 0 0
w w w w t w + + o o t .
Transformata Fourier a secvenei
Fie avem un semnal x(t), i este ales un pas de discretizare S. Funcia este nlocuit printr-o
secven ) ( ] [ nS x n y = .
Definiie. Transformata Fourier a unei secvene este numit funcia
=
n
wiSn
e n y w Y
t 2
] [ ) ( (4).
Funcia ) (w Y este o funcie periodic. Deseori, pentru simplitate, vom presupune S=1, i n acest
caz perioada funciei este egal cu 1. Aceasta este diferena fundamental ntre transformatele Fourier
a funciilor i a secvenelor. n acelai timp, ambele transformate sunt strns legate ntre ele. Fie avem
=
=
n
nS t t u ) ( ) ( o , atunci
}
= dt e t x t u w Y
wit t 2
) ( ) ( ) ( (5),
adic, este transformata Fourier a produsului a dou funcii, dintre care una este funcie
generalizat. Conform teoriei generale, transformata Fourier a produsului a dou funcii este egal cu
convoluia de imagini ale factorilor. Pentru simplificarea notaiilor S=1. Gsim
= ) (w U
}
dt e t u
wit t 2
) ( . Punem
}
=
N
N n
iwt
N
dt e n t w U
t
o
2
) ( ) ( =
N
N n
iwn
e
t 2
. Atragem atenia la
faptul c, aceasta este o funcie periodic cu perioada egal cu 1, prezentat ca suma progresiei
geometrice.
Avem
iw
w N i iNw
N
e
e e
w U
t
t t
2
) 1 ( 2 2
1
) (
=
+
. nmulim numrtorul i numitorul la
iw
e
t
.
Obinem
) sin(
) ) 2 / 1 ( 2 sin(
) (
w
w N
w U
N
t
t +
= .
n apropierea la
} }
+
=
c
c
c
c
N
dw
iw
w N w
dw w U w
t
t
) ) 2 / 1 ( 2 sin( ) (
) ( ) ( se pretinde ctre N la
) 0 ( . Pentru orice S se poate de scris formula: S
S
n
w Sn t / ) ( ) (
o o (6).
Relaiile dintre transformatele Fourier de tip discret i continue. Frecventa Nyquist.
Utiliznd formulele (5) i (6) i, presupunnd adevrat declaraia despre transformarea Fourier de
la produsul a dou funcii, primim relaiile:
) ( * ) ( ) ( w X w U w Y =
unde ) ( ) ( w X t x ,
de unde reiese:
42
= S
S
n
w X w Y / ) ( ) ( (7)
Aceast formul stabilete legtura ntre transformata Fourier de tip continuu i cea de tip discret.
Dup cum urma de ateptat, ) (w Y are perioada S / 1 , ceea ce este n concordan cu (4).
Comenzile MATLAB utilizate
Comenzi de uz general
Length size
Operatori i simboluri speciale
: . + - * / ; % == ~ & |
Matrici elementare i operaiile asupra lor
ones linspace pi
Funcii elementare
abs cos exp
Grafic bidimensional
axis grid plot stem title xlabel ylabel
Funcii grafice de uz general
clf grid plot stem subplot
Funcii ale pachetului de prelucrare a semnalelor
butter buttord cheb1ord cheb2ord cheby1 cheby2 ellip
ellipord freqz sinc
43
Program 5_1
Aici vom transforma condiionat un semnal continuu ntr-un semnal discret corespunztor, cu
redarea ambelor grafice.
% Program P5_1
% Ilustrarea procesului de discretizare n domeniul de timp
clf;
t=0:0.0005:1;
f=13;
xa=cos(2*pi*f*t);
subplot(2,1,1);
plot(t,xa); grid;
xlabel('Timpul, msec');
ylabel('Amplitudinea');
title('Semnal continuu n timp x_{a}(t)');
axis([0 1 -1.2 1.2]);
subplot(2,1,2);
T=0.1;
n=0:T:1;
xs=cos(2*pi*f*n);
k=0:length(n)-1;
stem(k,xs); grid;
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Semnal discret n timp x[n]');
axis([0 (length(n)-1) -1.2 1.2]);
Rezultatul programului:
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.5
0
0.5
1
Timpul, msec
A
m
p
l
i
t
u
d
i
n
e
a
Semnal continuu n timp x
a
(t)
0 1 2 3 4 5 6 7 8 9 10
-1
-0.5
0
0.5
1
Timpul n
A
m
p
l
i
t
u
d
i
n
e
a
Semnal discret n timp x[n]
Program 5_2
Aici vom restabili semnalul continuu din semnalul discret deja existent. n ambele cazuri vom
primi o secven cu o valoare finit de elemente, dar secvena semnalului continuu rezultat va fi mai
aproape de continuitate. Restabilirea are loc n timp.
44
%Program P5_2
% Demonstrarea efectului de imaginaie n domeniul de timp
clf;
T=0.1; f=13;
n=(0:T:1)';
xs=cos(2*pi*f*n);
t=linspace(-0.5,1.5,500)';
ya=sinc((1/T)*t(:,ones(size(n))) - (1/T)*n(:,ones(size(t)))')*xs;
plot(n,xs,'o',t,ya);
grid;
xlabel('Timpul, msec');
ylabel('Amplitudinea');
title('Semnalul continuu restabilit y_{a}(t)');
axis([0 1 -1.2 1.2]);
Rezultatul programului:
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Timpul, msec
A
m
p
l
i
t
u
d
i
n
e
a
Semnalul continuu restabilit y
a
(t)
Program 5_3
Programul dat deasemenea restabilite semnalul continuu dintr-un semnal discret existent, dar
utilizeaz alt algoritm care lucreaz cu frecena.
% Program P5_3
% Demonstrarea efectului de imaginaie n domeniul de frecven
clf;
t=0:0.005:10;
xa=2*t.*exp(-t);
subplot(2,2,1);
plot(t,xa); grid;
xlabel('Timpul, msec');
ylabel('Amplitudinea');
title('Semnal continuu x_{a}(t)');
subplot(2,2,2);
wa=0:10/511:10;
ha=freqs(2,[1 2 1],wa);
plot(wa/(2*pi),abs(ha)); grid;
45
xlabel('Frecvena, KHz');
ylabel('Amplitudinea');
title('|X_{a}(j/Omega)|');
axis([0 5/pi 0 2]);
subplot(2,2,3);
T=1;
n=0:T:10;xs=2*n.*exp(-n);
k=0:length(n)-1;
stem(k,xs); grid;
xlabel('Timpul n');
ylabel('Amplitudinea');
title('Semnal discret n timp x[n]');
subplot(2,2,4);
wd=0:pi/255:pi;
hd=freqz(xs,1,wd);
plot(wd/(T*pi),T*abs(hd)); grid;
xlabel('Frecvena, KHz');
ylabel('Amplitudinea');
title('|X(e^{j/omega})|');
axis([0 1/T 0 2]);
Rezultatul programului:
0 5 10
0
0.2
0.4
0.6
0.8
Timpul, msec
A
m
p
l
i
t
u
d
i
n
e
a
Semnal continuu x
a
(t)
0 0.5 1 1.5
0
0.5
1
1.5
2
Frecvena, KHz
A
m
p
l
i
t
u
d
i
n
e
a
|X
a
(j/Omega)|
0 5 10
0
0.2
0.4
0.6
0.8
Timpul n
A
m
p
l
i
t
u
d
i
n
e
a
Semnal discret n timp x[n]
0 0.5 1
0
0.5
1
1.5
2
Frecvena, KHz
A
m
p
l
i
t
u
d
i
n
e
a
|X(e
j/omega
)|
Program 5_4
Aici se demostreaz lucrul filtrului analogic, utilizat la restabilirea semnalului continuu.
% Program P5_4
% Proiectarea filtrului analogic
clf;
Fp=3500; Fs=4500;
Wp=2*pi*Fp; Ws=2*pi*Fs;
[N,Wn]=buttord(Wp,Ws,0.5,30,'s');
[b,a]=butter(N,Wn,'s');
wa=0:(3*Ws)/511:3*Ws;
h=freqs(b,a,wa);
46
plot(wa/(2*pi),20*log10(abs(h))); grid;
xlabel('Frecvena, Hz');
ylabel('Adugare');
title('Rspunsul de cretere');
axis([0 3*Fs -60 5]);
Rezultatul programului:
0 2000 4000 6000 8000 10000 12000
-60
-50
-40
-30
-20
-10
0
Frecvena, Hz
A
d
u
g
a
r
e
Rspunsul de cretere
47
Lucrare de laborator Nr.6
Tema: Structura filtrelor numerice
Scopul lucrrii: De a nva cum se construiesc diferite structuri a filtrelor n dependen de
proprietile dorite a viitoarelor structuri.
Noiuni generale
n aceast lucrare de laborator se analizeaz diferite structuri de filtre (paralel i cascad).
Structura definit a filtrelor permite cptarea relaiilor corespunztoare (convenabile ) ntre
variabilele interne, i, n consecin, semnalul de ieire corespunztor.
Orice cauzalitate IIR(Infinite Impulse Response filtru cu caracteristic infinit a impulsului)
filtrul se caracterizeaz prin funcia de transformare:
Filtrele numerice sunt cazuri particulare ale sistemelor liniare invariante. Limitarea semnificativ
datorat realizrii fizice a sistemului.
Definiie: Sistema este numit fizic realizabil, dac semnalul la ieire n momentul de timp t
depinde de semnalul de intrare n momentul de timp t .
Fie un SLI (sistem liniar invariant) T. S analizm ntrun punct al secvenei
0 , 0 ] [ , 1 ] 0 [ : = = A = A A t t .
Fie ]} [ { } { n h T = A , i prin definiie ] [ ] [ k t t
k
A = A . Pentru secvena arbitrar ]} [ { n x este valid
extinderea
A =
k
k
k x n x ] [ ]} [ { . De liniaritate
A =
k
k
T k x n x T }, { ] [ ]} [ { iar de invariantitii
]} [ { } { k n h T
k
= A . n cele din urm, n cazul n care ]} [ { ]} [ { n x T n y = , atunci
=
k
k n h k x n y ] [ ] [ ] [
(9).
Cu alte cuvinte, reacia la orice secven se obine prin convoluia acestei secvene i secvena
]} [ { n h , numit impuls de raspuns sau funcia de rspuns.
Comenzile MATLAB utilizate:
Comenzi de uz general
Disp length
Operatori i simboluri speciale
: . + - * / ; %
Matrici elementare i operaiile asupra lor
ones pi
Funcii pachetului de prelucrare a semnalelor
residue latc2tf poly2rc residuez tf2latc zp2sos
Programul 6_1
Cu ajutorul funciei din MATLAB zp2sos programul calculeaz coeficienii H(z) apelnd funcia
de tranziie.
% Programul P6_1
% Tratarea funciei de tranziie n forma coeficienti
48
num=input('Vectorul coeficientilor numaratorului:');
den=input('Vectorul coeficientilor numitorului: ');
[z,p,k]=tf2zp(num,den); sos=zp2sos(z,p,k);
Exemplu:
Vectorul coeficientilor numaratorului:[10,20,30]
Vectorul coeficientilor numitorului: [12,34,45]
sos = 0.8333 1.6667 2.5000 1.0000 2.8333 3.7500
Programul 6_2
Exist dou forme paralele de realizare funciei de conversie cauzale IIR. Prima forma se bazeaz
pe poriuni de spaiu dat, n funcie de z
-1
. Ea se realizeaz cu ajutorul funciei MATLAB residuez. Iar
forma a doua depinde de z i se realizeaz cu ajutorul funciei MATLAB residue.
% Programul P6_2
% Realizarea in forma paralela a functiei de tranzitie IIR
num=input('Vectorul coeficientilor numaratorului ');
den=input('Vectorul coeficientiloe numitorului ');
[r1,p1,k1]=residuez(num,den);
[r2,p2,k2]=residue(num,den);
disp('Forma paralela 1')
disp('Ramasite: '); disp(r1);
disp('Polii: '); disp(p1);
disp('Constanta: '); disp(k1);
disp('Forma paralela 2')
disp('Ramasite: '); disp(r2);
disp('Polii: '); disp(p2);
disp('Constanta: '); disp(k2);
Rezultatul rularii programului:
Vectorul coeficientilor numaratorului [10,20,30]
Vectorul coeficientiloe numitorului [12,34,45]
Forma paralela 1
Ramasite:
0.0833 + 0.1736i
0.0833 - 0.1736i
Polii:
-1.4167 + 1.3202i
-1.4167 - 1.3202i
Constanta:
0.6667
Forma paralela 2
Ramasite:
-0.3472 - 0.1359i
-0.3472 + 0.1359i
Polii:
-1.4167 + 1.3202i
-1.4167 - 1.3202i
Constanta:
0.8333
Programul 6_3
n acest program se realizeaz algoritmul Gray-Markel. Realizarea grilaj cascad Gray-Markel
funciei de taranziie H(z) de ordinul N, se bazeaz pe realizarea grilaj cascad funciei intermediare
de tranzacie A
N
(z), avnd acelai numitor, ca i funcia H(z).
% Programul P6_3
% Structura grilaj cascada Gray-Markel
% k vectorul parametrilor grilajului
% alpha vectorul mutiplicatorilor de legatura directa
format long
% introducerea coeficientilor
num=input('Vectorul coeficientilor numaratorului: ');
den=input('Vectorul coeficientilor numitorului: ');
49
N=length(den)-1; % Gradul polinomului de la numitor
k=ones(1,N);
a1=den/den(1);
alpha=num(N+1:-1:1)/den(1);
for ii=N:-1:1,
alpha(N+2-ii:N+1)=alpha(N+2-ii:N+1)-alpha(N-ii+1)*a1(2:ii+1);
k(ii)=a1(ii+1);
a1(1:ii+1)=(a1(1:ii+1)-k(ii)*a1(ii+1:-1:1))/(1-k(ii)*k(ii));
end
disp('Parametrii grilajului: '); disp(k)
disp('Multiplicatorii legaturii directe: '); disp(alpha)
subplot(1,2,1); title('Parametrii grilajului');
bar(k);
subplot(1,2,2); title('Multiplicatorii legaturii directe');
bar(alpha);
Rezultatul rulrii programului:
Vectorul coeficientilor numaratorului: [10,20,30]
Vectorul coeficientilor numitorului: [12,34,45]
Parametrii grilajului:
0.596491228070175 3.750000000000000
Multiplicatorii legaturii directe:
2.500000000000000 -5.416666666666667 -5.310672514619883
1 2
0
0.5
1
1.5
2
2.5
3
3.5
4
1 2 3
-6
-5
-4
-3
-2
-1
0
1
2
3
50
Bibliografia
1. A. . , , . , 2003
2. S.Haykin, B.V. Veen, Signals and Sistems, New Yorc, 1999
3. D.M.Etter, Engineering Problem Solving with MATLAB, Matlab Curriculum Series, 1996