⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waveout.m

📁 大学时候跟导师做的一个暂态电磁场数据分析的程序
💻 M
字号:
function puls=waveout(wav,segoffset,len,singalval)
%  参数意义:wav  源文件,offset 分段起始,len 分段终止点,singalval 信号限;
%  puls   输出脉冲群
offset=segoffset;
basewid=20;
expand=1;
wid=basewid;
swnd=wav(offset:wid);
wcnt=0;subpuls=ones(fix(len/200),2);
fprintf('\n\nCalculating.................\n\n\n');
while 1
    while 1
        [peak,htime]=max(swnd);
        [valley,ltime]=min(swnd);
        if htime<ltime,temp=ltime;ltime=htime;htime=temp;end
        hp=peak-valley;
        if  hp>2*singalval
            expand=1;
            if wid==basewid,break,end 
        else
            expand=expand+1;
            offset=offset+wid;
        end
        wid=basewid*expand;
        if(offset+wid>len)
            expand=1;wid=basewid; 
        end
        if ((offset+wid)>=len),break,end
        swnd=wav(offset:offset+wid);
    end
    htime=offset+htime-1;
    ltime=offset+ltime-1;                                     % Primary Oriented
    if ((htime+basewid)>=len),break,end
    temp=wav(ltime:htime+basewid);
    [peak,htime]=max(temp);
    [valley,ltime]=min(temp);
    if htime<ltime,temp=ltime;ltime=htime;htime=temp;end
    htime=offset+htime;
    ltime=offset+ltime;
    wcnt=wcnt+1;                                         
    subpuls(wcnt,1)=ltime;subpuls(wcnt,2)=htime;
    offset=htime;
    if(offset+wid)>len,break,end
    swnd=wav(offset:offset+wid);
end
i=1;j=1;
puls(1,1)=subpuls(1,1);puls(1,2)=subpuls(1,2);puls(1,3)=0;
while wcnt>1
    if (subpuls(i+1,1)-subpuls(i,2))<2006
        puls(j,2)=subpuls(i+1,2);
    else
        j=j+1;
        puls(j,1)=subpuls(i+1,1);
        puls(j,2)=subpuls(i+1,2);
        puls(j,3)=puls(j,1)-puls(j-1,2);
    end
    i=i+1;
    if i==wcnt,break;end
end
for i=1:j
    ltime=puls(i,1);htime=puls(i,2);
    if(ltime-2)>0
        temp=wav((ltime-2):(htime+2));
    else

        temp=0;
        break;
    end
    peak=max(temp);valley=min(temp);
    puls(i,4)=peak-valley;
end
if temp==0
    disp('数据文件可能有错,请将门限调低再试一次!');
else
    disp(['------Seg【',num2str(segoffset),',',num2str(len),'】---Finished!!!']);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -