zoukankan      html  css  js  c++  java
  • matlab计算相对功率

    1、对脑电数据进行db4四层分解,因为脑电频率是在0-64HZ,分层后如图所示,

    细节分量[d1 d2 d3 d4]

    近似分量[a4]

    重建细节分量和近似分量,然后计算对应频段得相对功率谱,重建出来得四个频段(αβθδ)都有14个通道,所以要计算4频段14通道共56个相对功率

     2、代码

    function wavelet(signal)
    A4Array = zeros(14,5000);
    D4Array = zeros(14,5000);
    D3Array = zeros(14,5000);
    D2Array = zeros(14,5000);
      for i=1:14
       [C,L] = wavedec(signal(i,1:5000),4,'db4');%函数返回 3 层分解的各组分系数C(连接在一个向量里) ,向量 L 里返回的是各组分的长度。
       % [cD1,cD2,cD3,cD4] = detcoef(C,L,[1,2,3,4]);%抽取1234层细节系数
       % cA4 = appcoef(C,L,'d4',4);%抽取近似系数
       A4 = wrcoef('a',C,L,'db4',4);%重建4层近似,deta波
       A4Array(i,:) = A4;
       D4 = wrcoef('d',C,L,'db4',4);%重建4层细节,sita波
       D4Array(i,:) = D4;
       D3 = wrcoef('d',C,L,'db4',3);%重建3层细节,alpha波
       D3Array(i,:) = D3;
       D2 = wrcoef('d',C,L,'db4',2);%重建2层细节,beta波
       D2Array(i,:) = D2;
      end
         detaspectral(signal,A4Array);
         thetaspectral(signal,D4Array);
         alphaspectral(signal,D3Array);
         betaspectral(signal,D2Array);
    end
    

      

    detaspectral thetaspectral alphaspectral betaspectra的代码都是一样的
    function alphaspectral(signal,dtest8theta)
      Fs=128;
      N=1024;Nfft=256;n=0:N-1;t=n/Fs;
      window=hanning(256);
      noverlap=128;
      dflag='none';
      for i=1:14
        x=signal(i,1:5000);
        powd(i,:)=psd(x,Nfft,Fs,window,noverlap,dflag);%计算未分频段,总数据的功率谱
        x1=dtest8theta(i,:);%某一频段的脑电数据
        powd1(i,:)=psd(x1,Nfft,Fs,window,noverlap,dflag);%计算该频段的功率谱
      end
      xdpowthetad = zeros(14,1);
      xdpowthetad=mean(abs(powd1),2)./mean(abs(powd),2);%计算相对功率,用分频段功率谱比上不分频段的。
      %save('G:研三音乐反馈数据新算相对功率xdpowthetad.mat','xdpowthetad');
      save('C:Users25626Desktop滤波后数据14相对功率谱5 3alphaspectra.mat','xdpowthetad');
    end
    

      

    function detaspectral(signal,dtest8theta)
      Fs=128;
      N=1024;Nfft=256;n=0:N-1;t=n/Fs;
      window=hanning(256);
      noverlap=128;
      dflag='none';
      for i=1:14
        x=signal(i,1:5000);
        powd(i,:)=psd(x,Nfft,Fs,window,noverlap,dflag);%计算未分频段,总数据的功率谱
        x1=dtest8theta(i,:);%某一频段的脑电数据
        powd1(i,:)=psd(x1,Nfft,Fs,window,noverlap,dflag);%计算该频段的功率谱
      end
      xdpowthetad = zeros(14,1);
      xdpowthetad=mean(abs(powd1),2)./mean(abs(powd),2);%计算相对功率,用分频段功率谱比上不分频段的。
      %save('G:研三音乐反馈数据新算相对功率xdpowthetad.mat','xdpowthetad');
      save('C:Users25626Desktop滤波后数据14相对功率谱5 3detaspectral.mat','xdpowthetad');
    end
    

      

    function betaspectral(signal,dtest8theta)
      Fs=128;
      N=1024;Nfft=256;n=0:N-1;t=n/Fs;
      window=hanning(256);
      noverlap=128;
      dflag='none';
      for i=1:14
        x=signal(i,1:5000);
        powd(i,:)=psd(x,Nfft,Fs,window,noverlap,dflag);%计算未分频段,总数据的功率谱
        x1=dtest8theta(i,:);%某一频段的脑电数据
        powd1(i,:)=psd(x1,Nfft,Fs,window,noverlap,dflag);%计算该频段的功率谱
      end
      xdpowthetad = zeros(14,1);
      xdpowthetad=mean(abs(powd1),2)./mean(abs(powd),2);%计算相对功率,用分频段功率谱比上不分频段的。
      %save('G:研三音乐反馈数据新算相对功率xdpowthetad.mat','xdpowthetad');
      save('C:Users25626Desktop滤波后数据14相对功率谱5 3etaspectral.mat','xdpowthetad');
    end
    

      

    function thetaspectral(signal,dtest8theta)
      Fs=128;
      N=1024;Nfft=256;n=0:N-1;t=n/Fs;
      window=hanning(256);
      noverlap=128;
      dflag='none';
      for i=1:14
        x=signal(i,1:5000);
        powd(i,:)=psd(x,Nfft,Fs,window,noverlap,dflag);%计算未分频段,总数据的功率谱
        x1=dtest8theta(i,:);%某一频段的脑电数据
        powd1(i,:)=psd(x1,Nfft,Fs,window,noverlap,dflag);%计算该频段的功率谱
      end
      xdpowthetad = zeros(14,1);
      xdpowthetad=mean(abs(powd1),2)./mean(abs(powd),2);%计算相对功率,用分频段功率谱比上不分频段的。
      %save('G:研三音乐反馈数据新算相对功率xdpowthetad.mat','xdpowthetad');
      save('C:Users25626Desktop滤波后数据14相对功率谱5 3	hetaspectral.mat','xdpowthetad');
    end
    

      

  • 相关阅读:
    kali 2019 安装
    centos 7 安装
    windows 和linux系统下常用命令
    JavaScript中Object类型的定义
    《WPF编程宝典(第2版)》第3章 布局
    《C语言程序设计:现代方法(第2版)》第7章 基本类型
    《C语言程序设计:现代方法(第2版)》第6章 循环
    《C语言程序设计:现代方法(第2版)》第5章 选择语句
    《C语言程序设计:现代方法(第2版)》第4章 表达式
    《深入实践Spring Boot》第4章 提高数据库访问性能
  • 原文地址:https://www.cnblogs.com/andrew-address/p/12725498.html
Copyright © 2011-2022 走看看