Tôi đang cố gắng tạo ra một chương trình phát hiện cao độ trích xuất tần số của các cực đại trong phổ công suất thu được từ FFT ( fftpack
). Tôi đang trích xuất các tần số cực đại từ phổ của mình bằng Công cụ ước tính đầu tiên của Quinn để nội suy giữa các số bin. Đề án này dường như hoạt động tốt trong các điều kiện nhất định. Ví dụ: sử dụng hàm cửa sổ hình chữ nhật có kích thước cửa sổ 1024 và tỷ lệ mẫu là 16000, thuật toán của tôi xác định chính xác tần số của âm A440 thuần túylà 440,06 với tần số một phần thứ hai là 880,1. Tuy nhiên, trong các điều kiện khác, nó tạo ra kết quả không chính xác. Nếu tôi thay đổi tốc độ mẫu (ví dụ là 8000) hoặc kích thước cửa sổ (ví dụ: 2048), nó vẫn xác định chính xác phần đầu tiên là 440, nhưng phần thứ hai nằm ở khoảng 892. Vấn đề thậm chí còn tồi tệ hơn đối với các âm không giống như các âm được sản xuất bởi một cây đàn guitar hoặc piano.
Câu hỏi chung của tôi là: Tỷ lệ mẫu, kích thước cửa sổ và chức năng cửa sổ ảnh hưởng đến ước tính tần số của các đỉnh FFT theo cách nào? Giả định của tôi là chỉ cần tăng độ phân giải của phổ sẽ tăng độ chính xác của ước lượng tần số cực đại, nhưng rõ ràng đây không phải là kinh nghiệm của tôi (đệm không cũng không giúp ích gì). Tôi cũng giả định rằng việc lựa chọn chức năng cửa sổ sẽ không ảnh hưởng nhiều vì rò rỉ quang phổ không nên thay đổi vị trí cực đại (mặc dù, bây giờ tôi nghĩ về nó, rò rỉ quang phổ có thể ảnh hưởng đến ước tính tần số nội suy nếu cường độ của các thùng liền kề đỉnh được tăng giả tạo do rò rỉ từ các đỉnh khác ...).
Có suy nghĩ gì không?