Biến đổi phạm vi logarit (LFT) trên tín hiệu âm thanh


9

Tôi đang cố gắng phân tích chính xác nhất có thể. Tất nhiên tôi đã thử FFT, nhưng có một số vấn đề.

Tôi thấy tần số thấp có độ phân giải rất thấp so với thính giác của con người. Tôi đã cố gắng FFT thời gian rất dài để giải quyết vấn đề này, nhưng thậm chí phân tích với 8192 mẫu / s ở tốc độ mẫu 44100Hz (Có nghĩa là thiếu độ phân giải thời gian), tôi không đủ độ phân giải ở tần số thấp.

Tôi thấy có ít giải pháp.

Thứ nhất, một phép nội suy bậc hai trên các thùng FFT.
Nhưng nó dường như không phải là một cách hoàn hảo. Các vấn đề của phương pháp này là:

1. 'Nếu tôi muốn xác định freqs giữa các thùng freq, tôi nên chọn ba thùng nào để thực hiện phép nội suy?'
2. 'Ngay cả khi tôi làm điều này, không có thông tin bổ sung thực tế nào về kết quả. Tôi biết nội suy là loại phương pháp phức tạp. '

Thứ hai, trích xuất từng thùng freq với tần suất mong muốn, vì vậy tôi có thể trích xuất các thùng theo logarit.
Nhưng có một vấn đề chi phí tính toán quan trọng: (có thể hơn) N ^ 2.

Thứ ba, LFT (Biến đổi Fourier logarit).
Điều này yêu cầu các mẫu khoảng cách logarit và cho tôi kết quả chính xác những gì tôi đang tìm kiếm với tốc độ cực nhanh; /programming/1120422/is-there-an-fft-that-uses-a-logarithmic-division-of-frequency

Nhưng tôi không có ý tưởng với thuật toán đó. Tôi đã cố gắng để hiểu bài báo và thực hiện nó, nhưng điều đó là không thể vì thiếu kỹ năng tiếng Anh và toán học của tôi.

Vì vậy, tôi cần sự giúp đỡ trong việc thực hiện LFT.

Câu trả lời:


8

Giải pháp đơn giản và thực tế nhất là sử dụng FFT bình thường có kích thước đủ lớn để bạn có được độ phân giải cần thiết ở tần suất quan tâm thấp nhất. Ví dụ: nếu bạn muốn độ phân giải 1 Hz ở tần suất quan tâm thấp nhất thì bạn sẽ cần cửa sổ FFT 1 giây, tức là kích thước FFT sẽ cần phải bằng tốc độ mẫu, ví dụ 44100.

Lưu ý rằng ngay cả khi bạn có thể thực hiện FFT logarit thì nó vẫn bị ràng buộc bởi các định luật vật lý (lý thuyết thông tin) và bạn vẫn sẽ cần một cửa sổ mẫu có độ dài tương tự - tất cả những gì bạn có được sẽ là sự tiện lợi (không phải tổng hợp các thùng đầu ra ) với chi phí thực hiện.


Thật lạ. Tôi biết rằng về mặt lý thuyết không có thêm dữ liệu. Nếu tôi sử dụng FFT kích thước lớn, sự thật là nó không thể phân tích các bộ nhạc cụ rất nhanh. Và cũng đúng là tôi không thể có được độ phân giải cao hơn ở tần số thấp. Nhưng làm thế nào về hệ thống thính giác của con người? Làm thế nào hệ thống đó có được độ phân giải cao hơn cả về thời gian và tần số?

3
Có lẽ bạn nên xem xét một cách tiếp cận chữ tượng hình, trong đó bạn ước tính mỗi quãng tám liên tiếp theo hệ số 2, để bạn có thể sử dụng cửa sổ thời gian ngắn ở tần số cao hơn và cửa sổ thời gian dài hơn ở tần số thấp hơn? Điều này sẽ hơi giống với một ngân hàng lọc thính giác, nơi băng thông tăng theo tần số.
Paul R

Cách tiếp cận tuyệt vời. Goertzel thời gian dài trên tần số thấp, goertzel thời gian ngắn trên tần số cao? Có ý nghĩa. Nhưng sẽ đòi hỏi một chi phí tính toán lớn.

Đây có thể là nhiều hơn hiệu quả hơn là làm một FFT lớn, mặc dù nó phức tạp hơn. Ví dụ: đối với hệ thống phân cấp 4 quãng tám, bạn có thể muốn 4 x 2048 điểm FFT và 3 bộ lọc thông thấp để lấy mẫu x2. Độ phân giải của FFT thấp nhất sẽ tương đương với một FFT 16384 điểm duy nhất ở tốc độ mẫu đầy đủ, nhưng vì FFT là O (n log n) nên tổng chi phí tính toán sẽ thấp hơn nhiều.
Paul R

aha, FFT 2048, xuống mẫu x2, FFT 2048, xuống mẫu x2 .... so với tôi có cả độ phân giải thời gian và tần số, với chi phí thấp hơn nhiều so với 16384 FFT. Tuyệt quá. Và bây giờ tôi có một giải pháp khác: trên mẫu 16384, goertzel mỗi lần bằng 32. Vì vậy, với việc tích lũy, tôi có thể trích xuất cả tần số thấp và cao với chi phí thấp hơn. Cảm ơn rất nhiều. :)

0

Nếu phân tích bạn định thực hiện yêu cầu tần số tín hiệu trong mỗi thùng, bạn có thể sử dụng Biến đổi Fourier thời gian ngắn để đạt được điều này.

Mỗi thùng của FFT mang lại một số phức đại diện cho thành phần thực và ảo - hoặc sau một chút giai đoạn thao tác và cường độ.

Như tần số = dPhi / dt, (Phi == pha), bằng cách lấy các thùng tương ứng từ các cặp phổ STFT liên tiếp, bạn có thể tính tần số.

DSP Dimension có một bài viết hay về quy trình.


Có vẻ như tôi đang suy nghĩ về một vấn đề phức tạp hơn nữa. Tôi có thể sử dụng FFT, nhưng về phân tích tín hiệu âm thanh, mặc dù nó không phù hợp.

3
Nhìn vào phiên bản "Q không đổi" của Biến đổi Fourier thời gian ngắn. Sự sắp xếp này của STFT cung cấp độ phân giải tần số điều chỉnh logarit để đáp ứng các yêu cầu cho các dải tần số khác nhau.
dùng2718

Để tôi xem thử. Tôi nghĩ rằng nó chỉ là một hoạt động chuyển đổi ngân hàng bộ lọc đơn giản được áp dụng cho kết quả fft.
Laie
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.