Tôi còn khá mới với DSP và đã thực hiện một số nghiên cứu về các bộ lọc có thể để làm mịn dữ liệu gia tốc trong python. Một ví dụ về loại dữ liệu mà tôi gặp phải có thể được nhìn thấy trong hình ảnh sau đây:
Về cơ bản, tôi đang tìm kiếm lời khuyên để làm mịn dữ liệu này để cuối cùng chuyển đổi nó thành vận tốc và chuyển vị. Tôi hiểu rằng gia tốc kế từ điện thoại di động cực kỳ ồn ào.
Tôi không nghĩ rằng tôi có thể sử dụng bộ lọc Kalman vào lúc này vì tôi không thể giữ thiết bị để tham chiếu tiếng ồn do dữ liệu tạo ra (Tôi đọc rằng điều cần thiết là đặt thiết bị phẳng và tìm lượng nhiễu từ các lần đọc đó?)
FFT đã tạo ra một số kết quả thú vị. Một trong những nỗ lực của tôi là FFT tín hiệu tăng tốc, sau đó đưa ra các tần số thấp để có giá trị FFT tuyệt đối bằng 0. Sau đó, tôi đã sử dụng omega số học và FFT nghịch đảo để đạt được âm mưu cho vận tốc. Kết quả như sau:
Đây có phải là một cách tốt để đi về mọi thứ? Tôi đang cố gắng loại bỏ tính chất nhiễu tổng thể của tín hiệu nhưng các đỉnh rõ ràng như trong khoảng 80 giây cần phải được xác định.
Tôi cũng đã mệt mỏi khi sử dụng bộ lọc thông thấp trên dữ liệu gia tốc ban đầu, điều này đã làm rất tốt việc làm mịn nó, nhưng tôi không thực sự chắc chắn sẽ đi đâu từ đây. Bất kỳ hướng dẫn về nơi để đi từ đây sẽ thực sự hữu ích!
EDIT: Một chút mã:
for i in range(len(fz)):
testing = (abs(Sz[i]))/Nz
if fz[i] < 0.05:
Sz[i]=0
Velfreq = []
Velfreqa = array(Velfreq)
Velfreqa = Sz/(2*pi*fz*1j)
Veltimed = ifft(Velfreqa)
real = Veltimed.real
Vì vậy, về cơ bản, ive đã thực hiện FFT trên dữ liệu gia tốc của mình, cho Sz, lọc tần số cao ra bằng bộ lọc tường gạch đơn giản (tôi biết nó không lý tưởng). Sau đó, tôi đã sử dụng số học omega trên FFT của dữ liệu. Cũng cảm ơn rất nhiều cho datageist đã thêm hình ảnh của tôi vào bài viết của tôi :)
fz
mảng, nhưng có vẻ như bạn đang áp dụng bộ lọc đường cao thay thế.