2011-11-06 22 views
7

Để xác định độ phong phú của âm thanh, tôi muốn xác định số lượng hài trong một mẫu nhạc. Đối với điều đó, tôi đang sử dụng Đang xử lý với thư viện Minim mang đến cho tôi toàn bộ quang phổ với FFT. Tôi đang tự hỏi làm thế nào để đếm tất cả các đỉnh trong quang phổ được sản xuất bởi FFT, tôi thậm chí không quan tâm đến tần số cơ bản.Harmonics đếm trong một mẫu nhạc

Trả lời

3

Có nhiều cách để thực hiện việc này tùy theo nhu cầu của bạn.

Nếu bạn muốn đếm mọi đỉnh thì bạn nên lặp qua tất cả các tần số trong quang phổ để nhớ liệu cường độ đã tăng hay giảm. Mỗi khi bạn nhận thấy sự thay đổi hướng từ tăng lên giảm bạn tăng bộ đếm đỉnh. Tuy nhiên, lưu ý rằng điều này sẽ bao gồm các đỉnh rất mờ nhạt mà có thể hoặc không thể là những gì bạn cần. Bạn có thể đặt giới hạn tối thiểu về số lần tăng và giảm đã xảy ra cho mức cao nhất để được đăng ký. Ngoài ra, bạn có thể tìm thấy đường cơ sở cho cường độ tín hiệu của bạn (sử dụng trung bình trong trường hợp đơn giản nhất) và sau đó đếm số lượng ngoại lệ dương (với một số độ lệch tối thiểu có thể cấu hình từ đường cơ sở). Bạn có thể sẽ nhận được kết quả tốt hơn nếu bạn sửa đổi phương pháp này để sử dụng đường cơ sở phụ thuộc tần số và tối thiểu để giảm cường độ dần dần ở tần số cao hơn (một lần nữa, nó phụ thuộc vào tín hiệu và nhu cầu cụ thể của bạn cho dù điều này có ích). Một cách đơn giản để làm điều này là chia phổ tần thành các dải (đủ nhỏ để có thể giả định phân bố năng lượng bằng phẳng nhiều hơn hoặc ít hơn trong mỗi băng) và sử dụng đường cơ sở khác nhau và tối thiểu cho mỗi băng tần.

Các vấn đề liên quan