Code covered by the BSD License  

Highlights from
Automatic enveloping, variance change and activity detection with Hilbert Transform

Be the first to rate this file! 37 Downloads (last 30 days) File Size: 1.94 KB File ID: #46139
image thumbnail

Automatic enveloping, variance change and activity detection with Hilbert Transform

by

 

04 Apr 2014 (Updated )

Automatic Signal Segmentation and activity detection with Hilbert Transform and smoothing.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information
Description

%% 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

MATLAB release MATLAB 7.14 (R2012a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
04 Apr 2014

better name for the function

19 May 2014

description updated.

Contact us