FFT, hay fast Fourier transform, là một cách nhanh để tính biến đổi Fourier rời rạc (DFT). Nếu bạn bắt đầu với các mẫu cách đều, DFT cho biết mỗi mẫu tần số rời rạc xuất hiện nhiều đến mức nào trong các mẫu đó.
Điểm quan trọng là FFT không làm thay đổi kết quả. Nó cho ra đúng các giá trị DFT như công thức tính trực tiếp, nhưng đạt được điều đó với ít phép tính lặp lại hơn nhiều.
FFT Trong Một Câu
FFT là một thuật toán nhanh hơn để tính ra chính các giá trị trong miền tần số mà DFT đã định nghĩa.
DFT Đo Điều Gì
Giả sử bạn có các mẫu . DFT tạo ra các số được định nghĩa bởi
Mỗi đo mức độ dữ liệu khớp mạnh đến đâu với một mẫu tần số rời rạc.
Nếu các mẫu được lấy cách đều với tần số lấy mẫu , thì khoảng cách giữa hai bin tần số liền kề là
Điều kiện đó rất quan trọng. Nếu không biết tần số lấy mẫu, bạn vẫn có các bin DFT, nhưng không thể gán cho chúng các tần số vật lý như hertz.
Vì Sao FFT Nhanh Hơn
FFT là một họ thuật toán dùng để tính DFT một cách hiệu quả. Mẹo chính là tái sử dụng cấu trúc trong các hệ số mũ phức thay vì tính lại từ đầu những tổng gần như giống hệt nhau.
Phiên bản dễ hình dung nhất là FFT radix-2. Nó hoạt động tự nhiên nhất khi là lũy thừa của , và nó tách một phép biến đổi độ dài thành hai phép biến đổi độ dài trước khi ghép kết quả lại.
Với DFT tính trực tiếp, số phép toán tăng theo bậc . Với các phương pháp FFT phổ biến, nó giảm xuống khoảng .
Khoảng cách đó là lý do FFT quan trọng trong thực tế. Với đầu vào nhỏ, cả hai cách đều có thể chấp nhận được. Với đầu vào lớn, FFT nhanh hơn rõ rệt.
FFT Chia Nhỏ Công Việc Như Thế Nào
Thay vì so sánh trực tiếp mọi mẫu với mọi mẫu tần số, FFT chia bài toán thành các phép biến đổi nhỏ hơn rồi ghép lại bằng các hệ số pha.
Một cách tách chuẩn là:
- Đưa các mẫu có chỉ số chẵn vào một danh sách.
- Đưa các mẫu có chỉ số lẻ vào một danh sách khác.
- Tính các phép biến đổi nhỏ hơn trên các danh sách đó.
- Ghép hai nửa lại với nhau.
Đó là chiến lược chia để trị áp dụng cho phân tích tần số.
Ví Dụ FFT 4 Điểm
Xét tín hiệu 4 điểm
Mẫu này luân phiên giữa và , nên ta kỳ vọng có một số cấu trúc tần số thay vì kết quả hoàn toàn phẳng.
Tách theo chỉ số chẵn và lẻ:
DFT 2 điểm của phần chẵn là
và DFT 2 điểm của phần lẻ là
Với FFT 4 điểm, bước ghép là
trong đó
Vì , bước ghép trở nên đặc biệt đơn giản:
Bây giờ hãy diễn giải kết quả.
là thành phần tần số bằng không, nên nó phản ánh giá trị trung bình khác của các mẫu. Giá trị khác tại thể hiện phần luân phiên của mẫu trong trường hợp 4 điểm này. Nếu bạn trừ đi giá trị trung bình trước, thì hạng sẽ biến mất và thành phần luân phiên sẽ nổi bật rõ hơn.
Ví dụ này nhỏ, nhưng ý tưởng thì mở rộng được: giải các phép biến đổi nhỏ hơn, rồi ghép chúng lại thay vì xây dựng lại toàn bộ tổng mỗi lần.
Những Lỗi Thường Gặp Với FFT
Xem FFT Và DFT Là Hai Kết Quả Khác Nhau
Không phải vậy. FFT là một cách nhanh hơn để tính DFT.
Đọc Các Bin Như Tần Số Vật Lý Quá Sớm
Vị trí các bin chỉ trở thành tần số vật lý khi biết khoảng cách lấy mẫu. Nếu tần số lấy mẫu là , thì khoảng cách giữa các bin là đối với các mẫu cách đều.
Cho Rằng Zero-Padding Thêm Thông Tin Mới
Zero-padding có thể làm phổ trông mượt hơn vì nó lấy mẫu phép biến đổi nền mịn hơn, nhưng nó không thêm dữ liệu đo mới.
Bỏ Qua Khâu Chuẩn Bị Tín Hiệu
Việc loại bỏ giá trị trung bình, dùng cửa sổ và chọn cách lấy mẫu cẩn thận có thể rất quan trọng. Nếu bỏ qua các điều kiện đó, đầu ra FFT vẫn có thể đúng về mặt toán học cho các mẫu đã cho nhưng lại dễ gây hiểu sai khi diễn giải.
FFT Được Dùng Ở Đâu
FFT xuất hiện ở mọi nơi cần thông tin miền tần số nhanh từ dữ liệu lấy mẫu. Các ví dụ phổ biến gồm phân tích phổ, lọc tín hiệu, xử lý ảnh, phân tích rung động, giải số phương trình vi phân và tính đa thức hoặc tích chập nhanh.
Lý do mang tính thực tế: nhiều phép toán trở nên dễ hơn hoặc nhanh hơn sau khi chuyển từ miền mẫu sang miền tần số.
Thử Một Trường Hợp Tương Tự
Lấy mẫu cách đều của một sóng sin trong đúng một chu kỳ đầy đủ và tính DFT bằng máy tính cầm tay hoặc script. Sau đó thêm một độ lệch hằng số và so sánh đầu ra mới. Giá trị mạnh hơn tại là một cách đơn giản để thấy FFT đã tách những gì.
Cần trợ giúp giải bài?
Tải câu hỏi lên và nhận lời giải từng bước đã được xác minh trong vài giây.
Mở GPAI Solver →