Code covered by the BSD License

### Highlights from Envelope Detction for Signal Analysis

3.85714
3.9 | 7 ratings Rate this file 64 Downloads (last 30 days) File Size: 649 KB File ID: #37545 Version: 1.0

# Envelope Detction for Signal Analysis

### Santhana Raj (view profile)

Computes the envelope of the signal by two methods: 1.LPF method 2.Hilbert Transform

File Information
Description

y=envelope(Signal,Fs) computes the Envelope of the input Signal with a Sampling Frequency 'Fs' and gives the envelope signal by Hilbert transform method as the output y.
The function computes the envelope of the signal by two different methods.

First Method: By Using Low Pass Filter. The Signal is Squared, passed
through LPF and then taken square root.
Second Method: Using Hilbert Transform. Hilbert Transform is taken using the inbuilt function in Matlab

The Function Displays the FFT of the original signal and also the FFT of
the envelope signal by both the methods

The function basically is for computing Envelope Signal for Condition Monitoring of rotating equipments by vibration based bearing fault diagnosis.

Example:
signal=s4;
Fs=12000;
envelope(signal,Fs);

The File 's4.mat' is the vibration signal recorded from a OR faulty
bearing with a sampling frequency of 12000Hz. The Fault frequency is 161Hz and is brought out in envelope signal which was hidden in the original FFT.

Don't forget to rate or comment on the matlab central site
http://www.mathworks.in/matlabcentral/fileexchange/authors/258518

Author:Santhana Raj.A

Required Products Signal Processing Toolbox
MATLAB
MATLAB release MATLAB 7.13 (R2011b)
16 Sep 2015 Alan

### Alan (view profile)

Thank you for a nice example.

10 Oct 2014 Santhana Raj

### Santhana Raj (view profile)

@Haroldo
It seems that the length of the signal that you took is smaller than 4096. By default, I have taken a 4096 point FFT. So, unless you feed in a signal larger than 4096, the code will throw error.

Possible solutions are that you either pad zeros to your signal or reduce the No of points of the FFT(Variable N in the code)

Comment only
09 Oct 2014 Haroldo

### Haroldo (view profile)

"Index exceeds matrix dimensions
Error in envelope (line 46)"

:(

30 Jul 2014 Chintan

### Chintan (view profile)

Hello Santhana,

Many thanks.

I have sent you an email on your gmail account.

Best Regards

Chintan

Comment only
30 Jul 2014 Santhana Raj

### Santhana Raj (view profile)

@Chintan

The carrier must be present in the received signal for envelope detection to work. The formula is (1+m(t))*c(t)

Any specific doubts, you can drop me a mail.

Comment only
30 Jul 2014 Chintan

### Chintan (view profile)

Hello Santhana,

Many thanks for your quick reply. Just one last question. I did some simulation for Amplitude modulations, where my message frequency is 10 Hz and carrier frequency is 100 Hz. But after running your script, the detected frequency is 20 Hz and not 10 Hz.

N = 50000;

fs = 1000;

t = (0:N-1)/fs;

msg = cos(2*pi*10*t);

carrier = cos(2*pi*100*t);

x = msg.*carrier;

output = envelope(x, fs);

Many thanks.

Best Regards

Chintan

Comment only
30 Jul 2014 Santhana Raj

### Santhana Raj (view profile)

@Chintan

Am not Fully Sure of the carrier frequency. But I have always assumed it to be the natural frequency of the system, either bearing or the motor itself. But whatever be the case, the carrier frequency is supposed to be very high and a generally a 0.1 cut off frequency would comfortably remove it here.

Hope this helps.

Comment only
29 Jul 2014 Chintan

### Chintan (view profile)

Hello Santhana,

Thanks for your reply. In bearing analysis, what is considered as carrier frequency? I have read few papers and all say different definitions.

Thanks.

Best Regards

Chintan

Comment only
12 Jun 2014 Santhana Raj

### Santhana Raj (view profile)

@Chintan

Yep. U guessed right. The shaft speed is about 29Hz.

Thanks for Rating.

Comment only
06 Jun 2014 Chintan

### Chintan (view profile)

Hi Santhana,

Very nice code and good example. I just have one question. The other spike at 29.3 Hz, does it correspond to shaft speed?

Many thanks.

Chintan

08 Mar 2014 Ruiyan

### Ruiyan (view profile)

good, can be used normally.thanks very much.

08 Jun 2013 Theodoros

### Theodoros (view profile)

10 Dec 2012 ahmed albakri

### ahmed albakri (view profile)

Hi friend , thank you very much

Comment only
05 Aug 2012 gülsevin

### gülsevin (view profile)

19 Jul 2012 n chow

### n chow (view profile)

19 Jul 2012 Santhana Raj

### Santhana Raj (view profile)

@Jan Simon

True, This is just a demonstration of the two methods. Who would want to use different methods when one's ultimate aim is to do some envelope detection.

I thought it would be easier, as any one can compare the methods for their application and use the code from the program by coping those set of lines and reusing them in their main code.

Comment only
18 Jul 2012 Jan Simon

### Jan Simon (view profile)

"clc; close all;" is not a friendly idea. Why do you want to close my figures?

This function cannot be used to create the envelope directly. It is more a demonstration of the two different method with harddoced coefficients, creation of figures and overwriting the output y repeatedly. So before a user can calculate the envelopes matching to a specific problem, substantial re-programming is required.

Comment only