【正文】
df=20。 % freq increasenk=[]。 % the number of peak points in the curvefa=40。t1=60/s*log2(fa/f1)。t2=60/s*log2((fa+df)/f1)。ta=t1::t2。N=length(ta)。ft=f1*2.^(s/60*ta)。A1=sin(2*pi*ft.*ta)。lamb=ft/fr。B1=1./(1lamb.^2+j*2*k1*lamb)。 % transfer functionA2=abs(B1).*sin(2*pi*ft.*ta+angle(B1))。for i=2:N1 if A2(i)A2(i1)amp。amp。A2(i)A2(i+1) % peak nk=[nk,i]。 pa=angle(sin(2*pi*ft(i)*ta(i))+j*cos(2*pi*ft(i)*ta(i)))。 pf=[pf,pa]。 elseif A2(i)A2(i1)amp。amp。A2(i)A2(i+1) % valley nk=[nk,i]。 pa=angle(sin(2*pi*ft(i)*ta(i))j*cos(2*pi*ft(i)*ta(i)))。 pf=[pf,pa]。 endendtb=ta(nk)。fa=f1*2.^(s/60*tb)。 % the corresponding freq for the peakaf=abs(A2(nk))。frb=fa/fr。pf2=angle(1./(1frb.^2+j*2*k1*frb))。pf=pf2+angle(cos(pfpf2)+j*sin(pfpf2))。 % Key trickaf=smooth(af,7)。pf=smooth(pf,7)。fb=40::60。lamb=fb/fr。bf=abs(1./(1lamb.^2+j*2*k1*lamb))。bpf=angle(1./(1lamb.^2+j*2*k1*lamb))。subplot(2,1,1)。plot(fa,af,39。r39。,fb,bf,39。b.39。)。legend(39。Numeric Result39。,39。Extract Result39。)。title(39。Magnitude of the Sweep Signal39。)。xlabel(39。f39。)。ylabel(39。A(f)39。)。subplot(2,1,2)。plot(fa,180/pi*pf,39。r39。,fb,180/pi*bpf,39。b.39。)。legend(39。Numeric Result39。,39。Extract Result39。)。title(39。Phase Angle of the Sweep Signal39。)。xlabel(39。f39。)。ylabel(39。\Psi(f)39。)。 峰值包絡提取僅包含簡單的代數(shù)計算,不涉及復雜的運算,因而計算速度很快,而且也不會因異常中止。當然天下沒有免費的午餐,粗糙的加工也不會得到精致的結(jié)果,正如圖6所示,峰值包絡的計算結(jié)果精度很差。而且它只能得到在峰、谷處頻率的幅值與相位,對于對數(shù)掃頻在高頻處的頻率點數(shù)就寥若晨星了。 上面是使用標準的正弦對數(shù)掃頻曲線,以及單自由度振動阻尼系統(tǒng)的響應為例,實際情況比這復雜得多,但原理基本相同。下面從不同角度把上面幾種方法的優(yōu)缺點總結(jié)如下。表 1 幾種方法的評價14