Một số phương pháp để phát hiện một hình sin trong tiếng ồn là gì?


7

Tôi đang tìm kiếm một phân loại rộng về các loại kỹ thuật có sẵn. Một cái gì đó tôi có thể sử dụng để bắt đầu một cuộc khảo sát văn học.

Một số chi tiết:

  1. nên khả thi để thực hiện thời gian thực.

  2. Quyết định nhị phân, tôi sẽ có thể nhập tín hiệu liên tục và thuật toán phải phát hiện thời gian bắt đầu và dừng của hình sin trong dạng sóng.

  3. Không có tín hiệu nào khác, tức là nếu không có hình sin thì sẽ chỉ có tiếng ồn

  4. đầu vào bị giới hạn băng tần và hình sin, nếu có, được đảm bảo nằm trong dải đó.

  5. Sự đánh đổi là giữa tốc độ (bao lâu sau khi xuất hiện hình sin, thuật toán có thể phát hiện ra sự hiện diện của nó) và dương tính giả (nên tối thiểu)

  6. Tôi không thể cung cấp bất kỳ con số chính xác nào về các biện pháp hiệu suất có thể chấp nhận được, vì tôi không chắc chắn về bản thân mình. Tôi dự định thực hiện tất cả các đề xuất của bạn cho ứng dụng của tôi và tự tìm hiểu. Tôi chỉ tìm kiếm các kỹ thuật "tiêu chuẩn" để giải quyết vấn đề này.

Biết thêm chi tiết:

  1. Đầu vào là đầu ra của bộ lọc thông dải, do đó nhiễu cũng chỉ có ý nghĩa trong băng thông.

  2. Không có gì chắc chắn khi hình sin có thể xuất hiện. Thời gian của hình sin nằm trong khoảng 50-100 ms. Biên độ của hình sin sẽ dao động.


1
Có lẽ một cửa sổ trượt (hoặc đi bộ) Máy phân tích Fourier sẽ thực hiện công việc. Có một số chi tiết cần thiết: tiếng ồn cũng bị giới hạn băng tần? Có thời gian điều chỉnh được đảm bảo khi chỉ có tiếng ồn trong đầu vào không? Là tiếng ồn và biên độ hình sin - ổn định theo thời gian?
mbaitoff

Theo tôi hiểu, bạn sẽ phát hiện tiếng bíp trên một kênh ồn ào. Sau đó, bạn nên chỉ định ngưỡng biên độ (năng lượng) sẽ phân biệt tiếng bíp giữa tiếng ồn. Bạn cũng đề cập đến giới hạn băng tần của tiếng bíp. Điều đó có nghĩa là phổ tiếng bíp là dải rộng hay phổ tiếng bíp hẹp nhưng ở bất kỳ đâu trong dải. Bạn cũng nên xác định cách cảm nhận tiếng bíp - giống như âm thanh tăng / giảm nhanh hay chậm, có kèm theo nhấp chuột bật / tắt và thời gian chúng có thể liên quan đến cửa sổ quét.
mbaitoff

Cảm ơn! Điều đó cung cấp cho NHIỀU thông tin hơn về vấn đề.
Peter K.

Bạn có biết gì về sự phân bố của tiếng ồn không? Ngoài ra, làm thế nào chính xác để bạn biết tần số của hình sin một tiên nghiệm (nếu có)?
Jason R

@Jason R tiếng ồn là Gaussian. Tần số của hình sin không được biết đến. Nó chỉ được đảm bảo trong phạm vi 80-250 Hz. Các "tiếng bíp" khác nhau sẽ có cùng tần số trung tâm nhưng biên độ có thể khác nhau.
ankit

Câu trả lời:


2

Tùy thuộc vào tần suất lấy mẫu, FFT (Biến đổi Fourier nhanh) sẽ hoạt động. Ví dụ: nếu tốc độ lấy mẫu của bạn chỉ một lần trong 20 ms, bạn sẽ chỉ nhận được một vài mẫu hình sin, nhưng nếu bạn lấy mẫu cứ sau 0,5 ms thì bạn sẽ nhận được nhiều mẫu hơn. FFT thường hoạt động tốt nhất với số lượng lớn mẫu trung bình trên. Trong trường hợp đó ngay cả khi tín hiệu của bạn là tổng của một vài sin, chúng có thể được xác định chính xác.

Ngoài ra, bạn có thể xem thuật toán MUSIC . Tôi không chắc lắm về các chi tiết về cách nó được thực hiện, nhưng nó đã được thực hiện trong một số tình huống phát hiện thời gian thực. Một thay thế cho MUSIC là thuật toán Esprit .

Tuy nhiên, nếu kích thước mẫu của bạn đủ lớn và nhiễu không làm mất tín hiệu hoàn toàn, thì FFT sẽ là (trung bình) là tùy chọn nhanh nhất.


2
Rút ngắn triển khai MUSIC: trong đó và . là một ma trận NxP trong đó các cột là các hàm riêng tương ứng với các giá trị riêng nhỏ nhất của ma trận tự tương quan, . Xác định P nên là không tầm thường và được bao phủ bởi Wax và Kailath (1985), mặc dù đôi khi bạn có thể thực hiện ước tính "nhãn cầu" để xác định giá trị tín hiệu so với giá trị nhiễu. PMUSIC(ω)=1eHPnePn=EnEnHeH=[0,ejω,...,e(N1)ω]EnRxx
Dave C

2

Một cách để phát hiện hình sin là sử dụng thuật toán Goertzel . Rick Lyons viết một bài viết hay ở đây về cách sử dụng nó để phát hiện .

Liên kết thứ hai đó có phương trình này để lọc tín hiệu đến của bạn và tính toán "thống kê quyết định":

nhập mô tả hình ảnh ở đây


Thuật toán Goertzel dường như là một máy dò cộng hưởng tần số đơn âm. Làm thế nào điều này làm việc cho các tông băng thông rộng trong nhiệm vụ poster ban đầu?
mbaitoff

OP dường như muốn "băng thông" không phải là "băng thông rộng". Nếu bạn chọn độ dài Goertzel tốt, thì nó sẽ có thể đối phó với các hình sin "có giới hạn". Tôi đồng ý rằng có một sự đánh đổi: một hình sin chính xác trên tần số trung tâm của Goertzel sẽ cho số đọc cao hơn một trong cùng một biên độ ở một tần số khác nhau. Hầu hết các cách tiếp cận dựa trên FFT có cùng một vấn đề. Bạn luôn có thể chạy hai hoặc ba máy dò Goertzel với tần số trung tâm khác nhau nếu đây là một vấn đề.
Peter K.

@PeterK, Tại sao người ta không chỉ đơn giản sử dụng một nhóm các âm DFT phức tạp để trộn lẫn với nhau? (Nói cách khác, GA có lợi thế gì so với kỹ thuật trước đây?). Câu trả lời thú vị btw.
Spacey

@Mohammad: Một họ các âm DFT phức tạp chỉ là những gì thuật toán Goertzel đang thực hiện (nếu bạn triển khai một số bộ lọc Goertzel bù tần số).
Peter K.

1
Họ thuật toán Goertzel có thể được coi là đơn giản là sự hợp nhất tính toán của một bộ tạo lũy thừa / hình sin phức tạp cộng với một sản phẩm chấm vector, giống hệt với việc lấy độ lớn của một hỗn hợp phức tạp sử dụng cùng một bộ tạo hàm trig (trừ khả năng ổn định số và động vấn đề phạm vi).
hotpaw2

2

Mọi thứ phụ thuộc vào SNR. SNR càng thấp, bạn càng phải xử lý nhiều hơn để tách tín hiệu khỏi nhiễu. Tôi đã giải quyết một vấn đề tương tự trong quá khứ, nơi tôi đang tìm kiếm một tín hiệu hình sin SNR không liên tục, thấp trên một dải tần số khá rộng. Đây là những gì làm việc cho tôi:

  1. Thực hiện mô tả ngoại tuyến về tiếng ồn của hệ thống của bạn (trong miền tần số). Nếu mức độ tiếng ồn xung quanh thay đổi theo thời gian, hãy định kỳ cập nhật mức độ tiếng ồn trực tuyến này khi thuật toán có độ tin cậy cao rằng tín hiệu quan tâm không xuất hiện. Nếu tiếng ồn không ổn định thì điều này có thể không giúp được gì nhiều (và có thể làm tổn thương).
  2. Thực hiện FFT trượt trên các cửa sổ thời gian riêng biệt. Tìm tần số có năng lượng cao hơn ngưỡng nhiễu nền. Nhận một danh sách các ứng cử viên đỉnh điểm đỉnh điểm có thể là tín hiệu quan tâm. Tôi đã chọn giữ một bộ đệm dữ liệu tròn bao gồm các mẫu từ các cửa sổ thời gian trước để FFT có độ phân giải tần số tốt hơn.
  3. Xây dựng các bộ lọc phù hợp hình sin cho tần suất quan tâm cao nhất được xác định trong FFT. Tìm kiếm câu trả lời trên một số ngưỡng. Bộ lọc đối sánh (còn gọi là chức năng tự tương quan) có thể làm giảm nhiễu thực sự tốt và trong hệ thống của tôi, nó khá tốt trong việc kéo các phát hiện từ những gì thoạt nhìn có vẻ là dữ liệu vô vọng. Là bộ lọc miền thời gian, bộ lọc phù hợp cũng có thể cho bạn biết khi nào tín hiệu xuất hiện và khi nào nó biến mất.

Như những người khác đã khuyến nghị, tôi đã thử nghiệm thuật toán MUSIC để tách tín hiệu khỏi nhiễu. Đối với vấn đề của tôi, việc tìm kiếm tín hiệu SNR thấp hơn FFT một chút tốt hơn một chút, nhưng vì gánh nặng tính toán cao hơn rất nhiều (và thuật toán của tôi đang chạy trên DSP điểm cố định wimpy) tôi đã chọn không sử dụng nó. Sẽ dễ dàng hơn khi chỉ cần đặt ngưỡng phát hiện thấp hơn với FFT, phát hiện các đỉnh giả hơn và loại bỏ chúng trong giai đoạn lọc phù hợp. Phát hiện SNR thấp có thể là một chút nghệ thuật đen tối nhưng nếu bạn biết đủ về hệ thống của mình, bạn có thể phát hiện các tín hiệu có biên độ thấp hơn mức nhiễu xung quanh. Tất cả phụ thuộc vào thông tin bạn biết về hệ thống của bạn mà bạn có thể khai thác.


"Phát hiện SNR thấp có thể là một chút nghệ thuật đen tối" Rất đúng. Tôi tò mò, bạn có được một đỉnh giả trong FFT, xây dựng bộ lọc phù hợp, (bạn đã chọn độ dài như thế nào) và sau đó tương quan chéo, và sau đó đôi khi từ chối câu trả lời? Làm thế nào bạn thậm chí có thể có một đỉnh giả ở nơi đầu tiên sau đó?
Spacey

Bạn nhận được độ dài của bộ lọc phù hợp từ việc biết tỷ lệ lấy mẫu của bạn và tần suất của các đỉnh ứng cử viên. Bạn xây dựng một sóng hình sin đầy đủ và kiểm tra mối tương quan của sóng hình sin được xây dựng trên cửa sổ dữ liệu miền thời gian hiện tại. Nhưng bạn chỉ xây dựng các bộ lọc phù hợp ở tần số đã được xác định là các đỉnh ứng cử viên trong FFT. Bộ lọc phù hợp có khả năng tìm thấy các phát hiện SNR thấp hơn FFT và nó đóng vai trò xác thực. Nếu bạn có SNR cao thì các đỉnh FFT không cần bất kỳ xác nhận bổ sung nào, nhưng nếu SNR thấp, FFT có xu hướng đưa ra các đỉnh giả.
Bob D'Agostino

Bob, tôi hiểu rồi. Và làm thế nào để bạn quyết định rằng một đỉnh tồn tại trong FFT ban đầu? (Số liệu nào bạn sử dụng để tính toán đó?) Một cái gì đó như max over có nghĩa là gì?
Spacey

@ BobD'Agostino: DFT có thể được xem như một ngân hàng của các bộ lọc được lấy mẫu nghiêm trọng, mỗi bộ lọc có đáp ứng xung là một hàm số mũ phức tạp. Không rõ điều này sẽ khác nhiều như thế nào so với cách tiếp cận mà bạn đang đề xuất, trừ khi "tần suất quan tâm cao nhất" của bạn được đo tại các độ lệch DFT phân đoạn, do đó cho phép bộ lọc tập trung tốt hơn vào âm quan tâm. Tuy nhiên, ở SNR thấp, có thể khó xác định vị trí các đỉnh chính xác.
Jason R

0

Tôi sẽ đề xuất như sau:
1. tổ chức một cửa sổ trượt đủ rộng để chứa toàn bộ dải tín hiệu (ít nhất là một vài chu kỳ của tín hiệu tần số thấp nhất)
2. Thực hiện FFT các mẫu hiện có trong một cửa sổ, thu được một phổ công suất từ ​​nó.
3. Cắt phổ với các giới hạn băng tần đã biết.
4. Sắp xếp các giá trị phổ công suất còn lại theo thứ tự giảm dần. Vì tiếng ồn là gaussian, phổ nhiễu sẽ trung bình bằng phẳng trong dải và nếu tiếng bíp đơn âm xuất hiện trong cửa sổ, nó sẽ tạo ra các xung đột.
5. Xác định băng thông tăng đột biến điển hình. Lấy các mẫu biên độ cao nhất từ ​​phổ công suất được sắp xếp cắt, lấy trung bình. Đó sẽ là năng lượng "bíp" tiềm năng.
6. Cũng lấy trung bình của các mẫu băng tần còn lại, đó sẽ là năng lượng tiếng ồn.
7. Tính tỷ lệ năng lượng thu được trong (5) và (6). Nếu tỷ lệ vượt quá ngưỡng cho trước, hãy đặt cờ cho biết tiếng bíp được tìm thấy. Nếu không, đặt cờ hiện không có tiếng bíp.
8. Trượt cửa sổ sang khung tiếp theo (theo mẫu hoặc theo bước lớn hơn).


Tôi nghĩ rằng điều này là thú vị nhưng bạn đã mất tôi trên phần trung bình và sắp xếp. Bạn có thể vui lòng làm rõ các bước của bạn? Cảm ơn.
Spacey

Trên thực tế không cần thiết phải sắp xếp các mẫu công suất, bạn có thể chỉ cần tìm kiếm các đỉnh tần số và lấy một số mẫu xung quanh đỉnh và lấy trung bình chúng. Có lẽ việc sắp xếp thậm chí không cần thiết ở đây trừ khi bạn sẽ tìm kiếm trung vị.
mbaitoff

0

Đây là một vấn đề thống kê. Nếu bạn có thể mô tả nhiễu, thì bạn có thể tìm các đặc điểm cụ thể của tín hiệu quan tâm của mình với xác suất dưới một số khả năng (tỷ lệ lỗi dương tính giả yêu cầu của bạn) để chỉ xuất hiện ngẫu nhiên trong nhiễu.

Nếu bạn biết thời lượng tối thiểu của hình sin quan tâm của mình (giả sử là 50 mS), bạn có thể thử các cửa sổ FFT trượt chồng chéo với độ dài của khoảng thời gian đó và tìm các đỉnh phổ trên ngưỡng được tính bằng cách mô tả nhiễu. Nếu cùng một đỉnh trên tầng nhiễu xuất hiện trong nhiều cửa sổ FFT liên tiếp, thì độ dài của hình sin có thể dài hơn tương ứng, tùy thuộc vào độ dài và chồng chéo khung FFT của bạ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.