Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
1
BIẾN ĐỔI FOURIER NHANH
Nội dung của biến đổi Fourier nhanh được biểu diễn bằng sơ đồ sau:
*Tính DFT & IDFT
Tính DFT:xác định chuỗi N giá trị phức
{ }
X(k)
khi biết trước chuỗi
{ }
x(n)
chiều
dài N
DFT X(k) =
i = N-1
i = 0
x(n)W
n
kn
0 k N-1
IDFT x(n) =
1
N
i = N-1
i = 0
X(k)W
n
-kn
0 n N-1
W
N
= e
-j2/N
Giải thuật DFT cũng được áp dụng vào tính IDFT
I.Tính trực tiếp
- N
2
phép nhân phức
- N(N-1) phép cộng phức
Đối với biến đổi W
N
:
- 2N
2
phép tính lượng giác
- 4N
2
phép nhân số thực
- 4N(N-1) phép cộng số thực
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
2
- Một số phép toán chỉ số và địa chỉ để nạp x(n)
II.Phương pháp chia - trị
-Nguyên tắc:phân rã nhỏ việc tính DFT N điểm thành việc tính các DFT kích
thước nhỏ hơn các giải thuật FFT
-Phương pháp:
+ Giả sử N=L.M
+ Lưu trữ x(n) và mảng 2 chiều LxM (l:chỉ số hàng, m: chỉ số cột)
x(0) x(1) x(2) x(N-1)
n
0
1
2
N-1
x(0,0) x(0,1) x(0,2)
x(0,M-1)
0
1
2
M-1
x(1,0) x(1,1) x(1,2)
x(1,M-1)
x(2,0) x(2,1) x(2,2)
x(2,M-1)
x(L-1,0) x(L-1,1) x(L-1,2) x(L-1,N-1)
m
l
0
1
2
L-1
+ Cách lưu trữ:
Theo dòng n=Ml+m
Theo cột n=l+mL
+ Tương tự các giá trị DFT x(k) tính được cũng sẽ được lưu trong ma trận
LxM (p:chỉ số hàng, q:chỉ số cột)
Theo dòng k=Mp+q
Theo cột k=p+qL
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
3
+ Phương pháp chia - trị rất hiệu quả khi N=r
1
r
2
r
3
…r
v
phân rã nhỏ hơn đến
(v-1) lần.
A.FFT cơ số 2
- Tiếp tục phân f
1
(n) và f
2
(n) thành các chuỗi N/4 điểm:
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
4
- Ví dụ tính DFT 8 điểm
x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7)
x(0) x(2) x(4) x(6)
x(1) x(3) x(5) x(7)
x(0) x(4)
x(1) x(5)
x(2) x(6)
x(3) x(7)
[0,1,2,3,4,5,6,7]
[0,2,4,6]
[1,3,5,7]
[1,5]
[3,7]
[0,1]
[2,6]
- Khối tính toán cho DFT 2 điểm (hình con bướm)
a
A=a+W
N
'b
b
B=a-W
N
'b
W
N
' -1
+ N=2
v
:
log
2
N :tầng tính toán
N/2 :khối tính toán cơ bản cho mỗi lớp
+ Bộ nhớ : vào : (a,b) - số phức
ra : (A,B) - số phức
+ Có thể lưu đè (A,B) lên (a,b) chỉ cần N ô nhớ phức (2N ô nhớ thực), tính
toán tại chỗ.
- Thứ tự chuỗi dữ liệu vào sau khi phân (v-1) lần
+ Biểu diễn các chỉ số ở dạng nhị phân
+ Chuỗi sau khi phân chia sẽ lấy theo thứ tự đảo các bit
- Phân chia theo tần số
+ Phương pháp chia - trị + M=2, L=N/2
+ Chuỗi dữ liệu nhập được xếp theo cột
+ Phân chia X(k) thành X(2k) và X(2k+1)
+ Sau đó có thể phân chia tiếp mỗi X(k chẵn) và X(k lẻ)
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
5
B.FFT cơ số 4
x(0)
x(2)
x(4)
N=4
v
x(N-1)
L=4 ,M=N/4
l,p=0,1,2,3
m,q=0,1, ,N/4 - 1
n=4m+1
k=(N/4)p+q
x(0)
x(4)
x(N-4)
m=0 m=1
m=(N/4)-1
l=0
x(1)
x(5)
x(N-3)
l=1
x(2)
x(6)
x(N-2)
l=2
x(3)
x(7)
x(N-1)
l=3
x(4n)
x(4n+1)
x(4n+2)
x(4n+3)
n=0,1, N/4-1
- Độ phức tạp :1 khối tính toán cần : 3 nhân phức và 12 cộng phức
- N=4
v
: Tầng tính toán v=log
4
N
Mỗi tâng có N/4 khối tính toán
- Biểu diễn lại ma trận :
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
6
III.Lọc tuyến tính
A.Giải thuật Goertzel
- Dựa vào tính chu kỳ của W
N
k
và biểu diễn việc tính toán DFT như lọc tuyến
tính :
- Kết hợp các bộ cộng hưởng có pole liên hợp phức
- Thực hiện bằng dạng chuẩn tắc
- v
k
(n) được lặp lại cho n=0,1,2….,N ,ỗi vòng cần một phép nhân thực
- y
k
(n) được tính một lần duy nhất cho n=N
- Nếu x(n) là tín hiệu thực cần N+1 phép nhân thực để tính X(k) và X(N-k) do
tính đối xứng.
- Giải thuật Goertzel chỉ thích hợp khi số giá trị DFT cần tính khá nhỏ
(log
2
(N))
A.Giải thuật Chirp-z
- DFT N điểm X(z
k
) với z
k
=e
j2 kn/N
,k=0,1,2….N-1 (các điểm cách đều trên
vòng tròn đơn vị)
- Biến đổi Z của x(n) tại các điểm z là
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
7
- Nếu z
k
=re
j2 kn/N
(z là N điểm cách đều trên vòng tròn bán kính r):
- Tổng quát z
k
nằm trên cung xoắn ốc bắt đầu từ điểm z
0
=r
0
e
j0
đi vào hoặc đi
ra gốc tọa độ:
z
k
=r
0
e
j0
(R
0
r
0
e
j0
)
k
k=0,1,K,L-1
- Xác định tổng chập vòng của chuỗi g(n) N điểm và chuỗi h(n) M điểm
(M>N)
N-1 điểm đầu là điểm lặp lại
M-(N-1) điểm còn lại chứa kết quả
- Giả sử M=L+(N-1)
- M điểm của chuỗi h(n) được xác định -(N-1) n (L-1)
- Định nghĩa chuỗi M điểm h
1
(n)=h(n-N+1) n=0,1,2…M-1
- H
1
(k)=DFT
M
{h
1
(n)}
- G(k)=DFT
M
{g(n)} sau khi đã đệm thêm và g(n) L-1 số 0
- Y
1
(k)=G(k)H(k) y
1
(n)=IDFT{Y
1
(k)} n=0,1,2…M-1
- N-1 điểm đầu tiên của y
1
(n) là các điểm lặp cho nên loại bỏ chúng
- Các điểm kết quả là giá trị của y
1
(n) khi N-1 n M-1
y(n)=y
1
(n+N-1) n=0,1,2…L-1
X
z
(k)=
y(k)
h(k)
k=0,1,2…L-1
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
8
TÌM HIỂU MATLAB
Một số lệnh và hàm của MATLAB :
zeros: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 0.
ones: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 1.
rand: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên được phân bố
đều trong khoảng từ 0 đến 1.
randn: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên theo phân bố
Gauss có giá trị trung bình bằng 0, phương sai bằng 1.
min: trả về giá trị nhỏ nhất trong một ma trận.
max: trả về giá trị lớn nhất trong một ma trận.
fliplr: lộn ngược lại thứ tự các phần tử trong một ma trận theo hướng xuất phát từ
phải qua trái trở thành từ trái qua phải.
plot và stem: vẽ đồ thị của một dãy số, plot để thể hiện dạng liên tục, stem để thể
hiện dạng rời rạc, thường sử dụng hàm stem để vẽ tín hiệu ở miền n.
conv: trả về tích chập của 2 vector.
filter: trả về đáp ứng theo thời gian của hệ thống được mô tả bởi một phương trình
sai phân tuyến tính hệ số hằng.
Bài tập ví dụ về matlab
Bài 1 :Vẽ đồ thị hàm số y=sinx.cos2x trong [0-2]
Giải
x=linspace(0,2,30) %chia doan tu 0-2 thanh 30 phan bang nhau
y=sin(x).*cos(2*x)
plot(x,y) %ve do thi
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
9
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
10
Bài 2 :
x=linspace(-10,10,10)
y=linspace(-10,10,10)
z=sin(sqrt(x.*x+y.*y))./sqrt(x.*x+y.*y)
plot3(x,y,z)
Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu
SVTH :Nguyễn Hữu PhongLớp CĐT4 – K52 MSSV 20072208
11