Tôi có một tín hiệu mà tôi lấy mẫu ở 500khz. Tôi đang cố gắng phát hiện sự tăng, giảm và mức cao nhất trong dữ liệu đến. Cơ sở của cực đại có thể là 250 usec hoặc 2.5msec, biên độ có thể là 6db hoặc 15db so với mức nhiễu. Tôi không có snr tốt không may. Mức dc của tín hiệu không phải là hằng số mà di chuyển chậm hơn nhiều so với thành phần ac.
Tại điểm quyết định, tôi cần biết độ dốc của sự tăng giảm. Đây là một hệ thống thời gian thực cứng và tôi thực sự cần phải đưa ra quyết định trong 100usec sau khi độ dốc xuống tới mức dc.
Tôi đang tìm kiếm gợi ý làm thế nào tôi có thể thực hiện một thuật toán hiệu quả.
Hiện tại tôi đang chạy trung bình (25 điểm dữ liệu đã được cộng lại) và cố gắng phát hiện xu hướng. Khi tôi phát hiện xu hướng lên, tôi bắt đầu tìm kiếm xu hướng xuống và một khi tôi làm điều đó, tôi có thể thu thập 50 mẫu khác và bắt đầu tính toán.
Tiếng ồn bây giờ dễ dàng vít thuật toán này, do đó câu hỏi.
Ngày mai
Vì lợi ích của người khác, cuối cùng tôi đã triển khai Trung bình Di chuyển theo sau là nhà tích hợp. Di chuyển trung bình của 64 dữ liệu trong quá khứ đã đủ trơn tru nhưng mất đi một mức độ, tích hợp 8 giá trị cuối cùng đã tăng trở lại và tôi chỉ đơn giản là tìm kiếm tăng và giảm, sau đó tôi đã thực hiện hồi quy tuyến tính cho độ dốc. Hoạt động ok, không tuyệt vời nhưng ok.