Có một thuật toán để tìm tần số mà không có DFT hoặc FFT không?


34

Tôi đang tìm trong cửa hàng ứng dụng Android cho một bộ chỉnh guitar. Tôi tìm thấy một ứng dụng bắt sóng cho rằng nó nhanh hơn các ứng dụng khác. Nó tuyên bố nó có thể tìm thấy tần số mà không cần sử dụng DFT (tôi ước tôi vẫn có URL cho thông số kỹ thuật này).

Tôi chưa bao giờ nghe nói về điều này. Bạn có thể thu được tín hiệu âm thanh và tính toán tần số mà không cần sử dụng thuật toán DFT hoặc FFT không?

Câu trả lời:


29

FFT thực sự không phải là một cách tuyệt vời để tạo ra một bộ chỉnh. FFT vốn đã có độ phân giải tần số hữu hạn và không dễ để phát hiện những thay đổi tần số rất nhỏ mà không làm cho cửa sổ thời gian quá dài khiến nó khó sử dụng và chậm chạp.

Giải pháp tốt hơn có thể dựa trên vòng khóa pha , vòng chậm trễ bị khóa , tự động tương quan, phát hiện và theo dõi zero crossing, phát hiện tối đa hoặc tối thiểu và theo dõi và kết hợp chắc chắn thông minh của các phương pháp này.

Tiền xử lý luôn giúp.


5
Việc một FFT có thể phát hiện các thay đổi tần số nhỏ không phải là vốn có về độ dài của nó, mà phụ thuộc vào tỷ lệ tín hiệu trên tạp âm. Với độ nhiễu và nhiễu đủ thấp, phép nội suy kết quả FFT có thể dễ dàng tạo ra độ phân giải tần số một ngăn phụ.
hotpaw2

bất cứ ai có thể giúp tôi với điều này: - stackoverflow.com/questions/42359344/ trên
dreamBegin

12

Một FFT báo cáo đỉnh hoặc tần số phổ tần số (được định lượng theo kích thước thùng FFT), khác với cao độ âm nhạc. Có thể tần số cao độ cảm nhận bị thiếu hoàn toàn khỏi phổ FFT.

Một số bộ chỉnh guitar đơn giản nhất chỉ sử dụng bộ lọc thông thấp hoặc băng thông và đo thời gian giữa các điểm giao nhau. Đối ứng cho một ước tính tần số.

Autocorrelation là một phương pháp ước lượng cao độ phổ biến khác; và tương quan trượt hoặc các biện pháp tự tương tự khác có rất nhiều biến thể, chẳng hạn như trượt ASDF (chênh lệch bình phương), AMDF (chênh lệch trung bình), so khớp mô hình phi tuyến tính, chỉ kiểm tra thích ứng cho một phạm vi độ trễ hạn chế, nội suy trễ, cửa sổ và lựa chọn cửa sổ thích ứng, trọng số khác nhau hoặc sử dụng lý thuyết quyết định để chọn trong số nhiều chuỗi lịch sử độ trễ tiềm năng, v.v. Một vấn đề với hầu hết các biện pháp tự tương tự là chọn quãng tám thích hợp, vì quãng tám phụ có thể hiển thị gần giống nhau.

Các khả năng khác bao gồm sử dụng PLL, bộ giải điều chế cầu phương được lọc, biến đổi Hilbert được lọc, v.v.

Nhưng lưu ý rằng một số phương pháp lọc và giải điều chế DSP gần như tương đương với việc thực hiện 1 thùng của một DFT có cửa sổ, có thể phù hợp hoặc không phù hợp như một câu trả lời cho câu hỏi của bạn.


8

Phát hiện cao độ có thể được thực hiện theo nhiều cách linh hoạt và tò mò. Một cách để làm điều đó là bằng cách sử dụng autocorrelation . Bài viết này đưa ra một ví dụ về cách nó có thể được sử dụng. Tự động tương quan có thể được thực hiện đơn giản một cách lố bịch bằng cách sử dụng bộ tương quan 1 bit (không thể tìm thấy bất kỳ giấy tờ nào về điều đó vì một số lý do). Vì vậy, về mặt lý thuyết, cao độ có thể được phát hiện nhanh hơn so với FFT, nhưng tôi nghi ngờ rằng nó sẽ chính xác hơn nhiều nếu không xử lý trước thực sự thông minh.


Tôi nghĩ rằng liên kết bị hỏng? ...
Spacey

Không, tất cả các công trình. Tôi chỉ kiểm tra nó.
Phonon

7

Ngoài ra, hãy xem Hilbert-Huang Transform (HHT) tương đối mới được định nghĩa bằng thuật toán . Nó có thể xử lý các tín hiệu phi tuyến tính phi tuyến tính có thể phù hợp với ứng dụng của bạn.


Đây là một viên ngọc quý khi tôi tìm thấy nó, mặc dù nó không cung cấp cho bạn sự phân rã phạm vi, mà thay vào đó, sự phân tách tần số tức thời .
Spacey

Hầu hết các tín hiệu thực tế là hơi không ổn định, đó là chúng thay đổi một chút về biên độ và tần số. HHT ít nhạy cảm hơn với các biến thể này và do đó phân tách các tín hiệu đó theo cách tự nhiên hơn, trong đó các bộ phận có liên quan chặt chẽ hơn với các hiện tượng vật lý cơ bản.
Nordlöw



2

Bạn thực sự có thể tính toán tần số của tín hiệu bằng cách sử dụng phổ giả của nó, xem xét các hàm riêng của ma trận tự tương quan của nó. Về cơ bản, nó phân hủy tín hiệu của bạn thành các không gian nhiễu và tín hiệu. Từ đó, bạn có thể tìm thấy phổ của nó. (Bạn cũng có thể giới hạn nó và cung cấp cho nó một dải tần số để kiểm tra). Nó cũng là tiếng ồn miễn dịch khá. Tất nhiên, đây là một phương pháp tham số, không phải là phương pháp không tham số như DFT.


Rõ ràng điều này sử dụng FFT mặc dù? mathworks.com/help/toolbox/signal/ref/peig.html
endolith

1
@endolith Bạn có thể tính toán mà không cần bất kỳ FFT nào liên quan. Từ ma trận tương quan, bạn có được các hàm riêng, và sau đó là không gian con nhiễu. Sau đó, bạn có thể xây dựng vectơ tần số của riêng mình để chiếu, do đó không sử dụng FFT.
Spacey

1

Tất cả phụ thuộc vào nền tảng mà bạn muốn xử lý nó, nếu bạn cần một mạch đơn giản, tôi khuyên bạn nên làm nổ tín hiệu với mức tăng và biến nó thành một sóng vuông và đo khoảng thời gian với một vi điều khiển bằng bộ định thời.

Nhưng nếu bạn muốn làm quen với xử lý tín hiệu, hãy xem phương pháp NHẠC:

http://en.wikipedia.org/wiki/Mult Môn_signal_ classification

Hy vọng nó giúp


0

Tồn tại rất nhiều phương pháp ước tính cao độ mà không sử dụng DFT / FFT, một số trong số chúng bao gồm phương pháp MUSIC được liệt kê trong bài viết này: https://ieeexplore.ieee.org/abab/document/6521410/ Kết quả mô phỏng trong bài báo này cho thấy rằng khi tần số cơ bản rất thấp, phương pháp NLS chính xác vượt trội so với các phương pháp khác trong số được liệt kê.

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.