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.
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 ...
... 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ổ.
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 πr a di một n ss a m p l e5000∗.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).