资源简介

自定义过零检测 生产函数 测量信号之间的相位差

资源截图

代码片段和文件信息

function [ zero_reu2]=FindZeroes(sig)
%%%% Revision @ 2011.02.07  %%%
%求取频率时,要用上升沿零点减去上升沿零点(或下降沿零点减去下降沿零点)
%这在实际现场信号时很重要,因为实际现场信号可能会有偏置
%之前的findzero.m文件中有错误,分别是系数b以及零点返回时加上了(n-2)
ii=1;
for n=3:length(sig)-2  
    if(  sig(n) * sig(n-1)<0  )    
%         a=0.5*sig(n-2)-sig(n-1)+0.5*sig(n);
%         b=-0.5*sig(n-2)*(n-1+n) + sig(n-1)*(n-2+n) - 0.5*sig(n)*(n-1+n-2);
%         c=0.5*sig(n-2)*(n-1)*n - sig(n-1)*(n-2)*n + 0.5*sig(n)*(n-2)*(n-1);
        a=0.5*sig(n-2)-sig(n-1)+0.5*sig(n);
        b=-0.5*sig(n-2)*(3-1+3) + sig(n-1)*(3-2+3) - 0.5*sig(n)*(3-1+3-2);
        c=0.5*sig(n-2)*(3-1)*3 - sig(n-1)*(3-2)*3 + 0.5*sig(n)*(3-2)*(3-1);
        zerotemp=roots([a b c]);
        if(  2            zero_reu2(ii)=zerotemp(1) + n -3;
        elseif(  2            zero_reu2(ii)=zerotemp(2) + n -3;
        else
             zero_reu2(ii)=(n-1)+abs( sig(n-1) / ( sig(n-1) - sig(n) ) );
        end
        ii=ii+1;
    end 
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1101  2012-03-27 15:04  FindZeroes.m

----------- ---------  ---------- -----  ----

                 1101                    1


评论

共有 条评论