Bài viết này khám phá các phương pháp khác nhau để ước tính tần số của tín hiệu đơn âm, đặc biệt tập trung vào việc sử dụng phép biến đổi Fourier rời rạc (DFT) và kỹ thuật **tối ưu hóa sai số bình phương tối thiểu** (Least Squares Estimation - LSE). Chúng ta sẽ xem xét cách DFT có thể được sử dụng để tìm tần số gần đúng và cách các kỹ thuật tối ưu hóa có thể được áp dụng để tinh chỉnh ước tính này. Mục tiêu là cung cấp một sự hiểu biết sâu sắc về những phương pháp này và cách chúng có thể được áp dụng trong các ứng dụng thực tế.
Trong lĩnh vực xử lý tín hiệu, **ước lượng tần số** là một vấn đề quan trọng có nhiều ứng dụng, từ viễn thông đến xử lý âm thanh và hình ảnh. Một phương pháp phổ biến để ước tính tần số là sử dụng phép biến đổi Fourier rời rạc (DFT). DFT cho phép chúng ta phân tích một tín hiệu rời rạc thành các thành phần tần số khác nhau. Tuy nhiên, DFT có một số hạn chế, đặc biệt khi tần số thực tế không khớp chính xác với một trong các "bin" tần số của DFT.
Để khắc phục hạn chế này, chúng ta có thể sử dụng các kỹ thuật tối ưu hóa để tìm tần số mà cực tiểu hóa sai số giữa tín hiệu gốc và một **tín hiệu đơn âm** (sinusoid) với tần số ước tính. Kỹ thuật phổ biến nhất là **tối ưu hóa sai số bình phương tối thiểu**, nơi chúng ta cố gắng tìm tần số làm cho tổng bình phương sai số giữa tín hiệu gốc và tín hiệu đơn âm ước tính là nhỏ nhất.
Giả sử chúng ta có một tín hiệu thực tùy ý `x[n]` và chúng ta tính DFT của nó, `X[k]`. Để đơn giản hóa, chúng ta có thể đặt tất cả các giá trị DFT thành 0, ngoại trừ `X[k^]` và `X[N-k^]`. Khi chúng ta thực hiện biến đổi DFT ngược (Inverse Discrete Fourier Transform - IDFT) trên tín hiệu này, chúng ta sẽ thu được một hàm sin thực `y[n]` với tần số góc `2πk^/N` radian trên mỗi mẫu.
Về bản chất, `y[n]` là hàm sin có tần số `k^/N` (chu kỳ trên mỗi mẫu) mà cực tiểu hóa **sai số bình phương tối thiểu** so với tín hiệu gốc `x[n]`. Điều này có thể được chứng minh bằng định lý Parseval. Tuy nhiên, câu hỏi đặt ra là, nếu chúng ta muốn tìm cosin của một tần số cụ thể mà cực tiểu hóa sai số bình phương tối thiểu so với tín hiệu gốc `x[n]`, nhưng tần số đó không nằm trong các "bin" tần số của DFT, liệu chúng ta có thể sử dụng DFT không?
Một kỹ thuật thường được sử dụng là **zero-padding**, thêm các giá trị 0 vào tín hiệu trước khi tính DFT. Tuy nhiên, zero-padding một mình có thể không đủ, vì cosin thu được có thể đánh giá thấp biên độ của tín hiệu gốc. Điều này là do zero-padding chỉ làm tăng độ phân giải tần số của DFT mà không thực sự cải thiện độ chính xác của ước lượng tần số.
Để tìm cosin của một tần số cụ thể cực tiểu hóa **sai số bình phương tối thiểu**, chúng ta cần giải quyết một bài toán tối ưu hóa. Cụ thể, chúng ta muốn tìm các giá trị của biên độ `a`, tần số `f`, và pha `θ` mà cực tiểu hóa hàm sau:
arg mina, f, θ Σn=0N-1 | a cos(2πfn + θ) - x[n] |2
Đây là một bài toán **tối ưu hóa sai số bình phương tối thiểu phi tuyến tính**. Tuy nhiên, nó có thể được giải quyết tương đối dễ dàng nếu chúng ta có một điểm khởi đầu tốt, và DFT có thể cung cấp điểm khởi đầu này.
Nếu tần số `f` đã biết, bài toán trở nên đơn giản hơn nhiều. Chúng ta chỉ cần tìm các giá trị của `a` và `θ` mà cực tiểu hóa:
arg mina, θ Σn=0N-1 | a cos(2πfn + θ) - x[n] |2
Mặc dù bài toán này có vẻ phi tuyến tính theo `θ`, chúng ta có thể sử dụng **đồng nhất thức lượng giác** để chuyển đổi nó thành một bài toán tối ưu hóa tuyến tính:
cos(α + β) = cos(α)cos(β) - sin(α)sin(β)
Với đồng nhất thức trên, bài toán trở thành:
arg mina, θ Σn=0N-1 | a cos(θ)cos(2πfn) - a sin(θ)sin(2πfn) - x[n] |2
Bài toán này có thể được viết dưới dạng ma trận và giải bằng các phương pháp **sai số bình phương tối thiểu tuyến tính**.
Ngoài các phương pháp cơ bản đã đề cập, còn có các kỹ thuật nâng cao hơn để ước lượng tần số tín hiệu đơn âm, đặc biệt là khi tín hiệu bị nhiễu hoặc tần số nằm giữa hai bin DFT. Các kỹ thuật này thường liên quan đến việc kết hợp các phương pháp DFT với các kỹ thuật xử lý tín hiệu bổ sung.
Ước lượng tần số tín hiệu đơn âm là một vấn đề quan trọng với nhiều ứng dụng thực tế. DFT là một công cụ mạnh mẽ để phân tích tín hiệu, nhưng nó có những hạn chế nhất định. Bằng cách kết hợp DFT với các kỹ thuật tối ưu hóa, như **sai số bình phương tối thiểu**, chúng ta có thể đạt được ước lượng tần số chính xác hơn, ngay cả khi tần số thực tế không khớp với các "bin" tần số của DFT. Việc lựa chọn kỹ thuật phù hợp phụ thuộc vào yêu cầu cụ thể của ứng dụng và đặc điểm của tín hiệu.
Bài viết liên quan