Bạn có thể tăng độ phân giải tần số của FFT mà không tăng kích thước cửa sổ không?


12

Tôi muốn sử dụng STFT để phân tích nhiều điểm. Tôi nhận ra việc phát hiện các hạt tồn tại trong tín hiệu chỉ là khởi đầu. Tôi vẫn có vấn đề với nó.

Giả sử tôi có tín hiệu được lấy mẫu với tần số 'CD' 44100Hz. Với cửa sổ 1024mẫu tôi nhận được độ phân giải bin tần số 22500Hz/512=43Hz. Điều này là đủ chỉ để phân biệt các ghi chú piano cao như: C5 = 523.251HzC#5 = 554.365.

Tôi đã từng nghĩ 1024là một cửa sổ khá lớn. Nhưng có lẽ nó không phải và thông thường các cửa sổ lớn hơn được sử dụng để phát hiện các hạt?

Có thể tăng độ phân giải tần số với một số phương pháp khác ngoài việc tăng kích thước cửa sổ, điều này làm xấu đi độ phân giải thời gian? Tôi nghĩ về hai phương pháp:

Phương pháp 1:

  1. Chia tín hiệu thành các dải tần với bộ lọc thông dải (ví dụ 0-11.25Hz11.25-22.5Hz).
  2. Giảm mẫu băng tần cao hơn để tần số cao ban đầu sẽ có tần số thấp (vì vậy hãy sử dụng băng tần thứ hai 11.25-22.5Hz -> 0Hz-22.5Hz) - không chắc điều này là có thể.
  3. Thùng kết quả đặt với nhãn điều chỉnh.

Phương pháp 2:

  1. Sử dụng hàng loạt bộ lọc thông thấp với giới hạn tăng dần.
  2. Thực hiện FFT trên các dải tần số tăng.
  3. Đối với mỗi tần số, hãy sử dụng độ phân giải tốt nhất có thể (các thùng từ FFT đầu tiên có tần số này được bao gồm).
  4. Điều này sẽ khiến tần số thấp có độ phân giải tốt hơn nhưng tôi nghĩ điều này là ổn vì đối với các ghi chú cao hơn, sự khác biệt tần số là vắt.

Tôi sẽ biết ơn bất kỳ nhận xét về vấn đề này.

Tôi cũng đọc ở đây: Làm thế nào để kích thước cửa sổ, tỷ lệ mẫu ảnh hưởng đến ước tính sân FFT? về phương pháp cải thiện kết quả chọn đỉnh. Tôi nghĩ sẽ cố gắng sử dụng nó.


Nếu bạn biết chỉ có một thành phần hình sin, bạn có thể đặt một parabola vào các thùng lân cận của đỉnh và nội suy để tìm đỉnh "thật". Không chắc cách này so với phương pháp pha được mô tả bởi @pichenettes.
endolith

Câu trả lời:


9

Nếu bạn thực sự khăng khăng sử dụng FFT (chứ không phải là phương pháp tham số, sẽ không phải chịu sự đánh đổi thời gian / tần số), bạn có thể giả mạo độ phân giải tốt hơn nhiều bằng cách sử dụng thông tin pha để phục hồi tần số tức thời cho mỗi thùng FFT. Các hạt sau đó có thể được phát hiện bằng cách tìm các cao nguyên trong hàm cho tần số tức thời như là một hàm của chỉ số bin FFT. Việc triển khai phổ biến kỹ thuật này như được mô tả trong bài viết này sẽ "tiêu tốn" cho bạn thêm một STFT (tần số tức thời được phục hồi bằng các thao tác trên STFT của tín hiệu và STFT của đạo hàm của tín hiệu).

Xem ví dụ chức năng ifgram trong triển khai Matlab này của mô hình hình sin của tín hiệu âm thanh.

Lưu ý rằng điều này sẽ không giúp giải quyết hai phần rơi vào các thùng FFT liền kề. Nó sẽ chỉ cung cấp một ước tính tần số chính xác hơn nhiều so với việc chuyển đổi thành tần số chỉ số bin FFT của một đỉnh phổ.


Bạn có ý nghĩa gì bởi các phương pháp tham số? Ngoài ra, có phải bạn đã vài tháng trước đã đề cập đến một thuật toán giống FFT nhưng có thang đo quãng tám thay vì thang tần số thống nhất không?
Jim Clay

Các phương thức tham số là các phương pháp phân tích tín hiệu thống kê giả định rằng tín hiệu được tạo ra bởi một quy trình cụ thể được mô tả bởi một bộ tham số và tính toán ước lượng bình phương nhỏ nhất của các tham số này từ các quan sát. Ví dụ: nếu bạn giả sử rằng tín hiệu là tổng của N hình sin bị nhiễu theo cấp số nhân + nhiễu, các thuật toán như ESPRIT hoặc MUSIC có thể được sử dụng để suy ra N biên độ và xung phức tạp.
pichenettes

2
Có lẽ bạn đang đề cập đến biến đổi Q không đổi. Thông báo trước là không nơi nào hiệu quả về mặt tính toán như FFT; và việc đảo ngược biến đổi này là một vấn đề tối ưu hóa không hề nhỏ.
pichenettes

@JimClay: Có lẽ điều này nên được di chuyển ở đây?
endolith

1
Để nói rằng các phương pháp tham số không bị đánh đổi theo thời gian / tần số là sai lệch. Tại cốt lõi của họ, các phương pháp tham số mô hình hóa hệ thống và sử dụng mô hình để trích xuất dữ liệu có ý nghĩa. Nhưng hiệu suất chỉ tốt như mô hình. Giả sử mô hình "tốt nhất" được chọn (số cực hoặc số lượng trình tạo không gian tín hiệu), hiệu suất của các phương thức này vẫn rất nhạy cảm với độ dài bản ghi dữ liệu.
Bryan

2

Thuật ngữ "giải quyết" có nhiều ý nghĩa. Nói chung, bạn không thể tăng khả năng phân tách (hoặc "giải quyết") các đỉnh phổ cách đều nhau bằng cách nội suy bằng cách sử dụng cùng một chiều dài cửa sổ dữ liệu. Nhưng bạn có thể ước tính tần số của các phổ phổ đứng yên bị cô lập cao hơn mức nhiễu với độ phân giải tốt hơn (đôi khi độ phân giải cao hơn nhiều) so với khoảng cách bin FFT bằng các phương pháp nội suy khác nhau.

Các phương pháp nội suy kết quả FFT phổ biến cho các ước tính độ phân giải cao hơn bao gồm nội suy parabol, nội suy Sinc, đệm dữ liệu vào một FFT dài hơn nhiều và các phương pháp bộ phát âm pha sử dụng các cửa sổ chồng chéo (hơi).

Một FFT về cơ bản là một ngân hàng của các bộ lọc thông dải, mỗi bộ lọc có sự chuyển tiếp rất dốc nhưng hàng tấn gợn sóng dải dừng cho chiều dài nhân bộ lọc FIR nhất định. Như vậy, các bộ lọc này không có tiếng ồn lớn từ chối tiếng ồn không định kỳ trong cửa sổ. Nếu bạn nghi ngờ loại nhiễu này là một vấn đề, thì FFT cửa sổ hoặc bộ lọc tùy chỉnh có thể hoạt động tốt hơn.


1

Sau khi nghiên cứu sâu hơn gọi bởi Jim Clay câu hỏi và pichenettes câu trả lời trong ý kiến tôi thấy rằng tôi Method2 được tái phát minh Bounded Q-transform mô tả ví dụ bằng cách Kashima và Mont-Reynaud (Tôi không chắc tôi có thể liên kết đến bài viết này, tập tin hình tách ) .

Cách tiếp cận của họ là hiệu quả hơn về mặt thuật toán khi họ bắt đầu từ dải tần số lớn nhất và lặp đi lặp lại mẫu của nó cho đến khi họ đạt được quãng tám thấp nhất.

Lợi ích của biến đổi Q cũng được Brown khám phá chẳng hạn ở đây . Nó có thể không hiệu quả như FFT đơn lẻ, nhưng có một lợi thế là không tính toán FFT dày trên các dải tần số cao không yêu cầu điều này.

Cảm ơn tất cả các câu trả lời, ý kiến ​​và liên kết.


Những gì bạn đang mô tả nghe rất giống một biến đổi wavelet, dường như được xác nhận bởi điều này . Tôi nhận ra đây là một bài viết cũ, nhưng độc giả tương lai cũng có thể muốn xem xét các bước sóng. Mặc dù, như tôi đã chỉ ra trong câu trả lời của mình, bạn không thể thay đổi nguyên tắc không chắc chắn về tần suất thời gian, nhưng kiến ​​thức về dữ liệu có thể cho phép bạn gian lận một chút.
orodbhen

1

Nếu bạn giữ một "lịch sử" của các đầu vào và sử dụng nó để chồng lấp các DFT của bạn, thì nó sẽ cung cấp thêm thông tin để trích xuất nội dung phổ từ đó. Tất nhiên, điều đó phụ thuộc vào tính chất thay đổi thời gian của tín hiệu của bạn. Nó sẽ tương tự như một hàm phân phối xác suất.

Điều này sẽ cung cấp cho bạn các DFT được đặt cách nhau theo thời gian. Tuy nhiên, nó vẫn sẽ làm tăng tính không chắc chắn theo thời gian của mỗi DFT, vốn bị ràng buộc bởi các quy luật tự nhiên: giá trị chính xác của hành vi thời gian và phổ có thể được xác định đồng thời.

Tuy nhiên, nếu nội dung tần số không thay đổi nhiều trong cửa sổ, thì nó sẽ ổn.

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.