Xem mẫu

  1. 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
  2. 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
  3. 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
  4. Đị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
  5. >> 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
  6. 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
  7. 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
  8. 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
  9. 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