Cách phát hiện đỉnh trong MATLAB

MATLAB là một gói phần mềm kỹ thuật có thể được sử dụng để xử lý và phân tích tín hiệu. Một quy trình phổ biến trong phân tích tín hiệu là phát hiện đỉnh, hoặc tìm cực đại cục bộ - các giá trị lớn hơn các điểm dữ liệu liền kề - trong một tín hiệu nhiễu. Thông thường cần giới hạn phát hiện đỉnh ở mức cực đại cục bộ của một độ rộng nhất định - thời lượng khi tín hiệu nằm trong miền thời gian - cũng như một độ cao hoặc độ lớn nhất định.

Bước 1

Xác định nguồn dữ liệu bằng cách nhập dữ liệu vào MATLAB. Ví dụ: tạo một sóng hình sin với nhiễu ngẫu nhiên:

my_signal = sin (0: 0,1: 10) + rand (1,101);

Bước 2

Tìm các đỉnh trong tín hiệu của bạn bằng phương pháp nội suy bậc hai của "findpeaks ()":

[peak_value, peak_location] = findpeaks (my_signal);

Bước 3

Tìm kiếm các đỉnh có chiều cao tối thiểu bằng cách sử dụng tham số "minpeakheight". Chiều cao là một đại lượng vô hướng có giá trị thực dùng để chỉ giá trị dữ liệu tối thiểu của các đỉnh cho phép:

[peak_value, peak_location] = findpeaks (my_signal, 'minpeakheight', 2,5);

Bước 4

Tìm kiếm các đỉnh cách nhau một khoảng cách tối thiểu bằng cách sử dụng tham số "minpeakdistance". Giá trị là số chỉ số tối thiểu giữa các đỉnh trong vectơ "my_signal" và phải là một số nguyên:

[peak_value, peak_location] = findpeaks (my_signal, 'minpeakdistance', 5);

Bước 5

Chỉ tìm kiếm các đỉnh cao hơn một ngưỡng nhất định bằng cách sử dụng tham số "ngưỡng". Đây là một đại lượng vô hướng có giá trị thực đề cập đến sự khác biệt tối thiểu cho phép giữa các điểm dữ liệu đỉnh và điểm dữ liệu liền kề:

[peak_value, peak_location] = findpeaks (my_signal, 'ngưỡng', 0,5);

Bước 6

Chỉ tìm một số đỉnh nhất định bằng tham số "npeaks". Giá trị phải là một số nguyên:

[peak_value, peak_location] = findpeaks (my_signal, 'npeaks', 5);

Sắp xếp danh sách các đỉnh được trả về bằng cách sử dụng tham số "sortstr". Các giá trị cho phép là "tăng dần", "giảm dần" và "không":

[peak_value, peak_location] = findpeaks (my_signal, 'sortstr', 'ascend');