Làm cách nào để chọn độ phân giải tần số và kích thước cửa sổ trong FFT?


9

Tôi đang thực hiện phân tích phổ của tín hiệu thay đổi theo thời gian với tần số thay đổi từ 200Hz đến 10kHz. Tôi đang sử dụng FFT để phân tích thành phần tần số trong tín hiệu. Câu hỏi của tôi là:

  1. Làm thế nào để quyết định độ phân giải tần số và độ rộng cửa sổ cho tín hiệu?
  2. Loại chức năng cửa sổ nào phù hợp với tín hiệu thay đổi theo thời gian?
  3. Điều gì nên có kích thước tối ưu cho FFT?

Tốc độ lấy mẫu của tín hiệu là 44,1kHz.


2
Mô hình thay đổi tần số là gì? Có phải tín hiệu đột ngột nhảy giữa các tần số khác nhau, hoặc thay đổi tần số là liên tục? Nếu tín hiệu nhảy, trong khoảng thời gian nào bạn có thể giả sử tín hiệu sẽ vẫn ở cùng tần số? Nếu sự thay đổi tần số là liên tục, sự thay đổi này có mẫu nào (tuyến tính, gaussian, khác)?
Vasiliy

Nó không hy vọng nó đang tiếp tục thay đổi tín hiệu tương tự như tín hiệu Chirp. biên độ cho mỗi tần số có thể thay đổi ngẫu nhiên.
nitin

4
Bạn nói rằng bạn đang dùng FFT để phân tích thành phần tần số. Đây là một bước trung gian và để trả lời chính xác câu hỏi của bạn, chúng tôi cần biết bạn đang cố gắng đạt được điều gì. Bạn dự định làm gì với thông tin đó? Tại sao bạn cần biết thành phần tần số? Bao lâu thì bạn cần cập nhật thông tin này? Không nói cho chúng tôi những thứ này, bạn là người duy nhất có thể biết độ phân giải cần là gì. Trong thực tế, nếu bạn chỉ cần biết câu trả lời ở một hoặc hai tần số, FFT thậm chí có thể không phải là cách tốt nhất để đi.
Scott Seidman

@ScottSeidman, bạn đọc suy nghĩ của tôi.
Vasiliy

1
@ trav1s, chúng ta đều dạy khác nhau. Nếu một sinh viên của tôi đến gặp tôi với câu hỏi này theo cách này, tôi sẽ cố gắng đưa cho anh ta cùng một tin nhắn về nhà mà tôi đã nhận được với nhận xét chi tiết của tôi ở trên- "Một kỹ sư nên hiểu tại sao anh ta hoặc cô ta làm một cái gì đó trước khi bắt tay vào nó ". Có hàng ngàn tài nguyên nơi người ta có thể tìm thấy các phương trình mô tả độ phân giải tần số là hàm của N và có cảm giác như người hỏi có sẵn chúng, nhưng thông điệp đó không được đính kèm với chúng! Hy vọng rằng, prodding đã khiến người hỏi nhận ra rằng anh ta đang giữ câu trả lời.
Scott Seidman

Câu trả lời:


4

Vì bạn đang làm việc với tốc độ mẫu cố định, độ dài FFT của bạn (sẽ yêu cầu cửa sổ của bạn có cùng chiều rộng) sẽ tăng độ phân giải tần số của bạn. Lợi ích của việc có độ phân giải tần số tốt hơn là gấp đôi: điều rõ ràng là bạn có được độ phân giải freqeuecy tốt hơn, do đó bạn có thể phân biệt hai tín hiệu có tần số rất gần nhau. Thứ hai là, với độ phân giải tần số cao hơn, mức nhiễu FFT của bạn sẽ thấp hơn. Tiếng ồn trong hệ thống của bạn có công suất cố định, không liên quan đến số điểm FFT của bạn và công suất đó được phân phối đều (nếu chúng ta đang nói tiếng ồn trắng) cho tất cả các thành phần tần số của bạn. Do đó, có nhiều thành phần tần số hơn có nghĩa là đóng góp tiếng ồn riêng lẻ của các thùng tần số của bạn sẽ được giảm xuống, trong khi tổng tiếng ồn tích hợp vẫn giữ nguyên, dẫn đến tầng tiếng ồn thấp hơn. Điều này sẽ cho phép bạn phân biệt một phạm vi năng động cao hơn.

Tuy nhiên, có những hạn chế khi sử dụng FFT dài hơn. Đầu tiên là bạn sẽ cần nhiều sức mạnh xử lý hơn. FFT là thuật toán O (NlogN), trong đó N là số điểm. Mặc dù nó có thể không ấn tượng như DFT ngây thơ, sự gia tăng N sẽ bắt đầu làm chảy bộ xử lý của bạn, đặc biệt nếu bạn đang làm việc trong giới hạn của một hệ thống nhúng. Thứ hai, khi bạn tăng N, bạn sẽ đạt được độ phân giải tần số trong khi bạn mất độ phân giải thời gian. Với N lớn hơn, bạn cần lấy nhiều mẫu hơn để đi đến kết quả miền tần số của mình, điều đó có nghĩa là bạn cần lấy mẫu trong thời gian dài hơn. Bạn sẽ có thể phát hiện dải động cao hơn và độ phân giải tần số tốt hơn, nhưng nếu bạn đang tìm kiếm các spurs, bạn sẽ có một ý tưởng ít rõ ràng hơn về KHI xảy ra chính xác.

Loại cửa sổ bạn nên sử dụng là một chủ đề hoàn toàn khác, mà tôi không được thông báo để cung cấp cho bạn câu trả lời cho MÀ một cái tốt hơn. Tuy nhiên, các cửa sổ khác nhau có các đặc tính đầu ra khác nhau, trong đó hầu hết (nếu không phải tất cả) là bài có thể đảo ngược xử lý kết quả FFT. Một số cửa sổ có thể khiến các thành phần tần số của bạn bị chảy máu sang các thùng bên (nếu tôi không nhầm, cửa sổ Hanning làm cho các thành phần của bạn xuất hiện trên ba thùng.), Các cửa sổ khác có thể cung cấp cho bạn độ chính xác tần số tốt hơn trong khi đưa ra một số lỗi tăng cho các thành phần của bạn. Điều này hoàn toàn phụ thuộc vào bản chất của kết quả mà bạn đang cố gắng đạt được, vì vậy tôi sẽ thực hiện một số nghiên cứu (hoặc một số mô phỏng) để tìm ra cái nào là tốt nhất cho ứng dụng cụ thể của bạn.


Lưu ý rằng mặc dù có thể trực quan để chạy các đánh giá FFT trên các khối liên tiếp, nhưng cũng có thể chạy chúng trên các khối dữ liệu đầu vào chồng chéo , nghĩa là bắt đầu FFT 1024 điểm sau mỗi 256 mẫu - mặc dù vậy, độ phân giải thời gian tốt hơn chi phí tính toán nhiều hơn.
Chris Stratton

0

Vì vậy, điều đầu tiên trước tiên, tần số lấy mẫu phải ít nhất gấp đôi tần số tối đa của tín hiệu đó là (44.1kHz> 2x10kHz). Tiếp theo nếu độ dài của cửa sổ trong miền thời gian là T thì độ phân giải tần số với FFT chính xác là 1 / T. Độ phân giải trong miền tần số sử dụng FFT không liên quan gì đến tần số lấy mẫu trong miền thời gian. Nhưng như đã chỉ ra trong câu trả lời trước đó, cửa sổ miền thời gian không thể quá lớn bởi vì sau đó bạn sẽ mất thông tin về các tín hiệu giả chỉ bật lên trong giây lát. Vì vậy, phải có một sự thỏa hiệp giữa độ phân giải tần số và phát hiện tín hiệu giả. Cuối cùng FFT không phải là thuật toán duy nhất nhận tín hiệu từ miền thời gian sang miền tần số. Nếu bạn đang tìm kiếm độ phân giải cao trong miền tần số với số lượng mẫu giới hạn trong miền thời gian, bạn có thể sử dụng các kỹ thuật ước lượng phổ có độ phân giải cao như MUSIC và ESPIRIT. Chúng cũng được sử dụng để ước tính hướng đến (DOA) khá giống với bài toán ước lượng phổ.


ừm ... đọc lại nyquist. Nếu bạn muốn xây dựng lại tần số một cách đáng tin cậy, bạn sẽ cần 5-10 lần. Tương tự, một cửa sổ rộng hơn cho phép xây dựng lại tần suất quan tâm thấp nhất đến sóng hài phụ. Tín hiệu giả sẽ không được nhìn thấy một cách đáng tin cậy trong FFT vì dù sao xung dirac có thể có nội dung tần số cao Nhiệm vụ của nó là "ngẫu nhiên", chỉ một thành phần đáng tin cậy / định kỳ sẽ được hiển thị với biên độ đáng kể
JonRB

dải tần của tín hiệu quan tâm là từ 200Hz đến 10kHz ... vì vậy tần số lấy mẫu ít nhất là 4,41 lần tần số tín hiệu ... nếu chúng ta nhìn vào đầu dưới của phổ thì tần số lấy mẫu là 220,5 lần ... chúng ta có thể cần biết tần số được phân phối theo thống kê như thế nào ... dù sao tôi nghĩ rằng tần suất lấy mẫu không phải là vấn đề ở đây!
Yasir Ahmed
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.