Làm cách nào để tính toán một hàm số từ độ dốc nhiễu của nó?


8

Tôi có mô hình . S(x,y)= =x2+y2,0x1,0y1

Thay vì quan sát trực tiếp mô hình, tôi đang quan sát các dẫn xuất của mô hình + một số nhiễu (e):

 p(x,y)= =Sx+e,q(x,y)= =Sy+e

Từ các phép đo p (x, y và q (x, y) tôi muốn ước tính s (x). Nói rằng tôi biết rằng s (0,0) = 0.

Theo định lý độ dốc:  S(x,y)= =(0,0)(x,y)[Sx,Sy]dr

bất kể dọc theo con đường nào chúng ta tích hợp.

Như một thử nghiệm nhỏ (trong Matlab) tôi đã thêm nhiễu phân tán bình thường, N (0,1), vào p = 2x và q = 2y. Sau đó, tôi tích hợp đầu tiên dọc theo x và theo sau là y: SXY. Tiếp theo tôi tích hợp đầu tiên dọc theo y và theo sau là x: SYX.

Kết quả cho thấy định lý độ dốc không giữ trong trường hợp này (vì nhiễu):

S

SXY

SYX

Các lỗi bình phương gốc có liên quan đến mô hình là:

ErmsXY =
    0.1125
ErmsYX =
    0.0920

Làm cách nào tôi có thể tìm thấy ước tính tốt hơn (ít lỗi RMS hơn và mượt mà hơn) của s từ p và q?

BIÊN TẬP:

Từ những gì tôi đọc được; sử dụng tích phân đường cong được gọi là tích hợp cục bộ. Ngoài ra còn có các phương thức tích hợp toàn cầu trong đó một phương pháp thay vì cố gắng chọn S (x, y) để giảm thiểu:

 0101[|Sx-P|2+|Sy-Q|2]dxdy

Các phương pháp tích hợp toàn cầu được cho là mang lại kết quả tốt hơn khi độ dốc bị nhiễu, nhưng làm thế nào để tôi thực hiện điều này trong thực tế?

EDIT 2:

Một cách tiếp cận mà tôi đã sử dụng là:

 Sx= =Dx*S,Sy= =Dy*S

Kết quả là hệ phương trình tuyến tính sau:

 Dx*S= =p,Dy*S= =q

Tiếp theo tìm một giải pháp Lỗi tối thiểu cho các phương trình này. Một giải pháp LSE cho các phương trình này được cho là tương đương với việc giảm thiểu tích phân từ phía trên. Làm thế nào điều này có thể được hiển thị?

Kết quả rất tốt: nhập mô tả hình ảnh ở đây

Lỗi RMS là khoảng 1/5 so với SXY và SYX và giải pháp cũng mượt mà hơn.

Tuy nhiên, có một số nhược điểm của phương pháp này:

  1. rất khó thực hiện; phải sử dụng các khác biệt trung tâm và ma trận 2D "làm phẳng" thành vectơ, v.v.

  2. Các ma trận đạo hàm rất lớn và thưa thớt nên chúng có thể tiêu tốn rất nhiều RAM.

Một cách tiếp cận khác có vẻ như có khả năng mã hóa đơn giản hơn, ít tiêu tốn RAM hơn và nhanh hơn là sử dụng FFT. Trong không gian Fourier, các cực này trở thành một phương trình đại số. Thuật toán này được gọi là thuật toán Frankot-Chellappa, nhưng thật không may, tôi không có nó để làm việc trên dữ liệu mẫu của mình.

Câu trả lời:


1

S


Cảm ơn Jim. Vì vậy, tôi có thể lấy ví dụ SXY và thay thế từng giá trị SXY (xi, yj) bằng một tổng trọng số so với giá trị và các lân cận của nó, trong đó các trọng số có thể là một gaussian 2D?
Andy

Xin lỗi Jim. Tôi đã quên nhấn mạnh rằng tôi cũng muốn lỗi RMS nhỏ liên quan đến mô hình. Tôi đã chỉnh sửa câu hỏi của mình để tính đến điều này. Làm mịn cho kết quả mượt mà hơn, nhưng không phải là lỗi RMS nhỏ hơn?
Andy

@Andy Có, "một tổng trọng số so với giá trị và các lân cận của nó" là một mô tả khá ngắn gọn về bộ lọc và gaussian 2D là một dạng của bộ lọc thông thấp.
Jim Clay

S

Cảm ơn Jim. Nhưng không có cách nào để kết hợp các kết quả từ SXY và SYX để có được một lỗi RMS nhỏ hơn?
Andy
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.