Thời lượng của xung hình chữ nhật không xác định với nhiễu Gaussian trắng phụ gia


8

Vấn đề.

Có một tín hiệu riêng biệtf[Tôi] (ví dụ dưới đây).
Ví dụ về tín hiệu
Được biết, có dạng xung hình chữ nhật với nhiễu Gaussian trắng cộng gộp.f[Tôi]

f[Tôi]= =S[Tôi]+n[Tôi] , , ,
S[Tôi]= =α(θ[Tôi-Tôi1]-θ[Tôi-Tôi2])+c
Tôi2>Tôi1
Tôi1>N

Trong đó là hàm bước Heaviside, là nhiễu Gaussian trắng phụ gia, là chiều cao của xung hình chữ nhật, là chỉ số của mẫu xung hình chữ nhật đầu tiên, là một chỉ số của mẫu xung hình chữ nhật cuối cùng, là mức tín hiệu không đổi, là tham số điều chỉnh.
θ[Tôi]
n[Tôi]
α
Tôi1
Tôi2
c
N

Tất cả các tham số có thể có phạm vi giá trị lớn.
Cần tìm giá trị của(Tôi2-Tôi1) (thời lượng của xung hình chữ nhật trong các mẫu).

Phương pháp khả thi.

Hiện tại, tôi đã thử hai cách để giải quyết vấn đề này.

Bộ lọc thông thấp có ngưỡng.

Lần thử đầu tiên, tôi đã sử dụng sơ đồ đơn giản với bộ lọc và ngưỡng thông thấp.
1. Áp dụng bộ lọc thông thấp FIR với tần số cắt bằng . 2. Ước tính trung bình và độ phân tán nhiễu đã lọc từ mẫu đầu tiên của tín hiệu. 3. Đặt ngưỡng . 4. Ước tính . 5. Ước tính .0,05fSmộtmptôiTôing
mσ2N
t= =m+3σ
Tôi1= =tối thiểuTôi(f[Tôi]>t)
Tôi2= =tối đaTôi(f[Tôi]>t)

nhập mô tả hình ảnh ở đây

Ưu điểm:
1. Thuật toán này đơn giản.
2. Thật dễ dàng để viết thực hiện nhanh chóng.

Nhược điểm:
1. Thật khó để ước tính giá trị hiệu quả của tần số cắt của bộ lọc. Một mặt giá trị thấp có thể làm hỏng dạng xung ngắn. Mặt khác, giá trị lớn làm giảm hiệu quả từ quá trình lọc.
2. Thuật toán không sử dụng tất cả thông tin, chúng tôi có về tín hiệu.

Phân tích hồi quy

Lần thử thứ hai, tôi đã cố gắng xấp xỉ chuỗi đầu vào của các mẫu với hàm .S'[Tôi]

S'[Tôi]= =α(θ'[Tôi-Tôi1]-θ'[Tôi-Tôi2])+c , , trong đó là một tham số nhỏ.
θ'[Tôi]= =11+e-Tôiββ

Để tính gần đúng, tôi đã sử dụng phương pháp bình phương tối thiểu với độ dốc giảm dần để giảm thiểu hàm chi phí.
1. Đặt giá trị ban đầu cho , , , . 2. Thực hiện giảm độ dốc. 3. Đặt ngưỡng . 4. Ước tính . 5. Ước tính .αcTôi1Tôi2

t= =c+0,5α
Tôi1= =tối thiểuTôi(f[Tôi]>t)
Tôi2= =tối đaTôi(f[Tôi]>t)

nhập mô tả hình ảnh ở đây

Ưu điểm:
1. Thuật toán này cho kết quả với độ chính xác tốt.
2. Nó hoạt động cho nhiều thời lượng.

Nhược điểm:
1. Nó rất chậm.

Câu hỏi.

Rốt cuộc, tôi không hài lòng với độ chính xác của thuật toán đầu tiên và với tốc độ của thuật toán thứ hai. Làm thế nào bạn sẽ giải quyết vấn đề này?
Có giải pháp cổ điển nào mà tôi không tìm thấy?
Ý tưởng, liên kết, bất kỳ thông tin phản hồi sẽ được nhiều đánh giá cao.
Cảm ơn bạn.


Bạn cũng cần biết xác suất chỉ có nhiễu Gaussian ngẫu nhiên sẽ khiến thuật toán của bạn tạo ra "thời lượng" xung, đặc biệt là gần độ rộng xung tối thiểu và chiều cao tối thiểu bạn cho phép? Hoặc là xung a-prori được biết là có mặt và trong các tham số được phép?
hotpaw2

@ hotpaw2 Xung là một tiên nghiệm được biết là có mặt và trong các tham số cho phép. Nếu tín hiệu không chứa xung, thì hành vi của thuật toán có thể không được xác định.
Nikolai Popov

Câu trả lời:


5

Bạn muốn một phương pháp loại bỏ tiếng ồn trong khi bảo quản các cạnh. Điều này không thể đạt được tốt bằng cách lọc tuyến tính, như bạn nhận thấy chính mình. Tôi biết hai cách tiếp cận có thể hiệu quả với vấn đề của bạn. Đầu tiên là lọc trung vị , trong đó các mẫu bên trong một cửa sổ được thay thế bằng trung vị của chúng. Biểu đồ sau đây cho thấy kết quả của việc lọc trung bình với độ dài cửa sổ là 25 mẫu (màu đỏ):

nhập mô tả hình ảnh ở đây

Cách tiếp cận khác, phức tạp hơn, là khử biến đổi tổng , hoạt động rất tốt đối với các tín hiệu không đổi từng phần. Có một mô tả rất hay về tổng khử nhiễu bao gồm cả mã Matlab có sẵn: link .


Nó rất hữu ích. Và tôi đã có một thời gian tốt để đọc bài báo và chơi với TV khử nhiễu. Cảm ơn bạn.
Nikolai Popov

1

Tôi biết điều này rất cũ và @Matt L. từ lâu đã đưa ra một câu trả lời xuất sắc và đầy thông tin. Tôi không có ý tưởng rằng sự biến đổi tổng biến đổi tồn tại, vì vậy tôi đã học được một điều khá hữu ích. Theo đó, tôi nêu lên cả câu hỏi và câu trả lời và muốn đưa ra một chút gì đó, chẳng hạn như nó, trở lại trang web. Ý tưởng cơ bản là sử dụng một phiên bản kỹ thuật số đơn giản của RC LPF cũ và giảm đáng kể "hằng số thời gian" khi một bước xảy ra. Sau đó, sau bước, tăng đáng kể "hằng số thời gian". NB "Hằng số thời gian" không thực sự là hằng số, như sẽ thấy dưới đây.

Hình dưới đây cho thấy nỗ lực của tôi để sao chép ví dụ xung hình chữ nhật nhiễu chung của OP và cách bộ lọc thông thấp 'đạo hàm đối ứng' (sau đây được ký hiệu là RD-LPF) thực hiện:

LPF phái sinh đối ứng

RD-LPF đơn giản là y[Tôi]= =Mộty[Tôi-1]+(1-Một)x[Tôi], Ở đâu Một= =exp(-K|y[Tôi-1]-x[Tôi]|) và tôi đã sử dụng K= =0,2. Xung hình chữ nhật sạch có biên độ đơn vị, bắt đầu từ t = 3 và độ rộng xung là 3. Nhiễu Gaussian trắng cộng gộp cóμ= =0σ= =0,3.

Hình tiếp theo so sánh đầu ra RD-LPF (dấu vết màu đỏ) với (theo câu trả lời của Matt L.) đầu ra của bộ lọc trung vị di chuyển 25 điểm (dấu vết màu xanh):

RD-LPF so với Mov Med 25 pt

Tôi không nói rằng tôi sẽ sử dụng RD-LPF cho bất cứ điều gì nghiêm trọng, nhưng tôi tò mò muốn xem liệu nó có bị phá hủy trong so sánh nhỏ này không. Rõ ràng, đó không phải là trường hợp.

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.