Chạy chương trình đã được biến đổi và vẽ dãy mẫu đó... Thực hiện chương_trình_P3_2 để khảo sát tính chất này của hệ thống.. Biến đổi chương_trình_P3_2 bằng cách thêm vào các lệnh ghi chú
Trang 1Bài tập 1.1
a/ Tạo chuong_trinh_P1_1 để vẽ một dãy xung
đơn vị
b/ Biến đổi chuong_trinh_P1_1 để tạo ra một dãy
xung đơn vị bị trễ 11 mẫu Chạy chương trình đã
được biến đổi và vẽ dãy mẫu đó
c/ Biến đổi chuong_trinh_P1_1 để tạo ra một dãy
nhảy bậc u[n] sớm 7 mẫu
%Chuong trinh P1-1
% Phat mot day xung don vi
clf;
%Tao mot vecto tu -10 đen 20
n=-10:20;
%Phat ra day xung don vi
δ=[zeros(1,10) 1 zeros(1,20)];
%Ve xung don vi
Stem(n,δ);
xlabel(‘Chi so thoi gian’);
ylabel(‘Bien do’);
title(‘Day xung don vi’);
axis([-10 20 0 1.2]);
Bài tập 1.2 :
a/ Tạo chuong_trinh_P1_2 để vẽ một dãy sin
phức
b/ Thay c= (1/12)+(pi/6)*i Quan sát, nhận xét
%Chuong trinh P1-2
% Phat ra day sin phuc
clf;
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('Chi so thoi gian '); ylabel('Bien do');
title(‘Phan thuc’);
subplot(2,1,2);
stem(n,imag(x));
xlabel('Chi so thoi gian '); ylabel('Bien do');
title(‘Phan ao’);
Bài tập 1.3 : Tạo chuong_trinh_P1_3 để phát một
dãy lũy thừa thực
%Chuong trinh P1-3
% Phat ra mot day luy thua thuc
clf;
n=0:35;
a=1.2;
k=0.2;
x=k*a.^n;
stem(n,x);
xlabel('Chi so thoi gian '); ylabel('Bien do');
title(‘Tin hieu luy thua thuc’);
Bài tập 1.4 :
a/ Tạo chuong_trinh_P1_4 để vẽ một tín hiệu hình sin thực và hiển thị dãy đó
b/ Tần số của dãy đã phát là bao nhiêu và thay đổi thế nào? c/ Biến đổi chuong_trinh_P1_4 để phát ra dãy sin thực có tần số 0.9 và 1.1
d/ Biến đổi chuong_trinh_P1_4 để phát và hiển thị dãy có chiều dài 50 mẫu, tần số 0.08, biên độ 2.5 và độ dịch pha 900
%Chuong trinh P1-4
% Phat tin hieu hinh sin clf;
n=0:40;
f=0.1;
phase=0;
A=1.5;
arg=2*pi*f*n-phase;
x=A*cos(arg);
stem(n,x);
axis([0 40 -2 2]);
grid;
xlabel('Chi so thoi gian '); ylabel('Bien do');
title(‘Day tin hieu sin’);
Bài tập 1.5 :
a/ Tạo chuong_trinh_P1_5 b/ Chạy chuong_trinh_P1_5 với ồn tạp ngẫu nhiên d[n]=0.5rand(100,1) và hiển thị tất cả các tín hiệu
%Chuong trinh P1-5
% Lam nhan mot tin hieu bang cach lay trung binh clf;
R=51;
d=0.8*(rand(R,1)-0.5); %Phat on tap ngau nhien m=0:R-1;
s=2*m.*(0.9.^m); %Phat tin hieu khong bi nhieu on tap x=s+d’; %tin hieu bi nhieu on tap
figure(1) subplot(2,1,1);
plot(m,d','r-',m,s,'g ',m,x,'b-.');
xlabel('Chi so thoi gian n') ylabel('Bien do') legend('d[n]','s[n]','x[n]');
x1=[0 0 x]; x2=[0 x 0]; x3=[x 0 0];
y=(x1 + x2 + x3)/3;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g ');
legend('y[n]','s[n]');
xlabel('Chi so thoi gian n') ylabel('Bien do') figure(2)
subplot(2,1,1);
plot(m,d’,’r-‘,m,s,’g ‘,m,x,’b-.’);
xlabel('Chi so thoi gian n') ylabel('Bien do') legend(‘d[n]’,’s[n]’,’x[n]’);
y1=[0 0 0 x]; y2=[0 0 x 0]; y3=[0 x 0 0]; y4=[x 0 0 0];
y = (y1 + y2 + y3 + y4)/4;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g ');
legend(‘y[n]’,’s[n]’);
xlabel('Chi so thoi gian n') ylabel('Bien do') BÀI 1: TÍN HIỆU VÀ PHƯƠNG PHÁP BIẾN ĐỔI TÍN HIỆU
Trang 2Bài tập 1.6 :
a/ Tạo chuong_trinh_P1_6
b/ Chạy chuong_trinh_P1_6 để phát và hiển thị tín hiệu
bị điều chế biên độ y[n] với các giá trị khác nhau của fc,
fl, m
%Chuong trinh P1-6
% Phat ra tin hieu dieu che bien do
clf;
n=0:200;
m=0.4;
fc=0.1; fl=0.01;
xc=sin(2*pi*fc*n);
xl=sin(2*pi*fl*n);
y=(1+m*xl).*xc;
stem(n,y);
grid
Bài tập 1.7 :
a/ Tạo chuong_trinh_P1_7
b/ Chạy chuong_trinh_P1_7 nhưng với các điều kiện ban đầu khác nhau Bình luận các kết quả thu được c/ Viết chương trình phát ra tín hiệu số hình sin với cosθ=0.5 Chạy chương trình vừa viết với các điều kiện ban đầu khác nhau và nhận xét kết quả thu được
%Chuong trinh P1-7
% May phat song sin - cosin
clf;
s10=0.1; s20=0.1; a=0.9;
y1=zeros(1,50); y2=y1;
for n= 1:50;
y1(n)=a*(s10+s20)-s20; y2(n)=a*(s10+s20) + s10; s10=y1(n); s20=y2(n);
end
k=1:1:50;
figure(1)
stem(k-1,y2/abs(y1(7))); axis([0 50 -1.1 1.1]); xlabel('Chi so thoi gian n'); ylabel('Bien do'); figure(2)
stem(k-1,y2/abs(y2(3))); axis([0 50 -1.1 1.1]); xlabel('Chi so thoi gian n'); ylabel('Bien do');
Trang 3%Chuong trinh P2-1
%Mach loc trung binh dong
clf
% Phat tin hieu vao
n=0:100;
s1=cos(2*pi*0.05*n);
s2=cos(2*pi*0.47*n);
x=s1 + s2;
%Thuc hien loc trung binh dong
M=input(chieu dai cua mach loc=’);
num=ones(1,M);
y=filter(num,1,x)/M;
%hien thi cac tin hieu vao va ra
subplot(2,2,1); plot(n,s1); axis([0,100,-2,2]);
subplot(2,2,2); plot(n,s2); axis([0,100,-2,2]);
subplot(2,2,3); plot(n,x); axis([0,100,-2,2]);
subplot(2,2,4); plot(n,y); axis([0,100,-2,2]);
%Chuong trinh P2-2
%Nghien cuu tinh chat tuyen tinh va phi tuyen
%Phat tin hieu vao
clf
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]; % dieu kien ban dau bang 0
y1=fiter(num,den,x1,ic); %tinh y1(n)
y2=fiter(num,den,x2,ic); %tinh y2(n)
y=fiter(num,den,x,ic); %tinh y[n]
yt=a*y1+b*y2;
d=y-yt; %tinh sai so loi ra
%Ve tin hieu ra va sai so
ylabel('Bien do'); subplot(3,1,1); stem(n,y)
ylabel('Bien do'); subplot(3,1,2); stem(n,yt);
ylabel('Bien do'); subplot(3,1,3); stem(n,d);
title('tin hieu sai so d')
%Chuong trinh P2-3
%Tinh va ve dap ung xung
clf
N=40;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
h=impz(num,den,N);
stem(h);
% Chuong trinh P2-4
%Nghien cuu tinh chat bat bien voi thoi gian cua
tin hieu
clf
n=0:40;
n0=10;
a=0.3; b=-2;
xn=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
xn0=[zeros(1,n0) xn];
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
ic=[0 0];
yn=filter(num,den,xn,ic);
yn0=filter(num,den,xn0,ic);
dn=yn-yn0(1+n0:41+n0);
subplot(3,1,1) stem(n,yn);
subplot(3,1,2) stem(n,yn0(1:41));
subplot(3,1,3) stem(n,dn);
% Chuong trinh P2-5
% Thuc hien ghep noi tiep hai he thong LTI clf
x=[1 zeros(1,40)]; % Tao tin hieu vao x[n] n=0:40;
%Cac he so cua he thong bac 4 den=[1 1.6 2.28 1.325 0.68];
num=[0.06 -0.19 0.27 -0.26 0.12];
%Tinh tin hieu loi ra cua he thong bac 4 y=filter(num,den,x);
%Cac he so cua hai he thong bac 2 num1=[0.3 -0.2 0.4]; den1=[1 0.9 0.8];
num2=[0.2 0.5 0.3]; den2=[1 1.7 0.85];
%Tin hieu ra y1[n]
y1=filter(num1,den1,x);
%Tin hieu ra y2[n]
y2=filter(num2,den2,y1);
%Hieu d[n]=y[n] - y2[n]
d=y - y2;
%Ve cac tin hieu subplot(3,1,1);
stem(n,y);
ylabel('Bien do');
title('Tin hieu ra cua he thong bac 4'); grid; subplot(3,1,2);
stem(n,y2) ylabel('Bien do');
title('Loi ra cua he thong noi tiep'); grid;
subplot(3,1,3);
stem(n,d) xlabel('chi so thoi gian n'); ylable('Bien do'); title('Tin hieu sai so'); grid;
% Chuong trinh P2-6
%Kiem tra tinh on dinh cua he thong LTI clf
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
%Ve dap ung xung don vi n=0:N;
stem(n,h) xlabel('chi so thoi gian n'); ylabel('Bien do'); title('Dap ung xung don vi');
%In gia tri tuyet doi cua (h(k)) disp('value='); disp(abs(h(k)));
NGHIÊN CƯÚ TÍNH CHẤT CÁC HỆ THỐNG LTI BÀI 2: NGHIÊN CƯÚ TÍNH CHẤT CÁC HỆ THỐNG LTI
Trang 4Biến đổi Fourier rời rạc (DTFT) X(ej ω) của tín hiệu rời rạc thời gian x[n] là :
( )ω
ω φω
ω ω
ω ω
j
e
e ,
e e X e
e e
] [ e
X
re
im im
re n
X artg jX
X n
= ∑∞
−∞
=
Biến đổi Fourier rời rạc nghịch đảo (IDTFT)
( )
∫
−
π
ω ω
n
2
1 ] [ Tính toán DTFT X(e-j ω) có dạng:
ω ω
ω ω
jN M j
j
jM M j
j j
e a e
a e a a
e b e
b e b b e
+ + +
+
+ + +
+
=
2 2 1
0
2 2 1
0
Bài tập 3.1
Trong Matlab DTFT X(e-j ω) của dãy x[n] được tính trong một khoảng L điểm tần số rời rạc cho trước ω = ωk dùng hàm freqz X(e-j ω) là hàm liên tục của ω, cần L đủ lớn freqz tính L điểm của dãy {b0, b1, …, bM} và {a0, a1, …, aM} sau đó lập tỉ
số với k=1, 2, L L thường được chọn là lũy thừa 2 vd: 256 hoặc 512
a Tạo chuong_trinh_P3_1 để tính DFT X(e-j ω) của dãy x[n] có dạng:
ω ω
j
j j
e
e e
+
+
=
6 0 1 2
b Các hàm số sau khi vẽ có tuần hoàn với ω không ? nếu có hãy tìm chu kỳ của chúng
c Viết chương trình để tính phổ biên độ và phổ pha của :
ω ω
ω ω
ω
4 3
2
4 3
2
9 0 7
0 5
0 3
0 1
3 0 5
0 7
0 9 0
j j
j j
j j
j j
j
e e
e e
e e
e e
e
+ +
− +
+ +
− +
% Chuong trinh P3-1
% Tinh DTFT
clf
w=-4*pi:8*pi/512:4*pi;
num=[2 1]; den=[1 -0.6];
h=freqz(num,den,w);
% plot the DTFT
figure(1)
subplot(2,1,1)
plot(w/pi,real(h)); grid
title('Phan thuc cua X(e^{j\omega})')
xlabel('\omega/\pi'); ylabel('Bien do');
subplot(2,1,2)
plot(w/pi,imag(h)); grid title('Phan ao cua X(e^{j\omega})') xlabel('\omega/\pi'); ylabel('Bien do');
figure(2) subplot(2,1,1) plot(w/pi,abs(h)); grid title('Pho bien do X(e^{j\omega})') xlabel('\omega/\pi'); ylabel('Bien do');
subplot(2,1,2) plot(w/pi,angle(h)); grid title('Pho pha arg[X(e^{j\omega})]') xlabel('\omega/\pi'); ylabel('Pha do bang radians');
Bài tập 3.2
Nếu H(e-j ω) là DTFT của h[n] thì DTFT của dãy dịch chuyển về thời gian h[n – n0] sẽ là e−jω 0nH ( ) ejω
a Thực hiện chương_trình_P3_2 để khảo sát tính chất này của hệ thống
b Biến đổi chương_trình_P3_2 bằng cách thêm vào các lệnh ghi chú các trục trong hình vừa vẽ được Thông số nào đặc trưng cho sự dịch chuyển về thời gian?
c Chạy chương trình đã biến đổi với các giá trị khác nhau về độ dịch thời gian
% Chuong trinh P3-2
% Khao sat tinh chat dich chuyen ve thoi gian cua
DTFT
clf;
w=-pi:2*pi/255:pi, wo=0.4*pi; D=10;
x=[1 2 3 4 5 6 7 8 9];
h1=freqz(x, 1, w);
h2=freqz([zeros(1,D) x], 1, w);
subplot(2,2,1)
plot(w/pi,abs(h1)); grid
title('Pho bien do cua day goc') subplot(2,2,2)
plot(w/pi,abs(h2)); grid title('Pho bien do cua day bi dich') subplot(2,2,3)
plot(w/pi,angle(h1)); grid title('Pho pha cua day goc') subplot(2,2,4)
plot(w/pi,angle(h2)); grid title('Pho pha cua day bi dich') BÀI 3: PHỔ TẦN SỐ CỦA TÍN HIỆU - BIẾN ĐỔI FOURIER THỜI GIAN RỜI RẠC
Trang 5Bài tập 3.3
Nếu H(ej ω) là DTFT của h[n] thì DTFT của dãy ejω0nh [ ] n sẽ là H ( e−j(ω− ω 0))
a Thực hiện chương_trình_P3_3 để khảo sát tính chất dịch chuyển tần số của hệ thống
b Biến đổi chương_trình_P3_3 bằng cách thêm vào các lệnh ghi chú các trục trong hình vừa vẽ được Thông số nào đặc trưng cho sự dịch chuyển về tần số?
c Chạy chương trình đã biến đổi với các độ dịch tần khác nhau
% Chuong trinh P3-3
% Nghien cuu tinh chat dich chuyen tan so cua DTFT
clf
w=-pi:2*pi/255:pi; wo=0.4*pi;
x1=[1 3 5 7 9 11 13 15 17];
L = length(x1);
h1=freqz(x1, 1, w);
n = 0:L-1;
x2=exp(wo*i*n).*x1;
h2=freqz(x2, 1, w);
subplot(2,2,1)
plot(w/pi,abs(h1));grid title('Pho bien do cua day goc') subplot(2,2,2)
plot(w/pi,abs(h2));grid title('Pho bien do cua day bi dich tan so') subplot(2,2,3)
plot(w/pi,angle(h1)); grid title('Pho pha cua day goc') subplot(2,2,4)
plot(w/pi,angle(h2)); grid title('Pho pha cua day bi dich tan so')
Bài tập 3.4
Nếu H(ej ω) và G(ej ω) là DTFT của các dãy h[n] và g[n] thì DTFT của tích hai dãy đó h[n] g[n] sẽ là :
∫
−
π
π
α ω
π H ej G ej - d
2 1 Thực hiện chương_trình_P3_4 để kiểm tra tính chất điều chế trên
% Chuong trinh P3-4
% Nghien cuu tinh chat dieu che cua 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('Pho bien do cua day x1') subplot(3,1,2)
plot(w/pi,abs(h2)); grid title('Pho bien do cua day x2') subplot(3,1,3)
plot(w/pi,abs(h3)); grid title('Pho bien do cua day tich') xlabel('\omega/\pi')
Bài tập 3.5
Nếu H(ej ω) là DTFT của các dãy h[n] và g[n] thì DTFT của h[-n] sẽ là H(e-j ω)
a Thực hiện chương_trình_P3_5 khảo sát tính chất này của hệ thống
b Biến đổi chương_trình_P3_5 bằng cách thêm vào các lệnh ghi chú các trục trong hình vừa vẽ được Lệnh nào đặc trưng cho phép ngược thời gian?
c Chạy chương trình đã biến đổi và nhận xét kết quả
% Chuong trinh P3-5
% Nghien cuu tinh chat nguoc thoi gian cua DTFT
clf
w=-pi:2*pi/255:pi;
x=[1 2 3 4];
L=length(x)-1;
h1=freqz(x, 1, w);
h2=freqz(fliplr(x), 1, w);
h3=exp(w*L*i).*h2;
subplot(2,2,1)
plot(w/pi,abs(h1)); grid
title('Pho bien do cua day goc')
subplot(2,2,2) plot(w/pi,abs(h3)); grid title('Pho bien do cua day nguoc thoi gian') subplot(2,2,3)
plot(w/pi,angle(h1)); grid title('Pha cua day goc') xlabel('don vi \omega/\pi') subplot(2,2,4)
plot(w/pi,angle(h3)); grid title('Pha cua day nguoc thoi gian') xlabel('don vi \omega/\pi')
Trang 6Biến đổi z của dãy x[n] được biểu diễn bằng
) (
) (
) 1 (
1
0 0
0
2 2
1 1 0
2 2
1 1 0
∏
∏
=
=
−
−
−
−
−
−
−
−
−
=
+ + +
+
+ + +
+
=
=
N k
k
M m
m M
N
N N
M M
p z
z z z
a
b z X
z a z
a z a a
z b z
b z b b z D
z N z X
Trong Matlab biến đổi z trên vòng tròn đơn vị dùng
hàm freqz.
Bài tập 4.1
a Viết biểu thức biến đổi z, X(z) và biểu thức biến đổi
Fourier thời gian rời rạc X(ej ω) của chương_trình_P4_1
b Thực hiện chương_trình_P4_1 để tính phổ biên độ và
phổ pha của X(ej ω) Nó có tuần hoàn với ω không, nếu
có thì chu kỳ bằng bao nhiêu?
c Dùng chương_trình_P4_1 đánh giá biến đổi z sau đây
trên vòng tròn đơn vị
2 45 5
3 5 9 5 2
−
−
−
−
−
−
−
−
+ + + +
+ + + +
=
z z z z
z z z z z
G
% Chuong trinh P4-1
% Danh gia bien doi z tren vong tron don vi
clf;
w=-4*pi:8*pi/511:4*pi; %tinh cac linh vuc tan so
num=[2 1]; den=[1 -0.6];
x=freqz(num,den,w);
%Ve DTFT
subplot(2,1,1);
plot(w/pi,real(x));
grid
subplot(2,1,2)
plot(w/pi,imag(x));
grid
pause
subplot(w/pi,abs(x));
grid
subplot(2,1,2)
plot(w/pi,angle(x));
grid
Giản đồ điểm cực và điểm không của hàm X(z) hữu
tỷ có thể dễ dàng có được sử dụng hàm zplane.
Nếu X(z) thể hiện dưới dạng (1) thì sử dụng lệnh
zplane(num,den) Trường hợp nếu điểm không và
điểm cực của hệ thống đã cho thì dùng lệnh
zplane(zeros,poles)
Bài tập 4.2
Thực hiện chương_trình_P4_2 để vẽ giản đồ điểm cực
và điểm không
% Chuong trinh P4-2
% Xac dinh cac diem cuc/ diem khong cua he thong num=[1 2 3];
den=[2.1 4 7];
zplane(num,den) zeros=[.7 3];
poles=[0.2+j*.1 -.4-j*.5];
zplane(zeros',poles')
Xác định các điểm cực và điểm không của một hệ thống hàm truyền hữu tỷ thực hiện bằng lệnh tf2zp : [z,p,k] = tf2zp(num,den)
Bài tập 4.3
Xác định điểm cực và điểm không của một hệ thống có hàm truyền hữu tỷ thực hiện trong Matlab bằng lệnh
tf2zp
% Chuong trinh P4-3
% Tinh bien doi z nguoc dung ham impz num=[2,5,9,5,3]; den=[5,45,2,1,1];
[x,t]=impz(num,den)
Bài tập
1 Viết chương trình Matlab để tính và hiển thị các điểm cực và điểm không, vẽ giản đồ điểm cực và điểm không của một biến đổi z có dạng phân thức hữu tỷ của z-1 Dùng chương trình đó để phân tích biến đổi z của hệ thống có hàm truyền sau:
9 0 7 0 5
0 3 0 1
3 0 5 0 7 0 9 0
−
−
−
−
−
−
−
−
+ +
− +
+ +
− +
=
z z
z z
z z z
z z
H
2 Nếu các điểm cực và điểm không của biến đổi z đã cho thì có thể tìm lại được biểu thức của biến đổi z bằng lệnh [num,den]=zp2tf(z,p,k)
Hãy viết chương trình MATLAB để tính và hiển thị biến đổi z của các điểm không :
z1=0,3; z2=2,5; z3=0,2+j0.4; z4=-0,2-j0,4
và các điểm cực : p1=0,5; p2=-0,75; p3=0,6+j0,7; p4=0,6-j0,7 với k=3,9
BÀI 4: BIẾN ĐỔI Z
Trang 7Hệ thống LTI có đáp ứng xung h[n] , đáp ứng tần số là :
( )ω
ω φω
ω ω
j
e
e ,
e e H e
]
[
e
H
re im n
H artg n
= ∑=∞−∞
Bài 1: Chương trình P5_1 dùng tính và vẽ phổ biên độ
và phổ pha của mạch lọc trung bình động có hàm truyền
sau :
1
1 1
1 1
1
)
− +
= +
M
z
H
M M
m
m
với M = 7
% Chuong trinh P5_1
% Tinh dap ung tan so cua he thong LTI
clf;
% Tinh cac mau tan so cua dap ung tan so
w=0:8*pi/512:2*pi;
num=[1/8 1/8 1/8 1/8 1/8 1/8 1/8]; den=1
h=freqz(num,den,w);
% Ve dap ung tan so
figure(1)
subplot(2,1,1)
plot(w/pi,real(h));grid
title('Phan thuc cua H(e^{j\omega})')
xlabel('\omega/\pi');
ylabel('Bien do');
subplot(2,1,2)
plot(w/pi,imag(h));grid
title('Phan ao cua H(e^{j\omega})')
xlabel('\omega/\pi');
ylabel('Bien do');
figure(2)
subplot(2,1,1)
plot(w/pi,abs(h));grid
title('Pho bien do cua H(e^{j\omega})')
xlabel('\omega/\pi');
ylabel('Bien do');
subplot(2,1,2)
plot(w/pi,angle(h));grid
title('Pho pha arg[H(e^{j\omega})]')
xlabel('\omega/\pi');
ylabel('Pha do bang radians');
%Tinh dap ung xung don vi
figure(3)
h=impz(num,den,30);
subplot(2,1,2)
stem(h);grid title('Dap ung xung don vi') xlabel('Chi so thoi gian');
ylabel('Bien do');
%Tinh va ve gian do diem cuc diem khong cua he thong subplot(2,1,1)
zplane(num,den);
title('Gian do diem cuc, diem khong')
Bài tập
a Biến đổi chương trình P5_1, tính và vẽ đáp ứng tần số của hệ thống LTI nhân quả có hàm truyền sau:
2 1
2 7 0 5 0 1
) 1 ( 15 0 )
+
−
−
=
z z
z z
b Thực hiện lại với mạch lọc sau :
2 1
2 5 0 7 0
) 1 ( 15 0 )
+
−
−
=
z z
z z
H
c Nêu sự khác nhau giữa hai mạch lọc
Bài 2: Chương trình P5_2 dùng tính và vẽ đáp ứng hệ số
khuếch đại của mạch lọc FIR thông thông thấp H0(z) bậc nhất
%Chuong_trinh_P5_2
%He so khuech dai cua mach loc FIR thong thap clf;
M=1;
num=ones(1,M+1)/(M+1);
[g,w]=gain(num,1);
plot(w/pi,g); grid axis([0 1 -50 0.5]) xlabel('\omega/\pi'); ylabel('He so khuech dai dB'); title(['M = ', num2str(M)])
function [g,w] = gain(num,den)
% Tinh dap ung bien do trong thang dB cua ham truyen
% tai 256 diem deu nhau o nua tren cua vong tron don vi
% Num la vecto he so cua da thuc tu so
% Den la vecto he so cua da thuc o mau so
% w la vecto cac gia tri tan so
% Cac gia tri he so khuech dai cho trong vecto g
w = 0:pi/255:pi;
h=freqz(num,den,w);
g=20*log10(abs(h));
BÀI 5: BIỂU DIỄN HỆ THỐNG LTI TRÊN LĨNH VỰC TẦN SỐ
Trang 8% Tinh DFT
N=input('Chieu dai N cua day =');
M=input('Chieu dai M cua
X[k]=');
%Phat ra day x[n]
x=[ones(1,N)];
% Tinh DFT M diem
X=fft(x,M);
%Ve day x[n] va X[k]
t=0:1:N-1;
stem(t,x)
title('day x[n]')
xlabel('chi so thoi gian n');
ylabel('Bien do')
pause
subplot(2,1,1)
k=0:1:M-1;
stem(k,abs(X))
title('Bien do cua DFT X[k]')
xlabel('Chi so tan so k');
ylabel('Bien do');
subplot(2,1,2)
stem(k,angle(X))
title('Pha cua DFT x[k]')
xlabel('Chi so tan so k');
ylabel('Pha cua X[k]');
%Chuong_trinh_P6_2
% Minh hoa dich chuyen vong mot
day huu han
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('Day goc')
subplot(2,1,2)
stem(n,b);
axis([0,L,min(a),max(a)]);
title(['Day dich chuyen vong ',num2str(M),' mau']);
function y = circshift(x,M)
% Tao ra mot day bang cach dich chuyen vong day x M mau
if abs(M)>length(x)
M = rem(M,length(x));
end
if M < 0
M = M + length(x);
end
y = [x(M+1:length(x)) x(1:M)];
%Chuong_trinh_P6_3
% Tinh chat dich chuyen vong cua DFT
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('Gia tri tuyet doi cua DFT day goc')
subplot(2,2,2) stem(n,abs(YF));grid title('Gia tri tuyet doi cua DFT cua day bi dich')
subplot(2,2,3) stem(n,angle(XF));grid title('Pha cua DFT day goc') subplot(2,2,4)
stem(n,angle(YF));grid title('Pha cua DFT day bi dich');
%Chuong_trinh_P6_4
% Nhan chap thang dung DFT
x = input('Nhap day x[n]=');
h = input('Nhap day h[n]=');
% Xac dinh chieu dai cua day y[n]
= x[n] * h[n];
L = length(x) + length(h) - 1;
% Tinh DFT cua hai day da dien them so khong
XE = fft(x,L);
HE = fft(h,L);
% Tinh IDFT cua tich XE, HE; y1 = ifft(XE.*HE);
% Ve day y1[n]
k = 0:1:L-1;
subplot(2,1,1) stem(k,y1) xlabel('Chi so thoi gian n');
ylabel('Bien do');
title('day y[n]=x[n]*h[n]')
% Ve day y2[n] = x[n] * h[n] tinh truc tiep
y2=conv(x,h);
%Xac dinh sai so giua hai phuong phap tinh
e = y1 - y2;
subplot(2,1,2) stem(k,abs(e));
xlabel('Chi so thoi gian n');
ylabel('Bien do');
title('Bien do cua day sai so')
%Chuong_trinh_P6_5
% Nhan chap khoi cong chong phu
R = 64;
d = rand(R,1) - 0.5;
for m=1:1:R;
s(m) = 2*(m - 1)*((0.9)^(m - 1)); x(m) = s(m) + d(m);
end
k = 0:1:R - 1;
M = input('Chieu dai cua mach loc trung binh=');
h = ones(1,M)/M; y = fftfilt(h,x,4); plot(k,s,'r-',k,y,'b ')
xlabel('Chi so thoi gian');
ylabel('Bien do');
legend('r-','s[n]','b ','y[n]') BÀI 6: DFT, FFT VÀ PHÂN TÍCH PHỔ