Fast Fourier Transform

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát hiện trạng thái người tham gia giao thông dựa trên smartphone và xây dựng ứng dụng hỗ trợ (Trang 41 - 43)

Tuy dữ liệu cảm biến gia tốc và cảm biến GPS mà hệ điều hành Android xử lý là liên tục, việc lấy mẫu theo khoảng thời gian của phương pháp đã đề xuất khiến các mẫu dữ liệu trở thành dạng rời rạc. Để trích xuất đặc trưng của dữ liệu rời rạc, ta áp dụng biến đổi Fourier để chuyển dữ liệu từ miền thời gian sang miền tần số. Các đặc trưng cần tìm tương ứng với biên độ của tần số. Biến đổi Fourier nhanh (FFT – Fast Fourier Transform) là nhóm các thuật toán áp dụng tính biến đổi Fourier rời rạc của hàm số cho trước một cách hiệu quả [17].

Trong toán học, biến đổi Fourier rời rạc (DFT – Discrete Fourier Transform) là một biến đổi tích phân dùng để khai triển một hàm số theo các hàm số sin cơ sở, có nghĩa là dưới dạng tổng hay một tích phân của các hàm số sin được nhân với các hằng số khác nhau (hay còn gọi là biên độ). Biến đổi Fourier rời rạc có ứng dụng trong nhiều lĩnh vực khác nhau, riêng đối với xử lý tín hiệu số, biến đổi Fourier rời rạc thường được dùng để phân tích phổ tín hiệu, tính tích chập trên miền tần số, khảo sát tần số đáp ứng của hệ thống,… Hình 2.9 minh họa dãy dữ liệu rời rạc trên miền thời gian cùng biểu diễn của nó trên miền tần số tương ứng sử dụng DFT.

Hình 2.9: Minh họa biến đổi Fourier rời rạc

Do việc tính toán DFT trực tiếp đòi hỏi thời gian tính toán lâu và không hiệu quả, đặc biệt khi số lượng mẫu là lớn, các nhóm thuật toán biến đổi Fourier nhanh ra đời nhằm giảm độ phức tạp bài toán này. Áp dụng FFT sẽ giảm độ phức tạp từ O(n2) xuống còn O(nlogn). Một trong các thuật toán biến đổi Fourier nhanh và hiệu quả là thuật toán Cooley – Tukey [18]. Thuật toán này áp dụng phương pháp chia để trị, phân rã DFT với kích thước N = N1 * N2 thành các DFT con nhỏ hơn với kích thước N1 và N2. Thông thường, DFT sẽ được chia thành các DFT con với kích thước N/2 ở mỗi bước, vì vậy thuật toán Cooley – Tukey rất thích hợp cho các DFT với số lượng mẫu là lũy thừa của 2, tuy nhiên việc áp dụng bất kì cách phân tích ra thừa số nào khác đều có thể sử dụng được. Hình 2.10 minh họa cách chia để trị trong bài toán tính toán DFT áp dụng thuật toán Cooley – Tukey với việc phân tích ra thừa số của 2.

Hình 2.10: Minh họa thuật toán Cooley – Tukey cho 8 điểm

Bảng 2.5 minh họa mã giả cho thuật toán Cooley – Tukey:

Bảng 2.5: Mã giả thuật toán Cooley – Tukey

X0,…,N-1 ditfft2(x, N, s) DFT của (x0, xs, x2s,… , x(N-1)s) if N = 1 then x0  x0 else x0,…,N/2-1 ditfft2(x, N/2, 2s) xN/2,…,N-1 ditfft2(x + s, N/2, 2s)

for k = 0 to N/2 – 1 t  xk xk  t + exp(-2i k/N) xk+N/2 xk+N/2  t - exp(-2i k/N) xk+N/2 endfor endif

Trong phạm vi của luận văn, để cài đặt thuật toán FFT, ta sử dụng phần cài đặt trong thư viện Apache Common Math với ngôn ngữ cài đặt là Java.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phát hiện trạng thái người tham gia giao thông dựa trên smartphone và xây dựng ứng dụng hỗ trợ (Trang 41 - 43)

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

(72 trang)