Tải bản đầy đủ (.pdf) (62 trang)

Bài giảng Xử lý tín hiệu nâng cao (Advanced signal processing) - Chương 4: Biến đổi Fourier của tín hiệu rời rạc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (600.25 KB, 62 trang )

Xử lý tín hiệu nâng cao
-Advanced signal processingChương 4
Biến đổi Fourier của tín hiệu rời rạc


Biến đổi Fourier của tín hiệu rời rạc

T
Y
Không gian
đặc trưng

X
Miền không
gian ban đầu

T-1


Định nghĩa
Biến đổi Fourier của tín hiệu rời rạc được định
nghĩa như sau:


X (e ) =

+∞

∑ x ( n)e

− j ωn



n = −∞

Toán tử FT:

( )

FT [x(n )] = X e




Biến đổi Fourier ngược
Từ miền tần số tín hiệu cũng có thể biến đổi ngược lại miền
thời gian bằng phép biến đổi Fourier ngược:

1
x ( n) =




∫π X (e



)e

jωn






Ta sử dụng ký hiệu IFT để biểu diễn biến đổi Fourier
ngược:

IFT [X (e )] = x(n )



Các phương pháp thể hiện của X(ejω)
Thể hiện dưới dạng phần thực và phần ảo:

X ( e jω ) = R e  X ( e jω )  + j Im  X ( e jω ) 


Các phương pháp thể hiện của X(ejω)
Thể hiện dưới dạng module và argument:




X (e ) = X (e ) e

[

j arg X ( e jω )

Khi đó:

X(ejω) : Phổ của tín hiệu x(n).
|X(ejω)| : phổ biên độ của x(n)
arg[X(ejω)]= ϕ(ω): phổ pha của x(n)

]


Các phương pháp thể hiện của X(ejω)
Quan hệ giữa phổ pha và phổ biên độ với thành
phần thực và ảo của X(ejω):
Phổ biên độ:

[

]

[

X (e jω ) = Re 2 X (e jω ) + Im 2 X (e jω )
Phổ pha:

[
[


Im
X
(
e
)


arg X (e ) = arctg
Re X (e jω )

[

]

]
]

]


Tính chất quan trọng của X(ejω)
Tuần hoàn: Biến đổi Fourier của tín hiệu
X(ejω) tuần hoàn với chu kỳ 2π.
Tính đối xứng:
Re  X (e jω )  = Re  X (e− jω ) 
Im  X (e jω )  = − Im  X (e− jω ) 


X ( e ) = X (e

− jω

)

∠  X (e jω )  = −∠  X (e− jω ) 



Ví dụ 1
Cho dãy

x(n) = 0,5 u (n)
n

Viết chương trình bằng MATLAB thể hiện trên đồ
thị phổ tại 500 điểm rời rạc trong khoảng [- π, π].


Ví dụ 1
Thực hiện biến đổi Fourier của tín hiệu:
x(n) = 0.5 u (n)
n

Áp dụng công thức, sẽ có:
+∞



−∞

0

X (e jω ) = ∑ x(n)e − jωn = ∑ 0.5n e − jωn


= ∑ (0.5e
0


1
) =
1 − 0.5e − jω

− jω n


Ví dụ 1
a. Tìm biến đổi Z của tín hiệu x(n) bằng hàm ztrans
syms n positive;
x=0.5.^n;
X=ztrans(x)
X =
z/(z - 1/2)
Khi đó phổ của tín hiệu x(n) là:

e
X (e jω ) = jω
e − 0.5


Ví dụ 1
b. Viết chương trình bằng MATLAB thể hiện trên đồ
thị phổ tại 500 điểm rời rạc trong khoảng [-π, π].
w=linspace(-pi,pi,500);
X = exp(j*w) ./ (exp(j*w)- 0.5*ones(1,500));
magX = abs(X); angX = angle(X);
realX = real(X); imagX = imag(X);
subplot(2,2,1); plot(w,magX); grid;

title('Pho bien do'); xlabel('Tan so chuan hoa (pi)');
ylabel('Bien do');


Ví dụ 1

subplot(2,2,3); plot(w,angX); grid;
title('Pho pha'); xlabel('Tan so chuan hoa (pi)');
ylabel('Pho theo radians');
subplot(2,2,2); plot(w,realX); grid;
title('Phan thuc'); xlabel('Tan so chuan hoa (pi)');
ylabel('Bien do');
subplot(2,2,4); plot(w,imagX); grid;
title('Phan ao'); xlabel('Tan so chuan hoa (pi)');
ylabel('Bien do');


Ví dụ 1

Bien do

1.5
1
0.5
-4

1
Pho theo radians

2


-2
0
2
Tan so chuan hoa (pi)
Pho pha

-2
0
2
Tan so chuan hoa (pi)
Phan ao

4

-2
0
2
Tan so chuan hoa (pi)

4

0.5

0
-0.5
-1
-4

1


1

0.5

Phan thuc

1.5

0.5
-4

4

Bien do

Bien do

2

Pho bien do

0
-0.5

-2
0
2
Tan so chuan hoa (pi)


4

-1
-4


freqz
Trong Matlab còn có hàm freqz trả về đáp
ứng tần số của một hệ thống tại một số hữu
hạn các điểm rời rạc trên vòng tròn đơn vị khi
biết hàm truyền đạt của nó


Viết chương trình Matlab sử dụng hàm freqz
để vẽ đồ thị phổ của tín hiệu

x(n) = 0,5 u (n)
n


Bài tập
Cho dãy

x(n) = rect8 (n)

Viết chương trình tính và thể hiện phổ của dãy x(n)
tại 512 điểm rời rạc trong khoảng [0,π]


Bài tập

Cho phổ X(ejω) có dạng sau:


X (e ) = e

− jω / 2

.sin(3ω )

Viết chương trình thể hiện trên đồ thị các hàm phổ
biên độ, phổ pha, phần thực và phần ảo của
X(ejω), tính tại 2001 điểm rời rạc trong khoảng
[-2π,2π].


Tín hiệu và hệ thống trong miền tần số rời rạc

Biến đổi Fourier rời rạc thuận DFT
Cho dãy x(n) có chiều dài hữu hạn, khi đó biến đổi Fourier
rời rạc thuận được định nghĩa:
 N −1
kn
x
n
W
(
)
∑
N
X ( k ) =  n =0

0


0 ≤ k ≤ N −1

với:
WNkn = e − jωk n = e

−j


kn
N

k≠


Tín hiệu và hệ thống trong miền tần số rời rạc

Biến đổi Fourier rời rạc thuận DFT
Ta cũng có thể biểu diễn DFT dưới dạng ma trận:
N −1

X ( k ) = ∑ x ( n ) .WNkn
n =0

Ta khai triển:
• k = 0: X ( 0 ) = x ( 0 ) WN0 + x (1) WN0 + x ( 2 ) WN0 +

+ x ( N − 1) WN0


• k = 1: X (1) = x ( 0 ) WN0 + x (1) WN1 + x ( 2 ) WN2 +

+ x ( N − 1)WN( N −1)

• k = 2: X ( 2 ) = x ( 0 ) WN0 + x (1) WN2 + x ( 2 ) WN4 + + x ( N − 1) WN2( N −1)
………………
• k = N-1:
X ( N − 1) = x ( 0 ) WN0 + x (1) WNN −1 + x ( 2 ) WN2( N −1) + + x ( N − 1) WN( N −1)( N −1)


Tín hiệu và hệ thống trong miền tần số rời rạc
Ký hiệu:
 X (0) 


X
1
(
)


X ( k ) =  X ( 2) 




 X ( N − 1) 




 x ( 0) 


x
1
() 

x ( n) =  x ( 2) 




 x ( N − 1) 



WN0
WN0
WN0
 0
WN1
WN2
WN
WN = WN0
WN2
WN4


WN0 WN( N −1) WN2( N −1)



( N −1) 

WN


2 N −1
… WN ( ) 


( N −1)( N −1)

… WN


WN0

Ta có thể viết lại cho gọn dạng biểu diễn theo ma trận như
sau:

X ( k ) = x ( n ) .WN


Biến đổi Fourier rời rạc thuận DFT

function [Xk] = dft(xn,N)
% Tim bien doi Fourier roi rac thuan
% --------------------------------------------% [Xk] = dft(xn,N)
% Xk = day cac he so DFT tren doan 0<=k<=N-1

% xn = day huu han N diem
% N = chieu dai DFT
%
n = [0:1:N-1];
k = [0:1:N-1];
WN = exp(-j*2*pi/N);
nk = n' * k;
WNnk = WN .^ nk; % ma tran DFT
Xk = xn * WNnk;


Biến đổi Fourier rời rạc thuận DFT
Dựa vào hàm này, có thể tính DFT 20 điểm của tín hiệu x ( n) = rect5 ( n)
% Tinh DFT 20 diem cua day x(n)
L = 5; N = 20;
n = [0:N-1];
xn = [ones(1,L), zeros(1,N-L)];
k = n;
Xk = dft(xn,N);
magXk = abs(Xk);
subplot(4,2,1); stem(n,xn);
axis([min(n),max(n)+1,-0.5,1.5]);
title('Sequence x(n)');
xlabel('n'); ylabel('x(n)');
subplot(4,2,3); stem(k,magXk);
axis([min(k),max(k)+1,-0.5,5.5]);
title('DFT of SQ. wave: L=5, N=20');
xlabel('k'); ylabel('X(k)');



Ví dụ 2
Thực hiện biến đổi Fourier của tín hiệu:
x(n)={1,2↑,3,4,5}

với n=[-1:3]

Áp dụng công thức, có:
+∞

X ( e ) = ∑ x ( n )e


− jω n

−∞

= e jω + 2 + 3e − jω + 4e − j 2ω + 5e − j 3ω


Ví dụ 2 (tiếp)
Trên Matlab:
n=-1:3; x=1:5; k=0:500; w=(pi/500)*k;
X=x*(exp(-j*pi*(n'*k)/500));
subplot(2,2,1); plot(k,abs(X));
title('Bien do'); grid;
subplot(2,2,2); plot(k,real(X));
title('Phan thuc'); grid;
subplot(2,2,3); plot(k,imag(X));
title('Phan ao'); grid;
subplot(2,2,4); plot(k,angle(X));

title('Pha'); grid;


×