Kỹ thuật xử lý tín hiệu cho một tín hiệu gia tốc?


7

Tôi đang chạy một số thử nghiệm trong đó tôi đang ghi lại các phép đo gia tốc. Tôi đang tìm cách sử dụng các yếu tố xử lý tín hiệu cho tín hiệu này, nhưng tôi không chắc chắn về việc bắt đầu từ đâu, hoặc cách tiếp cận của tôi nên là gì.

Mục tiêu cuối cùng của tôi là có thể theo dõi các bài đọc tăng tốc trong thời gian thực, và sau đó hiển thị thông báo khi eventxảy ra. Như bạn có thể thấy khoảng 150.000 thời gian mẫu, eventxảy ra.

  • Nếu tôi đang theo dõi dữ liệu này trong thời gian thực, loại kỹ thuật xử lý tín hiệu nào có thể được thực hiện để phản ứng với sự kiện này?
  • Biến đổi Fourier thời gian ngắn (STFT) có phải là một tùy chọn không?

Tôi đang theo dõi dữ liệu của mình bằng Python và chúng có chức năng STFT khá .

Các đối số của chức năng này như sau:

scipy.signal.stft (x, fs = 1.0, window = 'hann', nperseg = 256, noverlap = Không, nfft = Không, 
detrend = false, return_onesided = True, ranh giới = 'số không', padded = True, trục = -1)
  • Làm cách nào để xác định tham số tối ưu để sử dụng để xử lý tín hiệu này?

  • Có phương pháp nào khác mà bạn nghĩ có thể giúp tôi xác định khi eventxảy ra trong thời gian thực (trái ngược với việc chỉ sử dụng cường độ của gia tốc) không?

https://dsp.stackexchange.com/users nhập mô tả hình ảnh ở đây

CHỈNH SỬA 1:

STFT của tôi đã được thêm ở trên.

Câu trả lời:


5

Tôi đang tự hỏi tại sao STFT bật ra. Đối với tôi, không phải là một ngưỡng đơn giản trên chính tín hiệu hoặc trên đường bao của nó sẽ làm tốt hơn / tốt như vậy, sau khi loại bỏ phần gbù?

Khi bạn quyết định "biện pháp" nào là tốt nhất để phát hiện ra event, bạn có thể áp dụng công việc của Basseville và Nikiforov, mà tôi đã trả lời ở đây.

Tài liệu tham khảo kinh điển cho vấn đề đó là Phát hiện những thay đổi đột ngột - Lý thuyết và ứng dụng của Basseville và Nikiforov. Toàn bộ cuốn sách có sẵn dưới dạng bản tải xuống PDF .

Đề nghị của tôi là bạn đọc Chương 2.2 về thuật toán CUSUM (tổng tích lũy).


Cám ơn bạn đã góp ý! Tôi đã thêm một hình ảnh của đầu ra STFT ở trên. Bây giờ, tôi chỉ đơn giản chạy chức năng STFT mà không cần suy nghĩ nhiều đến các tham số chức năng. Gia tốc của tôi đang được thu thập ở tần số lấy mẫu là 500 Hz. Tôi có thể sử dụng điều đó để hỗ trợ các phương pháp của mình không?
Gary

2
@Gary Cảm ơn bạn đã thêm cốt truyện. Tôi đang xem xét các bổ sung tần số cao xuất hiện, nhưng tôi vẫn nghĩ rằng việc tăng biên độ có vẻ dễ bắt hơn --- miễn là nó nắm bắt được tất cả các phiên bản của bạn eventmà bạn muốn phát hiện. Xem câu trả lời của Fat32 để biết ví dụ về những gì tôi đang nói.
Peter K.

Này Peter, làm thế nào để bạn diễn giải âm mưu STFT, và đưa nó vào các điều khoản của giáo dân. Tần số của tôi là trên trục y và thời gian nằm trên trục x. Vậy, tôi có thể nói gì về tần suất xảy ra ở mốc thời gian 2.0?
Gary

@Gary: Có hai điều đối với tôi: a) sự xuất hiện của nội dung điều hòa (subharmonics đến đỉnh chính trước thời điểm đó) và b) một số tiếng ồn tần số cao phổ biến, không hài hòa. Tôi nhìn vào việc cố gắng lọc ra nội dung tần số cao đó và sử dụng nội dung đó để xem liệu nó có giúp xác định nội dung của bạn không event.
Peter K.

STFT xảy ra với bạn vì nó cho phép bạn phát triển bộ thu CFAR khi nền có tông màu trạng thái ổn định

5

Nếu đồ họa này đại diện cho kịch bản ứng dụng điển hình nhất, thì tôi sẽ thực hiện một số ước tính phương sai cửa sổ ngắn đơn giản và thực hiện ngưỡng sau đó;

σx2= =1NΣn= =0N-1xmộtc[n]2

Ở đâu xmộtc[n]là tín hiệu đầu vào bị loại bỏ DC; I E,xmộtc[n]= =x[n]-x¯[n] Ở đâu x¯[n] là giá trị DC (trung bình) của đầu vào x[n] mà địa phương có thể được ước tính bởi

x¯[n]= =1NΣn= =0N-1x[n]
Bạn cũng có thể sử dụng bộ lọc notch chặn DC để loại bỏ mọi DC dựng lên thay vì ước tính nó.

Chọn kích thước cửa sổ đủ nhỏ Nthích hợp cho ứng dụng của bạn. Bạn có thể thực hiện quyết định của sự kiện dựa trên so sánh độ lệch chuẩn (căn bậc hai của ước tính phương sai được tính toán này) với ngưỡng được chọn đúng.

Điều này sẽ dễ dàng được tính toán trong thời gian thực với gánh nặng tính toán ít hơn nhiều so với phân tích miền tần số. Lưu ý rằng trong ứng dụng thời gian thực, các chỉ số tổng của bạn phải đi ngược lại từ mẫu hiện tại (thay vì các fomote ở trên sử dụng tổng kết không chính thức)

Là một giải pháp thay thế hiệu quả thứ hai, bạn cũng có thể thực hiện phát hiện phong bì miền thời gian (tiếp theo là ngưỡng) để kích hoạt sự kiện.


“Cửa sổ ngắn sai ” là đúng, tức làx[n] trong công thức của bạn nên thực sự có nghĩa là x[n]-x¯. Hoặc, ít nhiều tương đương, tín hiệu có thể được lọc thông cao trước khi xử lý thêm.
rời khỏi

@leftaroundabout Phương pháp tốt nhất để xác định tần số cắt để xây dựng HPF của tôi là gì?
Gary

@leftaroundabout đoạn bên dưới công thức thực sự nói lên điều đó nhưng tôi nghĩ nó bị mất trong phần dài. Vì vậy, có vẻ như tôi phải làm cho nó rõ ràng.
Fat32

@Gary HPF là gì vậy? bạn sẽ sử dụng nó ở đâu?
Fat32

@ Fat32 Xin lỗi, tôi chỉ đọc qua bình luận đã chỉnh sửa của bạn. Tôi thích đề xuất của bạn để phát hiện phong bì miền thời gian. Tôi sẽ điều tra tùy chọn này.
Gary
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.