Về cơ bản bạn quan tâm đến việc estimating a Spectrum -assuming bạn đã trải qua giai đoạn đọc WAV và chuyển đổi nó thành tín hiệu thời gian rời rạc.
Trong số các phương pháp khác nhau, cơ bản nhất là Biểu đồ định kỳ, số tiền cần thực hiện Chuyển đổi Fourier rời rạc có cửa sổ (với FFT) và giữ độ lớn bình phương của nó. Điều này tương ứng với câu trả lời của Phao-lô. Bạn cần một cửa sổ trải dài qua một vài giai đoạn của tần số thấp nhất mà bạn muốn phát hiện. Ví dụ: nếu sinusoids của bạn có thể thấp đến 10 Hz (khoảng thời gian = 100ms), bạn nên lấy một cửa sổ 200ms o 300ms hoặc hơn (hoặc nhiều hơn). Tuy nhiên, periodogram có một số disadvantages, mặc dù nó đơn giản để tính toán và đó là quá đủ nếu độ chính xác cao là không cần:
Các periodogram liệu không phải là một tốt ước tính quang phổ do phổ thiên vị và thực tế là phương sai ở tần số đã cho không giảm vì số lượng mẫu được sử dụng trong việc tăng tính toán .
Biểu đồ có thể hoạt động tốt hơn bằng cách lấy trung bình một số cửa sổ, với lựa chọn chiều rộng(). Và có rất nhiều phương pháp khác để ước tính phổ (mô hình AR).
Thực ra, bạn không thực sự quan tâm đến việc ước tính phổ đầy đủ, nhưng chỉ là vị trí của một tần số duy nhất. Điều này có thể được thực hiện tìm kiếm một đỉnh của một phổ ước tính (thực hiện như giải thích), nhưng cũng bởi cụ thể hơn và mạnh mẽ (và phức tạp) methods (Pisarenko, thuật toán MUSIC). Họ có lẽ sẽ là quá mức cần thiết trong trường hợp của bạn.
Không thực sự là phiên bản 'fftw', nhưng có hay không nó được biên dịch với hỗ trợ nổi, phải không? –
Đúng, đó là vấn đề về cấu hình xây dựng IIRC. Tôi đã không sử dụng FFTW trong nhiều năm. Có lẽ "phiên bản" không phải là từ chính xác nhất mà tôi có thể đã chọn? –
Phần lớn phần mềm DSP âm thanh cho Linux (và các nền tảng khác) sử dụng FFTW yêu cầu FFTW được xây dựng với hỗ trợ nổi và dành nhiều thời gian để xây dựng nội dung này từ nguồn, ít nhất tôi có thể nói rằng Debian có gói cho các bản dựng khác nhau tùy chọn của FFTW mà tất cả có thể được cài đặt đồng thời. Tôi hy vọng điều này sẽ xảy ra với hầu hết các bản phân phối Linux khác. –