## how to find local maxima and minima of a noisy ECG

### Krish P (view profile)

on 5 Jan 2013
Latest activity Commented on by Image Analyst

on 6 Dec 2014

### Walter Roberson (view profile)

Is there an easy way to find all local minima of an noisy ecg signal(ecg+baseline wander)with out using function? After that all local maxima are to be connected by a cubic spline curve as the upper envelope e1(t), similarly all local minima by a spline curve as the lower envelope e2(t).Next step is to find the mean of the two envelope ie

```m1(t)=  [e1(t)+e2(t)]/2.
```

PROGRAM UP TO GENERATION OF ECG NOISY SIGNAL

```n=512;
fs=n/.83;
tp=.83*10;
x1=ecg(512);
t=0:1/fs:tp-1/fs;
z=repmat(x1,1,10);
subplot(231);
plot(t,z);
title('ecg signal');
xlabel('time');
ylabel('amplitude');
t2=0:1/512:10-(1/512);
s1=.1*cos(2*pi*.5*t2);
s2=.1*cos(2*pi*.4*t2);
baseline=s1+s2;
subplot(232);
plot(t2,baseline); %BASELINE WANDER
xlabel('time');
ylabel('amplitude');
y=z+baseline;           % NOISY ECG
disp(y);
subplot(233);
plot(t,y);              % NOISY ECG
```

## Products

No products are associated with this question.

### Walter Roberson (view profile)

on 5 Jan 2013
Edited by Walter Roberson

### Walter Roberson (view profile)

on 5 Jan 2013

```local_mins = find( signal(1:end-2) > signal(2:end-1) & signal(2:end-1) < signal(3:end) );
local_maxs = find( signal(1:end-2) < signal(2:end-1) & signal(2:end-1) > signal(3:end) );
e1 = spline( local_mins, signal(local_mins), 1:length(signal) );
e2 = spline( local_maxs, signal(local_maxs), 1:length(signal) );
m1 = (e1 + e2) / 2;
```

Krish P

### Krish P (view profile)

on 5 Jan 2013

Thank you so much Sir.

saleema

### saleema (view profile)

on 6 Dec 2014

sir, i want a matlab codes for finding local maxima and local minima and after their envelop by using spline interpolation

Image Analyst

### Image Analyst (view profile)

on 6 Dec 2014

Post a new question, and say if you have the Image Processing Toolbox (so you can use imdilate and imerode to get the local max and min).

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi