心电图信号的平均归一化shannon能量

时间:2015-11-22 19:31:47

标签: matlab signals

我有一个代码,必须计算心理信号的平均归一化香农能量,但计算标准偏差有问题。我的代码在这个表达式之上可能有问题。有些人可以帮助我。请。

    function segmentation_Shennon
    close 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+win
    square = pcg_norm(i).^2; 
    Es(k) = -1/win * sum( square .* log(square));
    end
    ES_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) 

0 个答案:

没有答案