I have a code that has to calculate average normalised Shannon energy for phonocardigraphy signals but have a problem with calculating standard deviation. mayve something wrong with my code above this expression. Can somedody help me. please.
function segmentation_Shennonclose all clear all % Загружаем файл с данными
[F,Fs] = audioread('1.wav'); pcg = F(:,2); t=0:1/Fs:(length(F)-1)/Fs; %%Нормируем и фильтруем сигнал фильтром Чебышева 1 8го порядка НЧ с частотой среда 882 Гц
pcg_filter = chebushev1(pcg,Fs);pcg_norm = pcg_filter./abs(max(pcg_filter));%рассчитываем энергию Шеннона
shennon_energy= -((pcg_norm.^2).*log(pcg_norm.^2));figure(1)plot(t,shennon_energy)%рассчитываем усредненную энергию Шеннона в сегменте длительностью 0,02с
%с перекрытием 0.01 с
win=0.002*Fs; i=1;k=1;Es=[];Es_t=[];P=[];while i<length(pcg_norm)for i=i:i+winsquare = pcg_norm(i).^2; Es(k) = -1/win * sum( square .* log(square));endES_t(k)=t(i); i=i+round(win/2);k=k+1;end% нормируем усреднeнyую энергию Шеннона
M_Es = (mean(Es)); %среднее значение энергии сегмента
S_Es = (std(Es(k-1))); %стандартное отклонение энергии сегмента
P(k) = (Es(k-1)-M_Es)/S_Es; % Нормированная усредненная энергия Шеннона,
plot(t,P)
Best Answer