Code for shannon energy envelope?

hi guys
i have a pcg signal
and i want to using SHANNON ENERGY ENVELOPE for it
but i didnt find the code for it, in 'envelope' documentation there is only peak,rms and analytic function
is there any way to use the shannon energy envelope ?
shannon.PNG
thank you so much

 Accepted Answer

Shannon energy is defined as , so use an anonymous function such as:
ShannonEnergy = @(x) x.^2 .* log(x.^2);
and then take the peak envelope.
That is what I would do.

5 Comments

Hi thanks for the response :)
sorry can you explain it more detail to me?
how can i take the ShannonEnergy to the peak envelope?
this is the code for peak envelope right? how can i insert the ShannonEnergy?
envelope(data,10,'peak')
Thank you very much!
My pleasure.
Now that I have your data, this appears to be the best option:
ShannonEnergy = @(x) x.^2 .* log(x.^2);
D = load('matlab.mat');
data = D.data;
Fs = D.fs;
t = linspace(0, 1, numel(data))/Fs;
SEdata = ShannonEnergy(data - mean(data));
SEenv = envelope(-SEdata, 100, 'peak');
figure
plot(t, data, '-b')
hold on
% plot(t, SEdata, '-g')
plot(t, SEenv, '-r', 'LineWidth',1)
hold off
Experiment with the various parameters of the envelope function to get the result you want.
Thank you so much !
thats solve my problem :D
As always, my pleasure!
help me with matlab.mat in this code

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!