Như tôi đã nhận xét trên một bài đăng trước, phương pháp phân tích tần số thời gian được gọi là "biến đổi Fourier ngắn hạn" tương đương với ngân hàng bộ lọc, phân tích tín hiệu của bạn x . Đối với cửa sổ phân tích đã cho w n , có kích thước N , bộ lọc ở tần số k / N là:
h n = w - n e j 2 π n kXxwnNk / N
hn= w- nej 2 πn kN
Đối với các cửa sổ phân tích thông thường (Hann, Hamming hoặc thậm chí là hình chữ nhật), điều này tương ứng với bộ lọc thông thấp, với tần số cắt khoảng , được "chuyển" sang tần số bin k (nhờ điều chế hàm mũ phức tạp) , do đó dẫn đến một bộ lọc thông dải.1 / Nk
Tại thời điểm này, để trả lời trực tiếp mối quan tâm của bạn về việc phản ánh nhận thức của con người, một số người đã sử dụng ["biến đổi Q không đổi" (CQT)] [Brown91]. Nó dựa trên cùng một nguyên tắc như FT, theo cách hiểu của ngân hàng bộ lọc. Tuy nhiên, các trung tâm không cách nhau tuyến tính như đối với FT "bình thường", mà là khoảng cách log2. Sau đó quy mô liên quan chặt chẽ đến một quy mô âm nhạc phương Tây: nếu ta chọn f k + 1 = 2 1 / 12 f k , sau đó chúng ta có được 12 tần số mỗi octave (rings a bell :-)?), Và băng thông được thiết lập để , nói, 2 1 / 12 - 1fkfk + 1= 21 / 12fk. Bạn cũng có thể chọn các trung tâm khác, phù hợp nhất với nhu cầu của bạn.21 / 12- 12fk
Bạn có thể tìm thấy việc triển khai CQT ở đây và ở đó, một nghiên cứu gần đây của Giáo sư Klapuri, đi kèm với một nghịch đảo khá tốt có thể được tìm thấy ở đây . Nhóm Audio tại Telecom ParisTech cũng có một triển khai của Giáo sư Prado, nhưng tôi chưa thử.
[Brown91] J. Brown, "Tính toán biến đổi quang phổ Q không đổi", Tạp chí của Hiệp hội âm học Hoa Kỳ, 1991, 89, 425-434
EDIT 20121014: một số câu trả lời và nhận xét cho câu hỏi của bạn (bryhoyt).
Chỉ những ý kiến chung về nhận xét của riêng bạn cho câu hỏi chính: Bạn dường như quan tâm đến nhiều ứng dụng, đối với tôi, không phải là vấn đề khá nhỏ để giải quyết. "Mô hình âm sắc" đối với tôi liên quan nhiều hơn đến nhận dạng giọng nói hoặc tương tự, trong đó độ phân giải hoặc độ chính xác hoặc độ chính xác không phải là vấn đề lớn (hãy xem xét cách MFCC thường được tính toán).
Cũng xem xét có bao nhiêu nhà nghiên cứu hàng đầu ( F. Pachet và nhóm repmus tại IRCAM, Pháp , trích dẫn một số) đang làm việc về chủ đề ngẫu hứng và đệm tự động: nhiệm vụ không phải là không thể, nhưng đòi hỏi phải có chuyên môn trong nhiều lĩnh vực. Tóm lại, một hệ thống điển hình cần bắt chước hệ thống thính giác của con người (ít nhất), thực hiện nhận thức âm thanh / âm nhạc / cao độ / nhịp điệu, biết về lý thuyết âm nhạc và đưa ra quyết định dựa trên ước tính của tất cả các bước trước đó. Biến đổi Fourier, hoặc bất kỳ biểu diễn tín hiệu nào, chỉ là một bước (nhỏ) hướng tới mục tiêu cuối cùng - và theo tôi, có thể hiểu rõ nhất cho đến nay.
Điều đó nói rằng, vẫn có khả năng tất cả mọi người đang nhìn xa hơn những gì thực sự xảy ra, và rằng bạn có thể phá vỡ nó trong một giải pháp đơn giản, thanh lịch! Đừng quên xuất bản về nó sau khi nó được thực hiện! :-)
một mẫu 0,1s ở 44kHz là đủ để chứa một dải tần số lớn
FS/ N= 44100 / 4410 = 10 Hz
FFT không thể phát hiện điều này ở tần số thấp và cao, nhưng bạn nói các thuật toán khác có thể: sự đánh đổi là gì?
Câu trả lời ngắn: đọc luận án của tôi về ước tính giai điệu!
Để giải thích thêm một chút: nhiều thuật toán ước lượng cao độ vượt xa các giới hạn của FT, nhờ các giả định về âm thanh để xử lý. Chúng tôi hy vọng các ghi chú từ âm thanh tự nhiên (giọng nói của con người, oboe, sax, piano ...) sẽ phức tạp hơn so với các hình sin đơn. Hầu hết các âm thanh phát ra đều hài hòa ít nhiều, điều đó có nghĩa là chúng có thể được mô hình hóa thành các tổng của hình sin có tần số là bội số của tần số cơ bản.
Do đó, rất hữu ích khi tính đến các sóng hài này khi ước tính cao độ, với các phương pháp sử dụng các hàm phát hiện như tổng phổ, sản phẩm quang phổ hoặc các hàm tương quan tự động tồn tại. Ai đó đã bắt đầu một chủ đề liên quan gần đây.
Sự đánh đổi là gì? Cụ thể hơn, mức độ chính xác tần số tôi có thể mong đợi cho một cửa sổ ngắn hợp lý? (Tôi hiểu kích thước cửa sổ trong CQT là khác nhau - bao nhiêu vậy?) Thậm chí cụ thể hơn, tôi sẽ có thể đến gần mức nào. mục tiêu chênh lệch tần số 0,5% với cửa sổ 0,005s?
Như đã nói trước đây, với một cửa sổ 0,005s, bạn có thể mong đợi một cái gì đó như 200Hz "rò rỉ tần số". Đó thực sự chỉ là vấn đề khi bạn có 2 hình sin với tần số gần hơn 200Hz, do đó FT sẽ không thể chỉ ra rằng chúng là 2 hình sin khác nhau. Chà, chúng tôi ở rất xa 0,5% của bạn (nhân tiện, một nửa cung là 6% tần số!) Và 0,005s thực sự là một chút nhỏ cho mục đích của bạn. Tuy nhiên, nếu bạn muốn cung cấp ước tính cứ sau 0,005 giây, bạn vẫn có thể xử lý các khung chồng chéo dài hơn, như thường được thực hiện trong xử lý lời nói / âm nhạc. Đó có phải là những gì bạn thực sự muốn?
Nk= FSfk( 21 / B- 1 )
BB = 48fk= 100 Hzyêu cầu khoảng 0,7 giây cửa sổ dài. Không có gì để nói rằng sau đó chúng ta mất một chút độ phân giải thời gian ... Nhưng như đã đề cập trước đó, đây chỉ là vấn đề nếu chúng ta quên cấu trúc của âm thanh. Ngoài ra, âm thanh học tâm lý cho rằng dưới 500Hz, con người không thực sự phân biệt các sin sin rất tốt: ngay cả con người cũng bị thách thức ở đó. Tất nhiên, chúng tôi có thể hy vọng máy tính của chúng tôi có thể làm tốt hơn chúng tôi, nhưng ở đây, chúng tôi phải đối mặt với một vấn đề khó khăn!
Cuối cùng, lưu ý rằng các cách khác để tính toán biểu diễn tần số thời gian của âm thanh tồn tại, hãy xem xét các ngân hàng bộ lọc gammatone. Ưu điểm của CQT mà tôi đã đề cập trước đây là có phần mềm cho cả biến đổi và đảo ngược của nó. Cá nhân, tôi vẫn tuân theo STFT, mặc dù, vì đơn giản và bởi vì, cho đến nay, tôi chưa bao giờ cần độ phân giải tốt hơn ở tần số thấp, ngay cả để tách nguồn.
[Schoerkhuber2010] Schoerkhuber, C. và Klapuri, A., "Hộp công cụ biến đổi Constant-Q để xử lý âm nhạc", Hội nghị điện toán âm thanh và âm nhạc lần thứ 7, Barcelona, Tây Ban Nha, 2010.