Thuật toán toán học tốt nhất để loại bỏ nhiễu tần số thấp trong dữ liệu?

Vậy thì, để giới thiệu, tôi là một kỹ sư phần mềm, có nền tảng về động học chất lỏng, và hiện đang làm việc cho một công ty nơi chúng tôi phân tích dữ liệu dòng chảy. Thường thì chúng tôi cố gắng hiểu rõ hơn và xác định các mảnh dữ liệu độc đáo. Một điều mà chúng tôi đặc biệt quan tâm là hiểu áp suất ngưng tụ tức thời của các cấu hình bơm khác nhau. Vấn đề là chúng tôi thường gặp phải một lượng lớn tiếng nước đập (water hammer), và tôi cần lọc dữ liệu đó ra để có thể thấy dữ liệu thực sự mà tôi muốn nhìn. Dữ liệu là chuỗi thời gian, với một điểm mỗi giây. Dưới đây có hai bức ảnh. Một cái là dữ liệu gốc, và cái thứ hai có một đường màu xanh được vẽ ra để thể hiện điều mà tôi đang cố gắng đạt được, với một điểm đến mảnh dữ liệu thực sự mà tôi đang cố gắng nội suy.

Suy nghĩ của tôi là làm mượt đường đi rồi cố gắng nhất để khớp lại với điểm mà tôi quan tâm. Có ai có ý tưởng nào về phương pháp làm mượt dữ liệu, hoặc thuật toán lọc nào tôi có thể sử dụng để đạt được điều này không? Cuối cùng, tôi sẽ phải cắm nó vào một nền tảng dựa trên C# hoặc F#, nhưng có thể sử dụng bất kỳ thứ gì để chứng minh ý tưởng trước.

Dữ liệu gốc
Đã được đánh dấu.

CHỈNH SỬA:

OK, có vẻ như có một số người ở đây thông minh vượt trội hơn tôi rất nhiều về toán học và DSP. Tôi đã tiếp thu một số lời khuyên của các bạn, và đã tạo ra một ứng dụng nhỏ mà lấy dữ liệu, chạy qua FFT, cho phép lọc, rồi chạy IFFT. Tôi đã thử nghiệm với ba dạng sóng đứng khác nhau, để đảm bảo mọi thứ hoạt động như thiết kế, xem bức ảnh dưới đây cho một ví dụ về thử nghiệm của tôi với các dạng sóng đứng.

Ba dạng sóng đứng, đã lọc hai cái ở trên cùng.

Và sau đó tôi thử cái tương tự với dữ liệu của mình... với kết quả rất hạn chế. Như đã chỉ ra ở trên, tôi chỉ muốn loại bỏ tiếng nước đập trong đường áp suất, với kết quả là một đường rất mượt mà, và không may, tôi không biết làm thế nào để đạt được điều đó ở đây. Xem bức ảnh bên dưới với dữ liệu thực tế của tôi (cùng dữ liệu như ở trên).

Dữ liệu thực

Như bạn thấy, tôi không thể có được kết quả thực. Dữ liệu nào tôi nên lọc ra để có được kết quả mong muốn? Hay tôi đang làm sai một số toán? Tôi đang sử dụng thư viện số Math.Net để thực hiện các phép toán, và có vẻ như vì tôi có thể làm cho các thử nghiệm của mình hoạt động, tôi nghĩ rằng dữ liệu đang hoạt động, nhưng không biết tôi đang sai ở đâu. DSP hay bất cứ thứ gì trong số này không phải là nền tảng của tôi, vì vậy mọi thứ ở đây tôi phải học trong vài ngày qua. Vì vậy hãy đơn giản hóa bất kỳ câu trả lời nào cho phù hợp!

Link nội dung: https://superkids.edu.vn/mo-bai-ai-da-dat-ten-cho-dong-song-toanhoc-org-a23791.html