Tại sao cửa sổ hẹp hơn trong biến đổi Fourier hoặc STFT cho độ phân giải tần số kém?


7

Theo lý thuyết về FT (Biến đổi Fourier) và STFT (Biến đổi Fourier thời gian ngắn), người ta nói rằng "Một cửa sổ rộng cho độ phân giải tần số tốt hơn nhưng độ phân giải thời gian kém. Cửa sổ hẹp cho độ phân giải thời gian tốt nhưng độ phân giải tần số kém"

Ai đó có thể giải thích tại sao một cửa sổ hẹp hơn cho độ phân giải tần số kém?

Câu trả lời:



4

Các câu trả lời khác là tốt, nhưng tôi nghĩ rằng tôi sẽ cố gắng đưa ra một câu trả lời trực quan / trực quan hơn vì tôi là một người trực quan / trực quan.

Hình dưới đây là cốt truyện của hai tông màu gần như cùng tần số. Một tông màu được vẽ bằng màu đỏ và một tông màu xanh khác.

Cửa sổ ngắn

Tôi đã tạo hình ảnh trong Matlab với đoạn mã sau:

tone1 = sin(2*pi*.05 * (0:99));
tone2 = sin(2*pi*.0501 * (0:99));
plot(tone1)
hold on
plot(tone2, 'r')

Như bạn có thể thấy từ cả hình ảnh và mã, hai tông màu có tần số rất gần nhau. Chúng bắt đầu tách ra một chút về phía cuối của cửa sổ ngắn này, nhưng chúng vẫn rất giống nhau, đến mức mà một DFT không thể phân biệt chúng.

Nếu tôi tạo cùng một tông màu với cùng tần số, chỉ có tôi làm cho cửa sổ dài hơn (5000 mẫu lần này thay vì 100) chúng ta sẽ có được một bức tranh khác. Rõ ràng sẽ có nhiều chu kỳ hơn trong mỗi giai điệu ...

Cửa sổ dài

... nhưng đó không phải là phần thú vị. Chúng tôi thấy phần thú vị khi chúng tôi phóng to ở cuối cửa sổ.

Thu phóng cửa sổ dài

Chúng tôi thấy rằng hai tông màu lệch pha 180 độ ở cuối cửa sổ, điều này khiến chúng rất dễ phân biệt. Vậy làm thế nào tôi biết để chọn 5000 mẫu? Sự khác biệt trong hai âm là , do đó mẫu radian..0002πradianssample5000.0002πradianssample=π

Như một câu trả lời khác đã đề cập, độ phân giải của DFT là tần số mẫu chia cho số lượng mẫu (tức là chiều dài cửa sổ). Tôi mặc nhiên tạo ra tần số mẫu 1, vì vậy nếu chúng ta chia 1 cho 5000 (số lượng mẫu), chúng ta sẽ nhận được độ phân giải là 0,0002 Hz. Âm của chúng tôi thực sự khác nhau 0,0001 Hz, có nghĩa là âm2 sẽ có năng lượng trong cả thùng của âm1 và thùng bên cạnh (và một chút trong tất cả các âm khác, nhưng đó là một câu chuyện khác).


3

Khi tính toán độ phân giải tần số hoặc độ rộng thùng của DFT, công thức như sau:

frequency_resolution = sample_rate/fft_size

Giả sử bạn có tín hiệu âm thanh tốc độ mẫu 8000 Hz, nhưng bạn muốn độ phân giải tần số thực sự cao. Bạn chỉ có 8000 mẫu trong một giây, nhưng bạn muốn lấy FFT 32K để có độ phân giải tần số thực sự cao. Khi bạn lấy FFT 32K của một chuỗi 8000 mẫu, bạn cần phải đệm chuỗi đó bằng một tấn số không để điền vào FFT. Không có giá trị gia tăng nào khi thực hiện việc này, vì vậy trong khi bạn có độ phân giải cao trong miền tần số, không có đủ hỗ trợ mẫu để dữ liệu được nội suy. Biểu đồ miền tần số trơn tru và được nội suy.

Bây giờ nói rằng bạn có rất nhiều dữ liệu, nhưng rất nhiều dữ liệu cần có thời gian để điền vào thanh ghi FFT. Giả sử tỷ lệ mẫu của bạn là 8000, nhưng bạn muốn độ phân giải thực sự cao và bạn sẽ chờ đợi nó. Bạn đợi 4 giây để điền vào FFT 32K đó. Bây giờ khi bạn lấy FFT đó, không có phần đệm thêm nào để điền vào nó. Vì vậy, khi bạn nhìn vào cốt truyện, những cái thùng đó không được nội suy, nhưng được hỗ trợ bởi rất nhiều dữ liệu vì bạn đã chờ nó.

Đó là sự khác biệt. Khi bạn có một FFT dài với sự hỗ trợ mẫu thấp, bạn sẽ có được dữ liệu được nội suy. Vì vậy, đó là sự đánh đổi tần số thời gian mà bạn nói đến. Nếu bạn muốn độ phân giải cao, bạn cần dữ liệu để hỗ trợ nó.

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.