Xem mẫu
- Thuyết minh cảm biến đo lường-xử kí tín hiệu đo
A.LÍ THUYẾT BIẾN ĐỔI FOURIE NHANH (FFT)
1. Biến đổi Fourier nhanh (FFT – Fas Fourier Transform)
1.1,Tính toán DFT trực tiếp
Từ công thức định nghĩa DFT, ta có:
N 1
2 kn 2 kn
X n x n cos j. s in
n 0 N N
N 1
2 kn
Nếu x(n) là tín hiệu thực: X R k x n
co s
n 0 N
N 1
2 k n
X I k x n
j.s in
n 0 N
XI
| X k | X R (k ) X I2 (k )
2
(k ) arctg
XK
Nếu x(n) là tín hiệu phức, các thành phần thực và ảo tính toán theo công thức
N 1
2 kn 2 kn
X R k x I n c .os x K n . s i n
n 0 N N
N 1
2 kn 2 kn
X I k x I n c .os x K n . s i n
n 0 N N
Để thực hiện tính toán theo công thức này, đòi hỏi các phép toán sau:
- 2N2 hàm lượng giác,4N2 phép nhân số thực, 4N(N – 1) phép cộng số thực
1.2.Thuật toán FFT cơ số 2
1.2.1. Trên miền thời gian
Thuật toán thực hiện DFT trên được xây dựng dựa cơ sở theo sơ đồ hình
bướm
a A = a + W'Nb
sau: b
B = a - W'Nb
Tính toán cho sơ đồ hình bướm cơ sở của thuật toán FFT
1.2.2. Trên miền tần số
Xét DFT N điểm:
PH M NG C TUÂN – CĐT3.K52
- Ta định nghĩa hai chuỗi N/2 điểm g1(n) và g2(n) như sau:
g1 n x n x n N / 2 ; g 2 n x n -x n N / 2 .WNn
Khi đó:
Tính toán cho sơ đồ hình bướm cơ sở của thuật toán FFT trên miền tần số
1. 3. Thuật toán FFT cơ số 4
1.3.1. Trên miền thời gian
Xét DFT N điểm có N là lũy thừa của 4 (N = 4 v).quá trình thực hiện DFT N điểm có thể
thông qua thực hiện 4 DFT N/4 điểm. Biểu thức thực hiện mô tả như sau
Sơ đồ mô tả quá trình thực hiện:
Tính toán cho sơ đồ hình bướm cơ sở của thuật toán FFT cơ số 4
1.3.2. Trên miền tần số( Tương tự như FFT cơ số 2)
2. Tính toán FFT dùng xấp xỉ lọc tuyến tính
PH M NG C TUÂN – CĐT3.K52
- 2.1 Thuật toán Goertzel
Thuật toán Goertzel thực hiện dựa trên khai triển tuần hoàn hệ số pha Wnk .Do Wn kN 1 nên
Mạch lọc với đáp ứng xung h(n) có hàm hệ thống là
Hàm hệ thống của phương trình sai phân là
-
=
Dạng trực tiếp loại 2 của hệ thống mô tả bằng phương trình sai phân sau
1
với điều kiện đầu vk(-1) = vk(-2) = 0.
2.2 Thuật toán Chirp-z
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à các điểm lặp lại
– M-(N-1) điểm còn lại chứa kết quả
N -1
y(k ) = g (n)h(k - n) k = 0,1,K, L -1
n=0
Giả sử M = L + (N-1)
M điểm của chuỗi h(n) được xác định –(N–1) ≤ n ≤ (L–1)
PH M NG C TUÂN – CĐT3.K52
- Định nghĩa chuỗi M điểm h1(n) = h(n–N+1) n = 0,1,…,M–1
H1(k) = DFTM{h1(n)}
G(k) = DFTM{g(n)} (sau khi đã đệm thêm vào g(n) L-1 số 0)
Y1(k) = G(k)H(k) → y1(n) = IDFT{Y1(k)} n = 0,1,…,M–1
N-1 điểm đầu tiên của y1(n) là các điểm lặp → loại bỏ chúng
Các điểm kết quả là giá trị của y1(n) khi N-1 ≤ n ≤ M–1
– y(n) = y1(n+N-1) n = 0,1,…,L-1
X(zk)= y(k)/h(k) k = 0,1,…,L-1
B.Baì tập
9.2.1
a.Tính DFT bằng thuật toán cơ số 2 phân chia theo thời gian
>> x=[3 2 1 0;2.5 1.5 0.5 0]
x=
3.0000 2.0000 1.0000 0
2.5000 1.5000 0.5000 0
>> xfft=fft(x)
xfft =
5.5000 3.5000 1.5000 0
0.5000 0.5000 0.5000 0
b. Tính DFT bằng thuật toán cơ số 4 phân chia theo thời gian
PH M NG C TUÂN – CĐT3.K52
- >> x=[3 1 0 0;2.5 0.5 0 0;2 0 0 0;1.5 0 0 0]
x=
3.0000 1.0000 0 0
2.5000 0.5000 0 0
2.0000 0 0 0
1.5000 0 0 0
>> xfft=fft(x)
xfft =
9.0000 1.5000 0 0
1.0000 - 1.0000i 1.0000 - 0.5000i 0 0
1.0000 0.5000 0 0
1.0000 + 1.0000i 1.0000 + 0.5000i 0 0
>>
9.2.2 Tính DFT bằng thuật toán cơ số 2 phân chia theo miền tần số
>> x=[0.5 0.5 0.5 0.5;0 0 0 0]
x=
PH M NG C TUÂN – CĐT3.K52
- 0.5000 0.5000 0.5000 0.5000
0 0 0 0
>> xfft=fft(x)
xfft =
0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000
>>
Biến đổi lại :
Do đó x(k)=[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]
9.2.3 Xét FFT cơ số 2 của 1024 điểm
log 2 N log 2 1024 10
Do đó cần 10 tầng tính toán
Mỗi tầng cần có :
512 phép nhân phức
1024 phép cộng phức
Tổng cộng cần có ( N / 2) log 2 N =5120 PHÉP NHÂN PHỨC
9.2.4
a.Tính DFT bằng thuật toán cơ số 4 phân chia theo thời gian
>> a=pi/2
a=
PH M NG C TUÂN – CĐT3.K52
- 1.5708
>> x=[1 cos(a*4) cos(a*8) cos(a*12);cos(a*1) cos(a*5) cos(a*9) cos(a*13);cos(a*2) cos(a*6)
cos(a*10) cos(a*14);cos(a*3) cos(a*7) cos(a*11) cos(a*15)]
x=
1.0000 1.0000 1.0000 1.0000
0.0000 0.0000 0.0000 -0.0000
-1.0000 -1.0000 -1.0000 -1.0000
-0.0000 -0.0000 -0.0000 -0.0000
>> xfft=fft(x)
xfft =
-0.0000 -0.0000 -0.0000 -0.0000
2.0000 - 0.0000i 2.0000 - 0.0000i 2.0000 - 0.0000i 2.0000 - 0.0000i
0.0000 0.0000 0.0000 0.0000
2.0000 + 0.0000i 2.0000 + 0.0000i 2.0000 + 0.0000i 2.0000 + 0.0000i
b. Tính DFT bằng thuật toán cơ số 4 phân chia theo miền tần số
>>
>> a=pi/2
PH M NG C TUÂN – CĐT3.K52
- a=
1.5708
>> x=[1 cos(a*1) cos(a*2) cos(a*3);cos(a*4) cos(a*5) cos(a*6) cos(a*7);cos(a*8) cos(a*9)
cos(a*10) cos(a*11);cos(a*12) cos(a*13) cos(a*14) cos(a*15)]
x=
1.0000 0.0000 -1.0000 -0.0000
1.0000 0.0000 -1.0000 -0.0000
1.0000 0.0000 -1.0000 -0.0000
1.0000 -0.0000 -1.0000 -0.0000
>> xfft=fft(x)
xfft =
4.0000 -0.0000 -4.0000 -0.0000
0 -0.0000 - 0.0000i 0 0.0000 - 0.0000i
0 0.0000 0 0.0000
0 -0.0000 + 0.0000i 0 0.0000 + 0.0000i
>>
Đổi lại ta được giá trị X(k)
PH M NG C TUÂN – CĐT3.K52
- C.các lệnh trong matlab dung cho FFT
Matran
X=[ ; ; ; ]
FFT (x) là biến đổi Fourier rời rạc (DFT) của vector x
PH M NG C TUÂN – CĐT3.K52
nguon tai.lieu . vn