新四季網

用於確定非相干抽樣數據的功率頻譜的低洩露技術的製作方法

2023-05-22 07:08:26 1

專利名稱:用於確定非相干抽樣數據的功率頻譜的低洩露技術的製作方法
技術領域:
本發明涉及電子裝置測試設備和方法,具體涉及用於從電子測試信號中抽出測試信號頻率分量的幅度的技術。
眾所周知,每當抽樣時鐘與抽樣信號不「相干」時,被稱為「洩漏」的誤差就會顯現在由DFT生成的功率頻譜中。如果抽樣時鐘的頻率是抽樣信號內存在的各頻率的精確整倍數,則抽樣時鐘是「相干的」。洩漏是對截斷頻率,即在抽樣窗口內未完成整個循環的頻率執行DFT的數學推論。隨著譜線的誤展寬、假波峰和假波谷(凸起部)的生成、以及功率頻譜噪聲最低限度的一般升高,會觀察到洩漏。
已設計了多種方法來減少洩漏。一種方法是增加抽樣速度。一般來說,抽樣速度越高,感興趣頻率範圍內的截斷量就越小,洩漏誤差就越小。該方法儘管有效,然而增加抽樣速度來減少洩漏僅與這種增加的幅度成正比。而且該方法往往會大幅增加所用抽樣設備的成本。
用於減少洩漏的另一常用技術是用開窗口函數來乘以抽樣的數據序列。窗口函數具有使抽樣數據序列圍繞其端點遞減的效果,從而消除會引起洩漏誤差的不連續性。可使用不同的窗口函數,例如,Blackman,Hanning,或Hamming窗口函數,每種函數均具有其自身具體特性。窗口函數往往會減少與功率頻譜中的波峰相隔一定距離的洩漏偏差,但也往往會生成較寬波峰。這樣,這些窗口函數具有重新分配洩漏而不是完全消除洩漏的效果。而且,由於窗口函數實際改變執行DFT的數據,因而這些窗口函數往往會使頻譜略微失真。
還有一種技術是按照與抽樣信號頻率相干的抽樣速度對波形數據「重新抽樣」。重新抽樣工作是通過在按照某一速度抽樣的實際點之間進行插值來實現的,以便在數學上構建一系列點,該一系列點看起來已按照某一不同速度進行抽樣。儘管重新抽樣對於減少洩漏會極其有效,然而它的計算工作量大,並且其精度會受到插值誤差的影響。
還有一種減少洩漏的技術是改變抽樣時鐘速度,以使該速度與在抽樣信號中發現的各頻率的整倍數精確相等。該技術雖極其有效,但需要價格昂貴的硬體。當測試儀包括大量抽樣時鐘時,該方案尤其價格昂貴,而情況經常是這樣。
自動測試設備(ATE或「測試儀」)的製造商一般通過提供價格不貴的常規測試問題解決方案來力圖改善其產品。通過增加測試儀性能,同時降低測試儀成本,可獲益匪淺。為此,目前強烈要求提供一種價格低廉的技術來減少由自動測試系統抽樣的信號頻譜中的洩漏。
為了實現上述目的以及其他目的和優點,提供了一種用於對抽樣波形頻率含量進行分析的技術,該技術包括對預計在抽樣波形中將要求發現的N個頻率的列表進行彙編。假定抽樣波形與一波形模型一致,而該波形模型在數學上與N個正弦波之和對應。N個正弦波中的各方均具有未知幅度和相位,並具有一頻率,該頻率與頻率列表中的N個頻率中的一不同頻率相等。該技術可求出使模型與抽樣數據最佳擬合的未知幅度和/或相位。
根據一個說明性實施例,當抽樣的波形頻率事先未知時,也可使用上述技術。根據該變形例,可對抽樣波形進行傅立葉變換計算,以生成常規(rough)功率頻譜。對該常規功率頻譜中的波峰進行識別,並對其頻率進行編譯,以形成N個頻率的列表。在對N個頻率列表進行編譯時,可考慮其他因素,例如,向從中獲得抽樣數據的裝置施加的已知激勵,以及其他伴隨情況。然後,對生成的N個頻率列表實施上述技術,以確定N個正弦波中的各方的精確幅度和/或相位。
主計算機一般把由數位化儀116獲得的抽樣數據存儲在存儲器內進行分析。測試程序,或者可用於測試程序的軟體例行程序可對存儲的抽樣數據進行操作,以分析該抽樣數據內容。常規上,測試程序將引導測試儀軟體對抽樣的數據進行離散傅立葉變換(DFT)。然後,測試程序將對DFT的結果進行測試。
圖2示出了根據本發明的用於在ATE環境中對測試信號進行抽樣和分析的一般處理。在步驟210,自動測試系統110向DUT 120的輸入施加激勵。
在步驟212,訪問N個頻率列表。該N個頻率表示幅度和/或相位信息期望是已知的抽樣波形的頻率。數字N可以是任何正整數。並不是所有的N個頻率都實際需要存在於抽樣波形中。實際上,該技術可用於測定任何具體頻率分量的有無。優選地是,該N個頻率列表事先是已知的,並存儲在測試程序內。
在步驟214,對抽樣波形進行計算機建模。表示抽樣波形的該計算機模型由總計的N個正弦波構成,以近似於實際抽樣波形。該N個正弦波中的每個均採用以下公式Aksin(ωki)+Bkcos(ωki)(公式1)式中· 「Ak」和「Bk」是未知係數,· 「k」是範圍從1到N的指數,並表示N個頻率分量中的一個,· ωk表示第k頻率分量(具體地說,ωk=2πFk,式中,Fk是第k頻率),以及· 「i」是識別具體抽樣並表示時間的指數。
儘管公式1看起來是兩個正弦波之和,然而公式1在數學上等於單個正弦波,該正弦波的頻率等於ωk/2π,幅度等於A2k+B2k]]>,相位等於Bk和Ak的2自變量反正切。
假定公式1表示抽樣波形中的N個正弦波中的每個,則整個抽樣波形可使用以下公式來建模k=1N(Akcoski+Bksinki)]]>(公式2)在步驟216,對公式2的波形模型進行計算機處理,以獲得在模型和實際抽樣波形之間的最佳擬合。優選實施例採用線性最小二乘方技術,以使模型與數據擬合。特別是,步驟216試圖使以下最小二乘方估計量最小i=0M[yi-k=1N(Akcoski+Bksinki)]2]]>(公式3)式中,yi是抽樣波形的第i抽樣點,並且i的範圍從0到M,其中,M表示抽樣波形中的抽樣總數。
為了最小化公式3,該技術認識到,當公式3的偏導數等於零時,即當根據Ak和Bk的各值獲得公式3的偏導數時,可實現最佳擬合。由於N個頻率中的每個均存在Ak和Bk的值,因而根據這些Ak和Bk的各值獲得公式3的偏導數,可生成2N方程組。i=0Myicosji=k=1N(Aki=0Mcoskicosji+Bki=0Msinkicosji)]]>(公式4)i=0Myisinji=k=1N(Aki=0Mcoskisinji+Bki=0Msinkisinji)]]>(公式5)式中,當「j」指數的範圍從1到N時,公式4和公式5均重複N次。定義以下係數可簡化說明令cckj=i=0Mcoskicosji]]>(公式6)
令sckj=i=0Msinkicosji]]>(公式7)令cskj=i=0Mcoskisinji]]>(公式8)令sskj=i=0Msinkisinji]]>(公式9)這些係數可在數學上簡化是通過認識到以下公式cckj=(i=0Mcos(k+j)i+i=0Mcos(k-j)i)/2]]>sckj=cskj=(i=0Msin(k+j)i+i=0Msin(k-j)i)/2]]>sskj=(i=0Mcos(k+j)i-i=0Mcos(k-j)i)/2]]>以及i=0Mcosi=(cos(N-1)-cosN-cos+1)/2(1-cos)]]>和i=0Msini=(sin(N-1)-sinN+sin)/2(1-cos)]]>式中,α是ω的任何任意值。
使用在公式6~公式9中定義的係數來重寫公式4和公式5,可生成以下矩陣 (公式10)通過確定矩陣X的逆矩陣,並把該逆矩陣乘以公式10左側的矢量V,可解公式10求矢量ab中的Ak和Bk的每個值。
一旦對從1到N的k的每個值的Ak和Bk是已知的,就可通過計算A2k+B2k]]>來確定頻率列表的每個第k個頻率的幅度。通過計算Bk和Ak的2自變量反正切,可確定各相位的值。
通過施加約束,即2N=M+1(頻率數是抽樣數的一半),可減輕一些通過解公式10所施加的計算負擔。通過把該約束放在合適位置,可將公式10的矢量V重寫如下 (公式11)由於施加上述約束會迫使C和X-1成為同一秩(rank)的方形矩陣,因而可把公式10和公式11進行組合以形成ab=(X-1C)y (公式12)這樣,可求出ab,而無須計算V。
建議使用以下方法求出ab· 首先,使用以下遞歸關係來快速構建Ccos(a+1)ωk=2cosωkcosaωk-cos(a-1)ωksin(a+1)ωk=2cosωksinaωk-sin(a-1)ωk· 然後,通過L-U分解,計算X-1;· 把X-1施加於C;· 通過使X-1C乘以y來計算ab。
一旦構建了X-1C,計算ab就可大致要求N2倍增累積。
優選地是,本文所述技術是作為軟體庫中的一種函數來實施的。該函數優選地接收輸入陣列,該輸入陣列存儲頻率列表和所述抽樣數據指針。該函數優選地返回包含Ak和Bk各值的陣列,從中可計算幅度和相位。或者,該函數直接返回幅度和相位。軟體庫優選地駐留在自動測試系統上,在該自動測試系統中,可訪問在測試系統中運行的測試程序。
各圖的水平軸表示頻率,具體地說,表示頻率點(Bin)0~63。為了與採用FFT的方法進行直接比較,使用N=64來操作最佳擬合技術,其中,N個頻率中的每個均與FFT點(Bin)對應。垂直軸表示以db為單位的幅度。
各圖均示出了從第9頻率點(Bin)即即未進行相干抽樣的頻率點(Bin)的中心略微偏斜的單音調。特別是,ωk=2π(k-1)(1+ε),式中,對圖4A中ε=10-6,對圖4B為ε=10-9,對圖4C為ε=10-12。這些圖均表明了最佳擬合技術的強度。與其他技術相比,最佳擬合技術可保持極窄波峰,而在波峰周圍沒有升高區域(「裙部」)。
優點所揭示技術與常規DFT比起來有許多優點,特別是在自動測試設備方面。使用所述技術,可利用價格較低廉的測試儀電子裝置進行高精度頻譜分析。抽樣時鐘無需與待測定頻率相干,並可大大消除頻譜洩漏。與把頻率分類為寬度有限的各點(Bin)的常規DFT相比,所揭示技術不採用頻率點(Bin),而採用離散頻率。這樣,所揭示技術可按照使用常規DFT無法實現的方式來分辨間隔極密的頻率。
該技術還具有可升級的,因為其計算時間隨著N的函數,即待分析頻率數而變化。這樣,如果僅分析少量頻率,則可較快實施該技術。此外,由於該技術採用最佳擬合算法,因而可使用該技術來確定在抽樣窗口內未充分完成一個循環的頻率分量的幅度和相位。要求事先規定頻率,一般在自動測試設備中不會起到不利作用,在該自動測試設備中,由DUT生成的頻率事先在很大程度上是已知的,並且測試儀生成用於驅動DUT的激勵。
儘管X-1C需要大量時間來計算,然而每當分析波形時,無需對其重新計算。只要頻率列表和抽樣數M保持恆定,就可通過檢索X-1C的存儲拷貝並將其乘以y,對新獲得的抽樣數據進行分析。提供的庫可包括針對不同頻率和抽樣數的各種不同X-1C組合。用戶可從這些組合中進行選擇,以便對波形進行快速分析。
替代例在對一個實施例作了說明之後,可進行各種替代實施例或變化。
例如,如上所述,在自動測試設備方面可使用抽樣波形分析技術。然而,該技術可更普遍地適用於期望進行頻率信息分析的任何抽樣數據。儘管根據

圖1的具體測試方案對該技術作了說明,然而該技術不限於任何具體測試方案。
本文揭示的實施例對使用線性最小二乘方來獲得在波形模型(公式2)和實際抽樣數據之間的最佳擬合作了規定。然而,可使用其他最佳擬合技術,例如,柯西-洛倫茲(Cauchy-Lorentz)分布,以及試圖使模型和抽樣數據之差的絕對值最小的技術。因此,本發明不限於使用最小二乘方。
此外,本說明還提供了用於處理矩陣和執行必要計算的軟體。或者,可提供專用硬體電路或處理器,以便更有效地執行這些功能。
如上所述,該技術要求N個頻率列表事先是已知的。然而,可通過對抽樣數據進行DFT並檢查結果來避免該要求。這種變形例如圖3所示。在步驟310,進行DFT。在步驟312,在從DFT得出的功率頻譜中識別波峰。然後,把與波峰對應的頻率附加給頻率列表,用於進行更準確的分析。步驟316和318如上所述進行假定抽樣數據與模型一致,並且獲得在抽樣和模型之間的最佳擬合。該技術無需在空白中(vacuum)進行。也可將伴隨情況加以考慮,例如,施加給DUT的激勵頻率,這些頻率的諧波,以及DUT的已知特性。
上述技術假定按照勻速進行波形抽樣。然而,根據替代實施例,也可按照非勻速進行波形抽樣。特別是,用「ti」項(即實際抽樣時間)替代上述方程和矩陣中的離散指數「i」,可實現任意非均勻抽樣。對於非均勻抽樣,可以不使用公式9之後的計算簡化;然而,該變化對所述技術的其餘部分是透明的。
這些替代例和變形例以及其他例等均由本發明人作了設想,並用於包含在本發明的範圍內。因此,應理解的是,上述說明僅是作為例子,並且本發明應僅由所附權利要求的精神和範圍來限制。
計算機列表以下提供了用於生成這些圖表的數據的測試代碼的軟體列表
/* standard header files */ #include <stdio.h> #include <math.h> #include <sys/time.h> #include <image.h> #define N 128 /* Number of samples of original waveform */ #define M 64 /* Number of frequency bins for least-squares fit routine */ #define M2 (2*M) /* Total number of bins(real,and imaginary) */ #define R 32 /* Number of samples to expand by in resampling routine*/ #define F 1024 /* Number of samples infilter in resampling routine*/ double raw_capture[N];/* The original samplas*//* These are used in the resampling routine only */double extended_capture[2*N],/* basically raw_capture[],but with extra samples */ expanded_capture[R*N],/* this is (hopefully) equivalent to raw_capture[] */  /* but with R times as many samples*/ filter, /* uses a cos^2 filter 1024 points */ resampled_capture[N]; /* this is (hopefully) raw_capture[] but sampled at */  /* the correct rate*/double Mx[M2][M2], /* This corresponds to matrix M */ Mi[M2][M2], /* inverse of matrix M*/ MiC[M2][M2], /* This is the product of M^-1C */ x[M2],xmags[M],xargs[M], /* uncorrected dft-mags and phases (arguments)*/ xw[M2],xwmags[M],xwargs[M],/* uncorrected dft with hamming window*/ xs[M2],xsmags[M],xsargs[M],/* resampled dft */ xp[M2],xpmags[M],xpargs[M];/* least squares dft *//* Computes sum(cos w*i)i=0 to n */double sumcos(w,n)double w;{return w ? 0.5*(cos(w*(n-1))-cos(w*n)-cos(w)+1)/(1-cos(w)n;}/* Computes sum(sin w*i) i=0 to n */double sumsin(w,n)double w;{return w ? 0.5*(sin(w*(n-1))-sin(w*n)+sin(w))/(1-cos(w))0;}/* Makes 1024 point cos^2 filter-used for resampling algorithm *//* This is not used by least squares */make_filter{int i; for(i=0;i<1024;i++)dp/ filter[i]=(1-cos(2+M_PI*i/1024))/2; } /* 1d interpolation routine-used for resampling algorithm.*/ /* Basically Laqrange’s interpolation */ /* This is not used by least squares */ /* tries to return y[a] given y
...y[n-1] as input */ double interpolate_1d(a,y,n) double a,y[]; int n; {int k,j,xl,xr; double product,sum=0; xl=ftoi(a-2.0); xr=ftoi(a+2.0); xl=xl>=0?xl0; xr=xl<=n?xrn; for(k=xl;k<=xr;k++) {product=y[k];  for(j=xl;j<=xr;j++)   if(j!=k)   product*=(a-j)/(k-j); sum+=product; } return sum;}main{int i,j,k,m; struct timeval tp0,tp1,tp2,tp3; /* Used for timing */ double f0=1.0+0.001e-9; /* Frequency error of 0.001ppb */ gettimeofday(amp;tp0,NULL); for(i=0;i<N;i++) raw_capture[i]=cos(2*M_PI* 9*f0*i/N); gettimeofday(amp;tp1,NULL); printf(″Time to construct raw capture%6uus\n″,diff(tp1,tp0)); gettimeofday(amp;tp0,NULL); for(m=0;m<M;m++) {x[2*m]=x[2*m+1]=0; for(i=0;i<N;i++) {x[2*m]+=raw_capture[i]*cos(2*M_PI*m*i/N); x[2*m+1]+=raw_capture[i]*sin(2*M_PI*m*i/N); }} gettimeofday(amp;tp1,NULL); printf(″Time to construct %i-point uncorrected dft%6uus\n″,M,diff(tp1,tp0)); for(i=0;i<M;i++) {xmags[i]=hypot(x[2*i+1],x[2*i+0])/M; xargs[i]=180/M_PI*atan2.(x[2*i+1],x[2*i+0]); }/* This section is not least squares fit,but is a crude resampling algorithm */#ifdef R gettimeofday(amp;tp0,NULL); for(i=0;i<2*N;i++) extended_capture[i]=cos(2*M_PI* 9*f0*(i-N/2)/N); gettimeofday(amp;tp1,NULL); printf(″Time to construct raw capture(with N/2 padding)%6uus\n″,diff(tp1,tp0)); gettimeofday(amp;tp0,NULL); make_filter;dp/ gettimeofday(amp;tp1,NULL); printf(″Time to construct cos^2 filter%6uus\n″,diff(tp1,tp0)); gettimeofday(amp;tp0,NULL); for(i=0;i<N*R;i++) {int e0=N/2-F/R/2+(i+R-1)/R; expanded_capture[i]=0; for(j=0;j<F/R;j++) {int fi=(N*R-i)%R+j*R; int ej=e0+j; expanded_capture[i]+=filter[fi]*extended_capture[ej]; }} gettimeofday(amp;tp1,NULL); printf(″Time to expand padded capture%6uus\n″,diff(tp1,tp0)); gettimeofday(amp;tp1,NULL); for(i=0;i<N;i++) resampled_capture[i]=interpolate_ld(i*R/f0,expanded_capture,N*R); gettimeofday(amp;tp1,NULL); printf(″Time to resample from expanded capture%6uus\n″,diff(tp1,tp0)); gettimeofday(amp;tp0,NULL); for(m=0;m<M;m++) {xs[2*m]=xs[2*m+1]=0; for(i=0;i<N;i++) {xs[2*m]+=resampled_capture[i]*cos(2*M_PI*m*i/N); xs[2*m+1]+=resampled_capture[i]*sin(2*M_PI*m*i/N); }} gettimeofday(amp;tp1,NULL); printf(″Time to construct %i-point resampled dft%6uus\n″,M,diff(tp1,tp0)); for(i=0;i<M;i++) {xsmags[i]=hypot(xs[2*i+1],xs[2*i+0])/M; xsargs[i]=180/M_PI*atan2(xs[2*i+1],xs[2*i+0]); }#endif/* This section is not least squares fit,but instead uses a hanning window */ gettimeofday(amp;tp0,NULL); for(m=0;m<M;m++) {xw[2*m]=xw[2*m+1]=0; for(i=0;i<N;i++) {xw[2*m]+=raw_capture[i]*cos(2*M_PI*m*i/N)*(1-(1+cos(2*M_PI*i/N))/2); xw[2*m+1]+=raw_capture[i]*sin(2*M_PI*m*i/N)*(1-(1+cos(2*M_PI*i/N))/2); }} gettimeofday(amp;tp1,NULL); printf(″Time to construct %i-point windowed dft%6uus\n″,M,diff(tp1,tp0)); for(i=0;i<M;i++) {xwmags[i]=hypot(xw[2*i+1],xw[2*i+0])/M; xwargs[i]=180/M_PI*atan2(xw[2*i+1],xw[2*i+0]); } /* The least-squares section */ gettimeofday(amp;tp0,NULL); for(i=0;i<M;i++) for(j=0;j<M;j++) {Mx[2*i][2*j]=0.5*(sumcos(2*M_PI*(i+j)*f0/N,N)+sumcos(2*M_PI*(i-j)*f0/N,N)); Mx[2*i][2*j+1]=0.5*(sumsin(2*M_PI*(i+j)*f0/N,N)-sumsin(2*M_PI*(i-j)*f0/N,N)); Mx[2*i+1][2*j]=0.5*(sumsin(2*M_PI*(i+j)*f0/N,N)+sumsin(2*M_PI*(i-j)*f0/N,N)); Mx[2*i+1][2*j+1]=0.5*(-sumcos(2*M_PI*(i+j)*f0/N,N)+sumcos(2*M_PI*(i-j)*f0/N,N)); }Mx[1][1]=Mx
;/* fix that nasty problem with sin */gettimeofday(amp;tp1,NULL);printf(″Time to construct matrix%6uus/n″,diff(tp1,tp0));dp/ gettimeofday(amp;tp0,NULL); invert2M( ); gettimeofday(amp;tp1,NULL); printf(″Time to invert matrix%6uus\n″,diff(tp1,tp0)); gettimeofday(amp;tp0,NULL); for(i=0;i<M2;i++) for(j=0;j<M2;j++) {MiC[i][j]=0.0; for(k=0;k<M;k++)  MiC[i][j]+=Mi[i][2*k]*cos(2*M_PI*k*f0*j/N)+  Mi[i][2*k+1]*sin(2*M_PI*k*f0*j/N); } gettimeofday(amp;tp1,NULL); printf(″Time to construct composite matrix%6uus\n″,diff(tp1,tp0)); gettimeofday(amp;tp0,NULL); for(i=0;i<M2;i++) {xp[i]=0; for(j=0;j<M2;j++) xp[i]+=MiC[i][j]*raw_capture[j]; } gettimeofday(amp;tp1,NULL); printf(″Time to multiply composite matrix on result%6uus\n″,diff(tp1,tp0)); for(i=0;i<M;i++) {xpmags[i]=hypot(xp[2*i+1],xp[2*i+0]); xpargs[i]=180/M_PI*atan2(xp[2*i+1],xp[2*i+0]);}}/* These matrix inversion routines should be replaced by L-U decomposition *//* These unfortunately use a crude Gauss-Jordon algorithm with no pivoting */initMi( ){int i,j; for(i=0;i<M2;i++) for(j=0;j<M2;j++)  Mi[i][j]=i==j;}invert2M( ){int i,j; initMi( ); for(i=0;i<M2;i++) {divrow(i,Mx[i][i]); for(j=i+1;j<M2;j++) if(Mx[j][i]) {divrow(j,Mx[j][i]);  decrow(j,i); } } for(i=M2-1;i;i--) for(j=i-1;j>=0;j--) submultdrow(j,Mx[j][i],i);}divrow(i,denom)int i;float denom;{int k; for(k=0;k<M2;k++) {Mx[i][k]/=denom; Mi[i][k]/=denom;}}dp/decrow(i,j)int i,j;{int k; for(k=0;k<M2;k++) [Mx[i][k]-=Mx[j][k]; Mi[i][k]-=Mi[j][k];}}submultdrow(i,factor,j)int i,j;float factor;{int k; for(k=0;k<M2;k++) {Mx[i][k]-=factor*Mx[j][k]; Mi[i][k]-=factor*Mi[j][k];}}/* returns the difference in microseconds between two timeval structures. */diff(tp1,tp0)struct timeval tp0,tp1;{return(tp1.tv_sec-tp0,tv_sec)*1000000+tp1.tv_usec-tp0,tv_usec;}/* this makes an ascii file which can be cut and pasted into spreadsheet */write out data_for_msexcel(filename)char *filename;{int i; FILE *fp; fp=fopen(filename,″w″); if(fp) {for(i=0;i<M;i++) fprintf(fp,″%4.3f\t%4.3f\t%4.3f\t%4.3f%c\n″,   20*log10(xmags[i]),   20*log10(xwmags[i]),   20*log10(xsmags[i]),   20*log10(xpmags[i]),   13); fclose(fp);}else{fprintf(stderr,″Could not open output file.\n″); perror(filename);}}
權利要求
1.一種用於對抽樣信號頻率分量進行分析的方法,該方法包括以下步驟(A)生成想要在抽樣信號內進行分析的N個不同頻率分量的列表,N>1,其中,N個頻率分量中的每個頻率是已知的,並且幅度和相位是未知的;(B)對抽樣信號進行建模,作為與N個正弦波之和對應的波形模型,N個正弦波中的每個也具有未知幅度和相位,並具有一頻率,該頻率與多個N個頻率分量中的一個頻率相等;以及(C)對波形模型進行處理,以使波形模型與抽樣信號最佳擬合。
2.根據權利要求1所述的方法,其中,對波形模型進行計算機處理的步驟C採用最小二乘方算法,用於使波形模型與抽樣信號擬合。
3.根據權利要求2所述的方法,其中,N個正弦波中的每個均可採用公式Aksinωki+Bkcosωki來表示,式中,「Ak」和「Bk」是未知係數,「k」是範圍從1到N的指數,並表示N個頻率分量中的一個,ωk對應於第k頻率分量,以及「i」是識別具體抽樣並表示時間的指數。
4.根據權利要求3所述的方法,其中,對波形模型進行處理的步驟C使估計量最小,該估計量可表示為i=0M[yi-k=1N(Akcoski+Bksinki)]2]]>式中,「M」表示構成抽樣波形的抽樣數,以及「yi」表示在抽樣波形情況下的第i點。
5.根據權利要求1所述的方法,該方法進一步包括求出N個頻率分量的未知幅度和相位中的至少一個。
6.根據權利要求5所述的方法,其中,N個頻率分量的各第k頻率分量的幅度可表示為A2k+B2k]]>
7.根據權利要求5所述的方法,其中,N個頻率分量的各第k頻率分量的相位可表示為Bk和Ak的2自變量反正切。
8.一種在自動測試系統中對在測設備進行測試的方法,該方法包括以下步驟(A)把激勵信號施加給在測設備;(B)從在測設備中進行響應信號抽樣;(C)生成想要在抽樣響應信號內進行分析的N不同頻率分量的列表,N>1,其中,N個頻率分量中的各方的頻率是已知的,並且幅度和相位是未知的;(D)對抽樣信號進行計算機建模,作為與N個正弦波之和對應的波形模型,N個正弦波中的每個也具有未知幅度和相位,並具有一頻率,該頻率與多個N頻率分量中的一個不同頻率相等;(E)對波形模型進行計算機處理,以使波形模型與抽樣信號最佳擬合;以及(F)求出N頻率分量的未知幅度和相位中的至少一方。
9.根據權利要求8所述的方法,其中,該設備是作為其製造工藝的一部分而測試的,用於確保其在裝運前的質量。
10.根據權利要求8所述的方法,其中,生成N個不同頻率分量的列表的步驟C包括向施加給在測設備的激勵信號的頻率提供N個頻率分量列表。
11.根據權利要求10所述的方法,該方法進一步包括向施加給在測設備的激勵信號的頻率的諧波提供N頻率分量列表。
12.根據權利要求8所述的方法,其中,生成N個不同頻率分量列表的步驟C包括對抽樣的響應信號進行離散傅立葉變換(DFT);識別DFT中的波峰;以及把與DFT中的波峰基本相等的頻率附加給N個頻率分量列表。
13.在自動測試系統中,一種用於對測試信號頻率含量進行分析的設備,該設備包括數位化儀,用於從在測設備中進行測試信號抽樣;存儲器,用於存儲想要在抽樣信號內進行分析的N個不同頻率分量的列表,N>1,其中,N個頻率分量中的每個頻率是已知的,並且幅度和相位是未知的;計算機建模軟體,用於對抽樣信號進行計算機建模,作為與N個正弦波之和對應的波形模型,N個正弦波中的每個也具有未知幅度和相位,並具有一頻率,該頻率與多個N頻率分量中的一個不同頻率相等;以及計算機處理軟體,用於對波形模型進行計算機處理,以使波形模型與抽樣信號最佳擬合。
14.根據權利要求13所述的設備,進一步包括測試程序,該測試程序在自動測試系統上運行,並在N頻率列表中規定頻率。
15.根據權利要求13所述的設備,其中,計算機建模軟體和計算機處理軟體駐留在軟體庫內,該軟體庫由不同測試程序來訪問,用於分析抽樣的波形。
16.根據權利要求13所述的設備,其中,計算機處理軟體採用最小二乘方算法,用於使波形模型與抽樣響應信號擬合。
17.根據權利要求16所述的設備,其中,N個正弦波中的每個均可採用公式Aksinωki+Bkcosωki來表示,式中,「Ak」和「Bk」是未知係數,「k」是範圍從1到N的指數,並表示N頻率分量中的一個,ωk對應第k頻率分量,以及「i」是表示時間的指數。
18.根據權利要求17所述的設備,其中,計算機處理軟體使估計量最小,該估計量可表示為i=0M[yi-k=1N(Akcoski+Bksinki)]2]]>式中,「M」表示構成抽樣波形的抽樣數,以及「yi」表示在抽樣波形情況下的第i點。
19.在自動測試系統中,一種用於對測試信號頻率含量進行分析的設備,該設備包括數位化儀,用於從在測設備中進行測試信號抽樣;存儲裝置,用於存儲想要在抽樣信號內進行分析的N個不同頻率分量的列表,N>1,其中,N個頻率分量中的每個頻率是已知的,並且幅度和相位是未知的;建模裝置,用於對抽樣信號進行建模,作為與N個正弦波之和對應的波形模型,N個正弦波中的每個也具有未知幅度和相位,並具有一頻率,該頻率與多個N頻率分量中的一個不同頻率相等;以及處理裝置,用於對波形模型進行處理,以使波形模型與抽樣信號最佳擬合。
20.根據權利要求19所述的設備,其中,建模裝置和處理裝置駐留在軟體庫內,該軟體庫由不同測試程序來訪問,用於分析抽樣波形。
21.根據權利要求1所述的方法,其中,抽樣信號按照非勻速進行抽樣。
全文摘要
本發明提供了一種技術,用於對從自動測試系統中抽樣的波形的頻率分量的幅度進行確定,該技術包括對預計在抽樣波形中發現的N個頻率的列表進行彙編。在測試儀上運行的測試程序通常提供頻率列表。該技術假定抽樣波形與理想化波形模型一致,而該理想化波形模型在數學上與N個正弦波之和對應。構成該模型的N個正弦波中的每個均具有未知幅度,並具有一頻率,該頻率與頻率列表中的N個頻率中的一個相等。該技術試圖在數學上通過線性最小二乘方算法使模型與實際抽樣波形之差最小,從而求出N頻率中的各方的未知幅度。
文檔編號G01R23/16GK1464979SQ02802241
公開日2003年12月31日 申請日期2002年6月24日 優先權日2001年6月29日
發明者格雷戈裡E·迪翁 申請人:泰拉丁公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀