1. Trang chủ
  2. » Giáo án - Bài giảng

thuc hanh DSP

8 568 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 165,5 KB

Nội dung

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 1

Bà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 2

Bà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 4

Biế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à ejω 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 5

Bà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 ( ej(ω− ω 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 6

Biế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 7

Hệ 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Ổ

Ngày đăng: 10/07/2014, 09:00

Xem thêm

w