Tín hiệu làm mịn / phát hiện sự va chạm trong luồng dữ liệu


11

(EDIT: Câu hỏi này xuất phát từ Trích xuất dữ liệu thẻ từ nhị phân từ WAV thô )

Đây là tín hiệu của tôi (dòng trên cùng) và bộ lọc IIR cơ bản được áp dụng (dòng dưới cùng)

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

(EDIT: nhiệm vụ của tôi là chia tín hiệu thành nhị phân 0 (tần số F) và nhị phân 1 (tần số 2F) - đó là lý do tại sao nó được gọi là F2F. Vì vậy, tôi cần xử lý nó theo cách đảm bảo không có các đỉnh giả. ảnh chụp màn hình làm cho nó trông tầm thường, có một vấn đề tiềm ẩn là đạt được đỉnh kép và cũng có thể nhận được dương tính giả trong máng giữa các đỉnh thực sự.)

Câu hỏi của tôi là, phương pháp nào có sẵn để làm mịn tín hiệu này? Là IIR đặt cược tốt nhất của tôi?

Tôi có thể thấy ít nhất ba khả năng:

  • IIR y [n] = 0,9 * y [n-1] + 0,1 * x [n] trong đó y [x] = 0 khi x <0

  • Di chuyển / cửa sổ trung bình - đặt đường cong Bell với diện tích 1.0 so với xung quanh nói w = 10 mẫu mỗi bên và tích hợp bellSmooth (x) = integ [xw, x + w] {bell (k) .samp (k)} dk

  • Xác định tần suất dự kiến ​​và FFT / loại bỏ các thùng thứ tự cao hơn / FFT ngược

Tôi có thể đã trả lời câu hỏi của riêng tôi, nhưng có lẽ điều này không đầy đủ và tôi chắc chắn rằng tôi đang sử dụng thuật ngữ sai. Ngoài ra tôi không thể thực sự dự đoán những ưu và nhược điểm. Phương pháp cuối cùng ít hấp dẫn hơn vì nó đòi hỏi kiến ​​thức về tần số tín hiệu cơ bản. Nhưng sau đó, phương pháp thứ hai cũng vậy; Tôi cần chọn một chiều dài cửa sổ thích hợp.

Có phương pháp nào khác không?


6
Những đặc điểm của tín hiệu ban đầu bạn đang cố gắng bảo tồn / đo lường? Chẳng hạn, thời gian giữa các điểm cực đại, chiều cao của cực đại, lượng thời gian trên một ngưỡng, có gì khác không?
Martin Thompson

Thời gian giữa các đỉnh ... và thậm chí điều này không cần quá chính xác - đó là tín hiệu F2F (tôi sẽ sửa đổi câu hỏi để tham chiếu nguồn tín hiệu và đưa ra bối cảnh)
P i

Đây là để xử lý trực tuyến hay ngoại tuyến?

Đề tài luận án của tôi là tiếng ồn làm mịn trong luồng dữ liệu. Bạn có thích bài viết hoặc chủ đề này?

Câu trả lời:


6

Hiệu ứng trung bình

Sử dụng bộ lọc trung bình di động sẽ làm giảm các bất thường trong tín hiệu. Tiếng ồn trở thành E / N trong đó N là chiều dài của bộ lọc trung bình di chuyển. Tác dụng phụ của việc sử dụng MA là các đỉnh tín hiệu trở nên rộng hơn và nông hơn.

Ngoài ra, nội dung tần số của tín hiệu sẽ thay đổi. Một bộ lọc trung bình di chuyển trong miền thời gian cũng giống như việc tạo tín hiệu miền tần số bằng một hàm chân, mọi thứ sẽ bị nhoè đi.

Thuật toán phát hiện đỉnh Phát hiện đỉnh là một vấn đề phổ biến trong 9/10 vấn đề kỹ thuật. (không thực sự, nhưng một TON phụ thuộc vào họ)

Thông thường đây là những gì được thực hiện:

Ngưỡng trung bình

1) Look for all peaks in your signal. (i.e., a point that is larger than the two
   adjacent points
2) take this list of points and for each one of them compute:
   med_threshold = median(Peak,Width) + constantThresholmedian   where median is the
   median value of the data centered at "Peak" with Width being the number of 
   points to look at.
       a) The Width(usually written as Lambda in literature) and constantThreshold
          (usually written as C) are determined by trial and error and using the ROC
          curve (Acronym below)
3) if the peak's magnitude is above this threshold accept it as a true peak. 
   Else: Discard it, its a false peak
4) Generate a Receiver Operating Characteristic Curve(ROC) to how well the algorithm
   is performing.

Đây là một ví dụ:

suppose we have the signal X = [ 0 0 0 0 1 3 **9** 2 1 1 **2** 1 1 ] 
1) 9 and 2 are both potential peaks 
2) Lets use a window of 5 and  a threshold =2
so at 9 we have [1 3 9 1 2] -> [1 1 2 3 9]  so Median(9,5) = 2
9 > 2 +2, therefor its a peak
Lets take a look at 2: [ 1 1 2 1 1] -> [1 1 1 1 2 ] Median(2,5) = 1
2 < 1+2, therefor it is NOT a peak. 

Xác định tần số

Bây giờ, bạn đã tìm thấy hiệu quả nội địa hóa thời gian của cực đại cố gắng tìm tần số của chúng:

1) Use the locations of the peaks to generate a pulse train
      a) this means create sum(Dirac_delta[t-L(n)]) where L(n) is the nth time that 
      you've localized through median thresholding
2) Apply FFT Algorithm
3) Look for largest peak. 

Ước tính tần số thay thế

1) Think of this like a beat in a piece of music (I learned about thresholding by
   researching Onset Detection.
2) Compute the average time distance between detected peaks.
3) now call your results BPM or PPM (pulses per minute) 

Các nghiên cứu bổ sung

Mặc dù bạn có thể hài lòng với tín hiệu cực đại như hiện tại, có những thuật toán được áp dụng cho một loạt các vấn đề khác nhau được gọi là Phát hiện khởi phát.

Phát hiện khởi phát là một lĩnh vực lớn trong nghiên cứu truy xuất thông tin âm nhạc. Nó được sử dụng để xác định khi một ghi chú đang được chơi.

Mẫu nhạc khởi phát

Nếu bạn nghĩ tín hiệu đầu băng của bạn là tín hiệu được lấy mẫu cao, bạn có thể áp dụng nhiều thuật toán mà bạn sẽ tìm thấy trong bài báo này:

http://www.elec.qmul.ac.uk/people/juan/Document/Bello-TSAP-2005.pdf


"[1 3 9 1 2]" Làm thế nào bạn có được số 2 nếu cửa sổ của bạn có chiều rộng = 5?
Spacey

Chú ý cách tôi xếp hàng các con số. trung vị là số giữa trong một tập hợp có thứ tự. [1 1 2 3 9] <- đã đặt hàng, số ở giữa là 2.
CyberMen

Nhìn vào số của bạn, chúng là [1 3 9 1 1]. Bạn lấy 2 từ đâu?
Spacey

@Mohammad đã trải qua một vài chỉnh sửa trong khi thực hiện nó, đã bị xóa. Đã sửa.
CyberMen

Tuyệt thật, cảm ơn nhé! Bây giờ, khi bạn nói 'ghi chú' trong ngữ cảnh âm nhạc, điều đó có nghĩa là tần số đơn hay nhiều tần số? Hay nó không quan trọng? Tôi đang hỏi xem liệu đây có phải là một cách để được sử dụng với một số ứng dụng khác có băng tần hẹp (âm đơn).
Spacey
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.