CÁC TÍNH CHẤT CỦA DPT

Một phần của tài liệu Thực hành xử lý số tín hiệu với matlab (Trang 82 - 89)

Tính chất quan trọng nhất của DPT là tính chất dịch chuyển vòng của dãy theo thời gian và theo tần số.

Dịch chuyển vòng theo thời gian

Nếu G[k] là DPT N điểm của dãy g[n] dài N mẫu, thì DPT N điểm của dãy dịch vòng theo thời gian g[(n - no)^] sẽ là Wn“ G[k] , với

84

Trong MATLAB, tính chất dịch chuyển vòng được thực hiện nhờ hàm circshift như sau:

/unction y = circshiftịx,M)

% Tạo ra một dãy bằng cách

% dịch chuyển vòng

% dãy X M mẫu

if abs(M) > length(x)

M = rem(M,length(x));

end i f M < 0

M = M + length(x);

end

y = [x(M+l:length(x)) x(l:M )];

Chương trình P6-2 sử dụng hàm circshiít nói trên để dịch chuyển vòng4nột dãy có chiểu dài hữu hạn.

% Chương trình P6_2

% Minh họa dịch chuyển vòng một dãy hữii hạn clf;

M = 6;

a = [0 1 2 3 4 5 6 7 8 9];

b = circshift(a,M);

L = Iength(a)-1;

n = 0:L;

subplot(2,l,l);

stem(n,a);axis([0,L,min(a),max(a)]);

title('Day goc');

subplot(2,l,2);

stem(n,b);axis([0,L,min(a),max(a)]);

title(['Dãy dịch chuyển vòng',num2str(M),'mẫu']);

Hình 6.2 mô tả kết quả dãy thu được sau khi dịch chuyển dãy gốc 6 mẫu.

D a y g o c

Hình 6.2. Dãy thu được sau khi dịch chuyển vòng 6 mẫu dùng chương trình P6-2.

Chương trình P6_3 sau đây minh họa tính chất dịch chuyển vòng theo thời gian của DPT dùng hàm circshi/t.

% Chương trình P6-3

% Tính chất dịch chuyển vòng của DPT clf;

x = [ 0 2 4 6 8 10 12 14 16];

N = length(x)-l; n = 0:N;

y = circshift(x,5);

XF = fft(x);

YF = fft(y);

subplot(2,2,l)

stem(n,abs(XF));grid

title('Giá trị tuyệt đối của DPT của dãy gốc');

subplot(2,2,2)

stem(n,abs(YF));grid

title(’Giá trị tuyệt đối của DPT của dãy bị dịch');

subplot(2,2,3)

stem(n,angle(XF));grid

title('Pha của DPT của dãy gốc');

subplot(2,2,4)

stem(n,angle(YF));grid

title('Pha của DPT của dãy bị dịch');

86

Hình 6.3 mô tả tính chất dịch chuyển vòng của DF1’.

G ia tri tu y e t đoi c u a D F T cu a d ay goc G ia tri tu yel doi c u a D P T c u a d a y da bi dich 8 0 r ... --- --- - 80

c > : : : :

60 ...;... -Ị...-Ị... Ị 60

40 --- ;...-ị- - - ■;...- - Ì 4 0

9 : : ;

2 0 ... --- - i - - - 2 0

f Ỹ 9 9 cj> 9

QỈ --- 1---- ---1---- 1---^ ^ --- 1 ũ

í>

r 9

c

^ ĩ t ■ ĩ ^, 9

4

2

P h a cu a D P T c u a d ay goc

- ' < 3

Ó

o o

4

2 Oộ-

P h a cu a D P T c u a d ay bi dich

o ' o

H ình 6.3. Mô tả tính chất dịch chuyển vòng của DPT.

Bài tập

1. Biến đổi chương trình P6-3 bằng cách thêm vào một số lệnh chỉ thị trên các trục cho mỗi hình vẽ. Thời gian dịch bằng bao nhiêu?

2. Chạy chương trình đã biến đổi và kiểm tra tính chất dịch chuyển vòng theo thời gian của DPT.

3. Lặp lại bài tập 2 nhưng với độ dịch chuyển khác và các chiều dài khác.

Dịch chuyển vòng theo tần sổ

Nếư G[k] là DPT N điểm của dãy g[n] dài N mẫu, thì DPT N điểm của dãy;

g [n ], với sẽ là G[(k - k,,)^]

Tính chất nhản chập vòng

Nếu X[k] và H[k] là hai DPT của hai dãy có cùng dũều dài N x[n và h[n], thì DPT N điểm của dãy nhân chập vòng x[n] C i) h[n] sẽ là X[k}H[k]. Tính chất này được mô tả trên sơ đồ hình 6.2.

Hình 6.4. Sơ đồ mô tả tính chất nhân chập vòng của DPT.

Chưcmg trình P6_4 sau đây minh họa tính chất nhân chập vòng của DPT.

% Chương trình P6_4

% Tính chất nhãn chập vòng của DPT gl = [1 2 3 4 5 6];g2 = [ l - 2 3 3 -2 1];

ycir = circonv(gl,g2);

dispCKết qủa nhân chập vòng = ');disp(ycir) GI = fft(gl); G2 = fft(g2);

yc = real(ifft(Gl.*G2));

dispCKết qủa của IDFT và của tích DPT = ');disp(yc) Kết qủa nlìân chập vòng =

12 12 12 12 12 12

Kết qủa của IDFT và của tích DFT = 12 28 14 0 16 14

88

Giả sử [n] và h[n] là hai dãy số thực N mẫu có DPT N điểm tương ứng là G[kJ và H[k], thì hai DFF này có thể được lính khi chỉ sử dụng một DPT X[kJ N điểm của dãv phức x[n] cĩiníỉ có chiểu dài N mẫu được xác định bằng hệ thưc ;

khi đó :

x[n] = g[n] + jh[n

Gík

. L K j - ~ ( x [ k ] + X ‘ [{ -k > j ) H [ k ] = ^ ( x [ k ] - x * [ ( - k ) j )

(6.5)

(6.6) (6.7)

6.3. TÍNH NHÂN CHẬP THẲNG d ù n g DPT

Nhờ có cặp biến đổi Pourier DPT và IDFT, ta có thể tính được phép nlìân chập thcing giữa hai dãy; chẳng hạn x[n] và h[n] . Dãy x[n] có chiều dài N . Dãy h[n] có chiều dài M để thu được dãy lối ra y[n] có chiều dài N+M -1 ta phai tính N+M-1 mẫu DPT Y[kj = H[k]. X[k]. Như vậy ta phải điền thêm (M-1) mẫu giá trị không vào dãy x[n] và (N-1) mẫu số không vào dãy h[n] và sau đó thực hiện theo thuật toán sau:

Hình 6.5. Sơ đồ thuật toán tính nhân chập thẳng dùng DPT.

Trong MATLAB, tính nhân chập thẳng được thực hiện nhờ chương trình P6-5 sau đây:

% Chương trình P6-5

% Nhân chập tlìẳng dùng DPT

x= input ('nhập dãy x[n]= ');

h=input('nhập dãy h[n]=');

%ỵác định chiều dài của dãy y[n]=xỊn]*hlnJ;

L= length(x) + length(h) -1;

%Tính DPTcủa hai dãy đã điền thêm sô'không XE=fft(x,L);

HE=fft(h,L);

%Tính IDÉt của tích XE.HE\

yl=ifft(XE.*HE);

%Vẽ dãy yl[n]

k = 0 :l:L -l;

subplot(2,l,l) stem(k,yl)

xlabel('chỉ số thời gian n');

ylabelCBiên độ’);

titleCday y[n]=x[n]*h[n]')

% V ẽ dãy y2[n]-x[n]*h[n] tính trực tiếp y2=conv(x,h);

% Xảc định sai s ố giữa hai phương pháp tính\

e= yl-y2;

subplot(2,l,2) stem(k,abs(e))

xlabel('chỉ số thời gian n');

ylabel('Biên độ');

Title('Biên độ của dãy sai số')

Chẳng hạn tính nhân chập thẳng giữa hai dãy x[n] = [ 1 2 2 1 ] v à h [ n ] = [ l - l - l 1]

ta sẽ thu được y[n] - [ 1 1 - 1 - 2 - 1 1 1 Kết quả này cho trên hình (6.6).

90

X 10•ie

day y[n]=x[n]*h[nl

rN- chi,SO thoi,gian n Bien do cùả day sai so

chi so thoi gian n

H ình 6.6 Kết quả nhân chập thẳng dùng DPT.

Một phần của tài liệu Thực hành xử lý số tín hiệu với matlab (Trang 82 - 89)

Tải bản đầy đủ (PDF)

(419 trang)