Documente Academic
Documente Profesional
Documente Cultură
Îndrumar de Laborator
la disciplina
Chişinău 2020
Elaborat dr.conf. S.Railean
2
Proiectarea şi studierea semnalelor folosind MATLAB.
3
Lucrarea de laborator N 1
Modelarea semnalelor elementare.
Figura 1.1
4
Desfăşurarea lucrării
Lansaţi pachetul de programe MATLAB .
A=1;
w0=10*pi;
rho=0.5;
t=0:.001:1;
sq=A*square(w0*t+rho);
plot(t,sq), grid, set (gca,'FontName', ...
'ArialCyr','FontSize',16)
title('Semnal periodic in forma dreptunghiulara')
xlabel('t,sec'),ylabel('X(t)'),grid
1.2. Modelaţi un semnal periodic în formă sinusoidală folosind funcţia cos, pentru
aceasta culegeţi programa:
A=4;
w0=20*pi;
phi=pi/6;
t=0:.001:1;
cosine=A*cos(w0*t+phi);
plot(t,cosine), grid, set (gca, ...
'FontName','Arial Cyr','FontSize',16)
title('Exemplu de utilizare a procedurii cos')
xlabel('timpul(s)'),ylabel('functia y(t)'),grid
1.3. Modelaţi un semnal discret în formă sinusoidală folosind funcţia cos, pentru aceasta
culegeţi programa:
A=4;
w0=20*pi;
phi=pi/6;
t=0:.005:1;
cosine=A*cos(w0*t+phi);
stem(t,cosine), grid, set (gca, ...
'FontName','Arial Cyr','FontSize',16)
title('Exemplu de utilizare a procedurii cos')
xlabel('timpul(s)'),ylabel('functia y(t)'),grid
5
1.4. Modelaţi un semnal exponenţial cu valoarea crescândă folosind funcţia exp, pentru
aceasta culegeţi programa:
B=1;
a=5;
t=0:.001:1;
x=B*exp(a*t);
plot(t,x), grid, set (gca,'FontName',...
'Arial Cyr','FontSize',16)
title('Exemplu de utilizare a procedurii exp')
xlabel('timpul(s)'),
ylabel('functia y(t)'),grid
1.5. Modelaţi un semnal care va constitui o sinusoidă modulată după funcţia lui Gaus,
folosind funcţia gauspuls, pentru aceasta culegeţi programa:
t=-10:.01:10;
y=0.75*gauspuls(t+3,1,0.5);
plot(t,y), grid, set (gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Exemplu de utilizare a procedurii gauspuls')
xlabel('timpul(s)'),ylabel('functia y(t)'),grid
t=0:.01:50;
y1=0.7*sinc(pi*(t-25)/5);
plot(t,y1), grid, set (gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Exemplu de utilizare a procedurii sinc')
xlabel('timpul(s)'),ylabel('functia y(t)'),grid
1.7. Modelaţi o cosinusoidă, frecvenţa căreia se schimbă linear cu timpul, folosind funcţia
chirp, pentru aceasta culegeţi programa:
t=0:0.001:1;
y=0.75*chirp(t);
plot(t,y), grid, set (gca,'FontName', ...
6
'Arial Cyr','FontSize',16)
title('Exemplu de utilizare a procedurii chirp')
xlabel('timpul(s)'),ylabel('functia y(t)'),grid
1.8. Modelaţi un semnal care va constitui dependenţa funcţiei Dirihlet, folosind funcţia
diric:
t=0:.01:50;
y=0.7*diric(t,4);
plot(t,y), grid, set (gca,'FontName', ...
'Arial Cyr','FontSize',16)
title('Exemplu de utilizare a procedurii diric')
xlabel('timpul(s)'),ylabel('functia y(t)'),grid
Teorema eşantionării
1.8. Să se genereze un semnal de 2 s compus din suma a două sinusoide de frecvenţe 100 Hz şi 156
Hz cu amplitudinea de 1V. Se consideră o frecvenţă de eşantionare de 256 Hz. Reprezentaţi
semnalul sumă.
7
Lucrarea de laborator N 2
Convoluţia semnalelor
Interpretarea polinomială a convoluţiei liniare şi ciclice
Operaţiile de convoluţie liniară şi ciclică, precum şi de deconvoluţie se pot interpreta prin
prisma operaţiilor cu polinoame. Să considerăm secvenţele 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
N 1
Conform definiţiei: yn xm hn m . Se obţine prin urmare:
m 0
Y z X z H z x0 x1 z x2 z 2 h 0 h1z
x0 h0 x0 h1 x1h0 z x1h1 x2 h0 z 2 x2 h1 z 3
Funcţia MATLAB conv, pentru calculul convoluţiilor liniare 1D calculează de fapt acest
produs. De exemplu, pentru a realiza convoluţia secvenţelor x 1,2 ,3 şi h 1,1 se
utilizează:
x=[1,2,3] ; h=[1,1] ; [y]=conv(x,h)
8
Acelaşi rezultat se obţine ca rest al operaţiei polinomiale:
Y z X z H z mod z 2
1 , adică ca rest al împărţirii polinomului
h1 x1 z 2 h0 x1 h1 x0 z h0 x0 2
prin z 1 .
Un exemplu de convoluţie ciclică 1D este prezentat mai jos:
Aceleaşi consideraţii sunt valabile şi în cazul secvenţelor 2D. Astfel, în cazul convoluţiei
liniare:
x xn ,n 1 2
,n1 0,1; n2 0 ,1, 2 0,1, 2 ; 3, 4,5
h hn ,n 1 2
,n1 0 ,1; n2 0,1, 2 1,0,1;1,0,1
9
Desfăşurarea lucrării
2.1 Modelaţi trei semnale periodice conform variantei-tabelului (Valorile
A,B,C,D,E,F - fiind selectate din Tabelul 1 conform numărului de
ordine din lista grupei).
t=0:.001:1;
sq=A*square(D*pi*t+pi/6);
tri=B*sawtooth(E*pi*t+pi/6);
cosine=C*cos(F*pi*t+pi/6);
2.2 Modelaţi un semnal periodic compus din suma a trei semnale conform
variantei.
sem1=sq+cosine+tri;
sem1=sq+cosine+tri
plot(t,sq), grid, set (gca,'FontName', ...
'ArialCyr','FontSize',16)
title('Semnal periodic in forma dreptunghiulara')
xlabel('t,sec'),ylabel('X(t)'),grid
…………………………………
sem1=sq+cosine+tri
n=1:1:1001;
stem(n,sq),
grid, set (gca,'FontName', ...
'ArialCyr','FontSize',16)
title('Semnal periodic in forma dreptunghiulara')
xlabel('t,sec'),ylabel('X(t)'),grid
10
2.4 Efectuaţi convoluţia semnalului sem1 cu semnalul sq folosind procdura
conv:
c=conv(sem1,sq);
n=1:1:2001;
stem(n,c),
m=2001;
AE=fft(sem1,m);
BE=fft(sq,m);
y1=ifft(AE.*BE);
n=1:1:2001;
stem(n,c),
Prin procedura conv
t=0:.001:100;
sq=1*square(10*pi*t+pi/6);
tri=1.5*sawtooth(15*pi*t+pi/6);
cosine=2*cos(25*pi*t+pi/6);
semsem1=sq+cosine+tri
11
tic;
c2=conv(semsem1,sq);
toc;
n=1:1:200001;
stem(n,c2),
(elapsed_time =
??.????)
Prin procedura fft
t=0:.001:100;
sq=1*square(10*pi*t+pi/6);
tri=1.5*sawtooth(15*pi*t+pi/6);
cosine=2*cos(25*pi*t+pi/6);
semsem1=sq+cosine+tri
m=262144;
tic;
AE=fft(semsem1,m);
BE=fft(sq,m);
Y2=ifft(AE.*BE);
toc;
n=1:1:262144;
stem(n,Y2);
(elapsed_time =
??.????)
12
Afişaţi rezultatul (stem). Observaţi diefrenţa în timp.
er=y1-c;
n=1:1:2001;
stem(n,er);
Y3=fft(sem1);
m=abs(Y3);p=unwrap(angle(Y3));% Magnituda si faza
f=(0:length(Y3)-1)*99/length(Y3);% Vectorul frecventei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])
13
2.10 Aplicaţi procedura fftshift şi afişaţi dependenţa modului de frecvenţă:
xp=fftshift(Y3);
a=abs(xp);
df=1; Fmax=1/0.001;
f1=-Fmax/2:df:Fmax/2;
stem(f1,a)
14
Lucrarea de laborator N 3
Filtrarea digitală a semnalelor
b) Se determină răspunsul
15
c) Se determină răspunsul al FN-FIR
Desfăşurarea lucrării
3.1. Eefctuaţi proiectarea unui FN-FIR cu şi rad/sec:
3.3. Modelaţi un semnal periodic compus din suma a trei semnale conform
variantei.
t=0:.001:1;
sq=A*square(D*pi*t+pi/6);
tri=B*sawtooth(E*pi*t+pi/6);
cosine=C*cos(F*pi*t+pi/6);
sem1=sq+cosine+tri;
plot(t,sem1);
x1=rand(1,length(t));
modelaţi un zgomot alb. Afişaţi acest zgomot folosind plot (t,x1), stem
(t,x1) şi histograma acestuia, utilzând hist(x1,t).
x1=rand(1,length(t));
plot (t,x1);
sem2=sem1+3*x1;
plot(t,sem2);
plot(t,y);
3.7. Afişaţi pe acelaşi grafic (plot) semnalul sem2 afectat de zgomot şi cel
filtrat:
plot(t,y,t,sem2)
plot(t,y,t,sem1);
18
3.7. Aplicaţi procedura filtfilt pentru a exclude întârzierea întrodusă de
filtru:
y2=filtfilt(b,a,sem2);
3.8. Afişaţi pe acelaşi grafic (plot) semnalul iniţial şi cel filtrat prin
procedura filtfilt:
plot(t,sem1,t,y2);
Afişaţi pe acelaşi grafic (plot) semnalul sem2 afectat de zgomot şi cel filtrat:
plot(t,yy,t,sem2)
plot(t,yy,t,sem1);
19
ww = -pi:(pi/200):pi;
H = freqz( bb, 1, ww );
subplot(2,1,1)
plot( ww, abs(H) ) %<-- Magnitude
subplot(2,1,2)
plot( ww, angle(H) ) %<-- Phase
xlabel('NORMALIZED FREQUENCY')
bb = 1/10*ones(1,10);
yy = filter(bb, 1, sem2); %<--Compute the output
plot(t,y);
Afişaţi pe acelaşi grafic (plot) semnalul sem2 afectat de zgomot şi cel filtrat:
plot(t,yy,t,sem2);
plot(t,yy,t,sem1);
ww = -pi:(pi/200):pi;
H = freqz( bb, 1, ww );
subplot(2,1,1)
plot( ww, abs(H) ) %<-- Magnitude
subplot(2,1,2)
plot( ww, angle(H) ) %<-- Phase
xlabel('NORMALIZED FREQUENCY');
20
3.8. Filtraţi semnalul sem2 - cu de netezire 50 de mostre trecute ale
întrării:
bb = 1/50*ones(1,50);
yy = filter(bb, 1, sem2); %<--Compute the output
plot(t,y);
Afişaţi pe acelaşi grafic (plot) semnalul sem2 afectat de zgomot şi cel filtrat:
plot(t,yy,t,sem2);
plot(t,yy,t,sem1);
ww = -pi:(pi/200):pi;
H = freqz( bb, 1, ww );
subplot(2,1,1)
plot( ww, abs(H) ) %<-- Magnitude
subplot(2,1,2)
plot( ww, angle(H) ) %<-- Phase
xlabel('NORMALIZED FREQUENCY');
yy2=filtfilt(bb,1,sem2);
21
Afişaţi pe acelaşi grafic (plot) semnalul sem2 afectat de zgomot şi cel filtrat
prin procedura filtfilt:
plot(t,yy2,t,sem2);
Afişaţi pe acelaşi grafic (plot) semnalul iniţial şi cel filtrat prin procedura
filtfilt:
plot(t,sem1,t,yy2);
Lucrarea de laborator N 4
Modulaţia semnalelor
Modulaţia. Definiţii şi clasificări
În procesul de modulaţie intervin următoarele semnale:
- semnalul s(t) ce conţine informaţia (mesajul), denumit semnal modulator;
- semnalul P(t), asupra căruia se transferă informaţia, denumit purtător;.
- semnalul sM(t) rezultat prin acţiunea semnalului modulator asupra
purtătorului, denumit semnal modulat.
Modulaţia constă în modificarea unui parametru al purtătorului P(t) de
câtre semnalul modulator s(t), ce urmează a fi transmis.
După natura semnalului purtător P(t), putem avea:
- modulaţie cu purtător sinusoidal;
- modulaţie cu purtător în impulsuri.
22
Fig.1 Purtător sinusoidal
23
Fig. 2. Formele de undă ale semnalului
modulator (a), purtătorului (b), amplitudinii
instantanee (c) şi semnalului MA (d).
(3)
Aceasta reprezintă forma cea mai generală a unui semnal MA, întrucât asupra
mesajului s(t) nu s-a făcut nici o restricţie.
În figura 2 sunt reprezentate, în ordine, funcţiile de timp (formele de undă) ale
semnalului modulator s(t), purtătorului P(t), amplitudinii instantanee A(t) şi
semnalului modulat sMA(t). Curba reprezentată punctat în figura 2,d poartă
denumirea de înfăşurătoare sau anvelopă a semnalului MA şi reproduce forma
semnalului modulator.
Până acum am analizat forma de undă a semnalului MA sau altfel spus,
reprezentarea sa în domeniul timp. Să examinăm în continuare reprezentarea
semnalului MA în domeniul frecvenţă (spectrul de frecvenţă) considerând trei
situaţii di-ferite prin forma de undă a semnalului modulator s(t).
1. Presupunem că s(t) este un semnal sinusoidal de forma:
(5)
Amplitudinea A(t) si semnalul sMA(t), date de relaţiile (3) şi (4), devin în acest caz:
(6)
24
(7)
Parametrul
(8)
deci
(9)
Relaţiile (9) se utilizează în determinarea experimentală a gradului de
modulaţie prin vizualizarea pe osciloscop a semnalului MA.
Formele de undă ale semnalelor s(t), P(t) şi sMA(t), corespunzătoare acestui caz,
sînt reprezentate grafic în figura 4.
Gradul de modulaţie m trebuie să satisfacă condiţia:
m1 (10)
pentru ca la recepţie s(t) să poată îi reconstituit.
Dacă m > 1 (fig. 4), înfăşurătoarea semnalului MA nu mai reproduce forma
semnalului modulator s(t) şi acesta nu se mai poate obţine prin demodulare.
Expresia (7) se poate scrie sub forma:
25
(11)
26
Fig. 5. Diagramele spectrale de amplitudini ale semnalului modulator (a),
purtătorului (b) şi semnalului MA. (c)..
Desfăşurarea lucrării
y = modulate(x,fc,fs,'method',opt)
unde:
• x semnalul mesaj modulator.
• fc frecfenţa semnalului purtător.
• fs fercvenţa de discretizare.
• method metoda de modulaţie.
• opt un argument opţional
27
t=0:.001:1;
sq=2*square(10*pi*t+pi/6);
tri=3*sawtooth(15*pi*t+pi/6);
cosine=2*cos(25*pi*t+pi/6);
sem1=(sq+cosine+tri);
sem1AM = modulate(sem1,490,1001,'am')
plot(t,sem1AM)
Y3=fft(sem1AM);
m=abs(Y3);p=unwrap(angle(Y3));% Magnituda si faza
f=(0:length(Y3)-1)*99/length(Y3);% Vectorul frecventei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])
xp=fftshift(Y3);
a=abs(xp);
df=1; Fmax=1/0.001;
f1=-Fmax/2:df:Fmax/2;
plot(f1,a)
28
t=0:.001:0.15;
sq=1*square(10*pi*t+pi/6);
tri=1.5*sawtooth(15*pi*t+pi/6);
cosine=2*cos(25*pi*t+pi/6);
sem1=(sq+cosine+tri)+7;
sem1AM = modulate(sem1,490,1001,'am')
plot(t,sem1AM)
Y3=fft(sem1AM);
m=abs(Y3);p=unwrap(angle(Y3));% Magnituda si faza
f=(0:length(Y3)-1)*99/length(Y3);% Vectorul frecventei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])
xp=fftshift(Y3);
a=abs(xp);
df=1; Fmax=1/0.001;
f1=-Fmax/2:df:Fmax/2;
plot(f1,a)
t=0:.001:0.15;
sq=1*square(10*pi*t+pi/6);
tri=1.5*sawtooth(15*pi*t+pi/6);
cosine=2*cos(25*pi*t+pi/6);
29
sem1=(sq+cosine+tri)+7;
sem1AMP = modulate(sem1,490,1001,'amdsb-tc')
plot(t,sem1AMP)
Y3=fft(sem1AMP);
m=abs(Y3);p=unwrap(angle(Y3));% Magnituda si faza
f=(0:length(Y3)-1)*99/length(Y3);% Vectorul frecventei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])
xp=fftshift(Y3);
a=abs(xp);
df=1; Fmax=1/0.001;
f1=-Fmax/2:df:Fmax/2;
plot(f1,a)
t=0:.001:0.15;
sq=1*square(10*pi*t+pi/6);
tri=1.5*sawtooth(15*pi*t+pi/6);
cosine=2*cos(25*pi*t+pi/6);
sem1=(sq+cosine+tri)+7;
sem1AMS = modulate(sem1,490,1001,'amssb')
plot(t,sem1AMS)
30
4.9. Efectuaţi transformarea Fourier a semanlului modulat sem1AM. Afişaţi
spectrul obţinut.
Y3=fft(sem1AMS);
m=abs(Y3);p=unwrap(angle(Y3));% Magnituda si faza
f=(0:length(Y3)-1)*99/length(Y3);% Vectorul frecventei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])
xp=fftshift(Y3);
a=abs(xp);
df=1; Fmax=0.15/0.001;
f1=-Fmax/2:df:Fmax/2;
plot(f1,a)
Modulaţia în frecvenţă
t=0:.001:0.4;
sq=1*square(10*pi*t+pi/6);
tri=1.5*sawtooth(15*pi*t+pi/6);
cosine=2*cos(25*pi*t+pi/6);
sem1=(sq+cosine+tri)+7;
sem1AMF = modulate(sem1,490,1001,'fm')
plot(t,sem1AMF)
xp=fftshift(Y3);
a=abs(xp);
df=1; Fmax=0.4/0.001;
f1=-Fmax/2:df:Fmax/2;
plot(f1,a)
32