Tôi có một số dữ liệu kính hiển vi bị ô nhiễm bởi một tạo tác nhịp tim mà tôi muốn xóa. Dữ liệu bao gồm một chuỗi hình ảnh thời gian lớn được chụp ở ~ 60Hz.
Đây là một clip ví dụ nhỏ ở dạng GIF:
Tôi đã lấy cường độ pixel trung bình theo thời gian và tính toán biểu đồ bằng phương pháp của Welch:
Như bạn có thể thấy có một đỉnh sắc nét ở ~ 1,8Hz có khả năng tương ứng với nhịp tim (~ 108 nhịp / phút). Ngoài ra còn có một loạt các đỉnh điều hòa ở bội số nguyên là 1,8Hz. Nhịp tim chính xác có thể thay đổi từ tập dữ liệu này sang tập dữ liệu khác, nhưng tôi có thể chỉ định một phạm vi hợp lý về mặt sinh học như được hiển thị bởi khu vực bóng mờ trên biểu đồ.
Những gì tôi muốn có thể làm là:
- Tự động phát hiện tần số cơ bản tương ứng với nhịp tim và tất cả các sóng hài của nó
- Lọc dữ liệu để loại bỏ cơ bản và tất cả các sóng hài.
Hiện tại tôi có thể giải quyết điểm 1 rất thô sơ bằng cách tìm đỉnh lớn nhất trong biểu đồ, sau đó nhân nó với Ở đâu là số lượng đỉnh sóng hài ước tính, nhưng tôi chắc chắn rằng phải có một phương pháp tốt hơn so với hack này.
Về điểm 2, tôi đã bắt gặp câu hỏi này trong đó đề cập đến việc sử dụng bộ lọc lược để loại bỏ một cơ bản và tất cả các hài của nó. Đây có phải là phương pháp tốt nhất để sử dụng? Một cân nhắc quan trọng là tôi sẽ phải áp dụng bộ lọc cho từng khung thời gian pixel trong một mảng lớn, vì vậy một phương pháp tính toán hiệu quả sẽ rất được mong đợi.