Automatic activity detection in noisy signals with Hilbert transfrom
编者注: This file was selected as MATLAB Central Pick of the Week
%% function alarm = envelop_hilbert(y,Smooth_window,threshold_style,DURATION,gr)
%% Inputs ;
% y = Raw input signal to be analyzed
% Smooth_window :this is the window length used for smoothing your signal
% threshold_style : set it 1 to have an adaptive threshold and set it 0
% to manually select the threshold from a plot
% DURATION : Number of the samples that the signal should stay
% gr = make it 1 if you want a plot and 0 when you dont want a plot
%%%%%%%
% Tuning parameters for the best results;
%%%%%%%
% 1. DURATION is correlated to your sampling frequency, you can use a multiple
% of your sampling frequency e.g. round(0.050*SamplingFrequency)
% 2. Smooth_window is correlated to your sampling frequency, you can use a multiple
% of your sampling frequency e.g. round(0.0500*SamplingFrequency), this is
% the window length used for smoothing your signal
%% Outputs ;
% alarm : vector resembeling the active parts of the signal
%% Method
% Calculates the analytical signal with the help of hilbert transfrom,
% takes the envelope and smoothes the signal. Finally , with the help of an
% adaptive threshold detects the activity of the signal where at least a
% minimum number of samples with the length of
% (DURATION) Samples should stay above the threshold). The threshold is a
% computation of signal noise and activity level which is updated online.
%% Example and Demo
% To run demo mode simply execute the following line without any input;
% Example 1 :
% alarm = envelop_hilbert()
% The script generates one artificial signal and analysis that
% v = repmat([.1*ones(200,1);ones(100,1)],[10 1]); % generate true variance profile
% y = sqrt(v).*randn(size(v));
% Example 2 : For real world signals with a certain Sampling frequency
% called (Fs) (In this example a smoothing window with length 200 msec,)
% alarm = envelop_hilbert(signal,round(0.050*Fs),1,round(0.020*Fs),1)
%% Author : Hooman Sedghamiz
% hoose792@student.liu.se
%(Hooman.sedghamiz@medel.com)
% Copy right April 2013
% Edited March 2014
引用格式
Hooman Sedghamiz (2024). Automatic activity detection in noisy signals with Hilbert transfrom (https://www.mathworks.com/matlabcentral/fileexchange/46139-automatic-activity-detection-in-noisy-signals-with-hilbert-transfrom), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- Signal Processing > Signal Processing Toolbox > Transforms, Correlation, and Modeling > Transforms > Hilbert and Walsh-Hadamard Transforms >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!