CA2335188A1 - Peak interpolation method for optical or magnetic disk drive pickups - Google Patents

Peak interpolation method for optical or magnetic disk drive pickups Download PDF

Info

Publication number
CA2335188A1
CA2335188A1 CA 2335188 CA2335188A CA2335188A1 CA 2335188 A1 CA2335188 A1 CA 2335188A1 CA 2335188 CA2335188 CA 2335188 CA 2335188 A CA2335188 A CA 2335188A CA 2335188 A1 CA2335188 A1 CA 2335188A1
Authority
CA
Canada
Prior art keywords
peak
float
sum
optical
amplitude
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA 2335188
Other languages
French (fr)
Inventor
Stanislaw Bleszynski
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CA 2335188 priority Critical patent/CA2335188A1/en
Publication of CA2335188A1 publication Critical patent/CA2335188A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals

Abstract

Presented is a digital signal processing method for accurate detection of position and amplitude of digitized analog signals coming out of optical or magnetic pickup heads The least-square parametric fit of a second-or fourth-degree polynomial curve to 4 or more data points at a time, and minimization of the sum of square residuals allow for precise determination of peak top position and amplitude for the purpose of recording quality diagnostics. The method has been proven very reliable and noise-resistant.

Description

Peak Interpolation Method For Optical or Magnetic Disk Drive Pickups DESCRIPTION OF THE INVENTION
1. Introduction.
This invention has been designed to improve the accuracy of peak timing and amplitude detection of digitized signals in such applications as testing and diagnostics of the quality io of optical & magnetic data recording, and many others. The improvement is such that the accuracy beyond digitization quantization limit is possible in both amplitude and timing. The method described in this invention has been tested and implemented in certain commercial magnetic and optical media testers, and has been proven superior to such standard analog techniques as filtering, differentiating and zero-cross detection.
i5 This technique is not limited to optical or magnetic recording signal processing, but may also be useful in other digital signal processing applications whenever determination of accurate peak position or amplitude is required.
2. Embodiment of the invention.
General Idea.
The main idea of the method is that we seek to fit a certain well defined theoretical curve of parabolic-like shape to the digitized signal waveform near the position of the supposed 25 peak. The more the theoretical curve shape resembles the actually sampled waveform and the closer we are to the actual peak, the better the fit then becomes. The measure of how good the fit is, is calculated as the sum of square resididuals. The "residual" is defined as a difference between the theoretical curve and the actual data for all data points along the curve.
The algorithm works like this:
a) Take a buffer full of data samples (i=0,1,2,3,...N ) .
b) Scan the buffer taking a sub-set of M (M>=4, and M«N) consecutive data points centered around the index i .
c) Fit a second or higher polynomial (degree K, K>=2) or other parametrized theoretical function, to the above sub-set, using a standard least square method (see ref 1 ) or other technique.
d) Calculate the square-residual sum SR[i] over the current sub-set centered around index 1.
e) Check if the SR has had a minimum in the previous cycle ( that is if SR[i-2]>SR[i-1]<=SR[i] ) and if it is lower than certain pre-defined limit SRLIM ( SR[i-I]<=SRLIM ) - if yes then assume that there is a peak near or at the the data index (i-1) 45 - if no then move on (i=i+1) and repeat steps b-a The above algorithm allows one to find the most viable peaks (both positive and negative), conforming to certain criteria determined mostly by the choice of the theoretical parametrized function (eq. polynomial versus trigonometric or exponential so series etc.) as well as by the value of SRLIM parameter. The smaller SRLIM, the better the fit ought to be in order for the algorithm to recognize a given peak as valid.
For every found valid peak location (i), one can now easily calculate the peak top amplitude and the accurate peak top position from the best-fit parameters of the 55 theoretical curve at that point. Since these quantities are obtained through the least-square fit, they are generally very immune to noise, and their accuracy can easily exceed digital quantization limits in both amplitude domain or in time domain (index i).
Note that for the algorithm to work best it is important to chose the data sampling rate so high enough and the width of the data sub-set window M small enough such that the typical duration of peaks (at'h height) is equal or longer than M. This method is also somewhat sensitive to the actual shape of the waveform - which should determine the best choice for the theoretical prametric curve.
s5 Example of an algorithmic implementation (in C language).
Function solve Isqfit listed below may be used to scan almost entire data buffer ( y[i] , i=2,3,...,N-2 ). If at any point (i) the the function returns 1 - it means that a valid peak was found . One should also test the residual sum of squares returned by the sixth argument to make sure it lower than the limit SRLIM. Peak parameters are returned by the pointer arguments 3-5, such as: peak top amplitude level = *a0, peak polarity is determined by *a2 (negative = maximum, positive=minimum), and the precise timing of the peak extremum is t = i*T - d*T (where T=sampling period). Example of a call:
float a0, a2, d, r=-1.0;
int y[4] _ {1,3,4,2};
if( solve_lsqfit(y, 2, &a0, &a2, &d, &r) ) printf("Extremum found in y[0..3] at i=2");
80 //********************************************************************
// ca_solve_lsqfit - Solves four-point least-square quadratic fit.
// Calculates coefficients a0, a2, and d of quadratic polynomial:
// y(i+k) = f(k) = a0 + a2*(k+d)"2 k=-2,-1,0,1.
// Input: y - ptr to array of digitized waveform.
85 // i - array subscript at which an extremum condition is // being tested. Note: yfi-2],y[i-1], // y(i] and yfi+1] must all be valid data // *res-sum_sqrs - less than zero value enables // calculation of the residual sum of squares, after 90 // fitting. Value >0.0 disables calculations of // residual sum of squares.

//Output: *a0 - Calculated polynomial coefficient.
If valid extremum //is found (returns 1)then *a0 is equal to the true //interpolated peak amplitude.

95 //*a2 - Calculated polynomial coefficient. If valid extremum //is found (returns 1)then the sign of *a2 indicates //whether this is a maximum (*a2 < 0.0 ) or a minimum //( *a2 > 0.0 ) //*d - offset parameter. If valid extremum is 100//found (returns 1) then *d is equal to the negative //offset between the index i and the true interpolated //position of the peak extremum ( 0 <_ *d <= 1 ) //For example: if *d==0.0 then extremum is at i, //if *d==1.0 then extremum is at i-1, 105//*res sum sqrs - residual sum of squares calculated //(if enabled) after the least square fitting.

//If disabled - then no change.

//Returned value:

//0 - No extremum found between data position (i-1) and i .

110//1 - Extremum was found between, or at (i-1) and i .

//********************************************************************

int solve-lsqfit(int *y, int i, float *a0, float *a2, float *d, float *res sum sqrs) 115 unsigned char calc resid_sumsqrs;

const float det == 80.0;

long p3, p2, p1;

int u0, u1, u3, u2;

long a, b, c;

120 float p, q;

sumsqrs = (*res-sum sqrs < 0.0);
calc resid _ u0 = y[i-2];

u1 = y [i-1] ;

u2 = y[i ];

125 u3 = y[i+1] ;

p3 = 4L*(long)u0 + (long)ul + (long)u3 ;

p2 = -2L*(long)u0 - (long)ul + (long)u3;

p1 = (long)u0 + (long)ul + (long)u2 + (long)u3 ;

a - 20L*(p3 + p2 - p1);

130 b - 20L*p3 + 36L*p2 - 12L*pl;

c - -20L*p3 - 12L*p2 + 44L*pl;

if(a==OL) // Special case (1) // the best fit is a straight line *a0 = (u1 + u2)/2.0;

135 *a2 = 0.0;

*d - 0.5;

if(fabs(b)<le-5) // the slope is horizontal -->
all equal if(calc_resid_sumsqrs) 140 *res sum sqrs =

calc_resid_sum(y,i,(float)a/det,(float)b/det,(float)c/det);

return( 1 );

else // the slope is inclined return( 0 );
p = (-0.5*(float)b/(float)a);
150 q = ((float)c - (float)a*p*p)/det;
if( p<-1.0 ~~ 0.0<p ) // Special case (2) // extremum is not within (i-1) and i *a0 - (a<OL ? max(ul,u2) . min(ul,u2));
*a2 - (float)a/det;
155 *d - (p>0.0 ? 0.0 : 1.0);
if(calc_resid_sumsqrs) *res sum_sqrs = 1e30;
return( 0 );
// Normal return - extremum is found between (i-1) and i 160 *a0 - q; // peak value *a2 - (float)a/det; // coeff. of curvature *d - -p; // position of the peak if(calc_resid-sumsqrs) // calculate residual sum of squares *res sum sqrs =
165 calc_resid_sum(y,i,(float)a/det,(float)b/det,(float)c/det);
return( 1 );
//********************************************************
170 // calc_resid_sum - calculate residual sum of squares // of polynomial f(k)=a*k"2+b*k+c to data points // y[k], k = i-2, i-1, i, i+1 //********************************************************
static float calc resid-sum(int *y, int i, float a, float b, float c) float d,e,f,g;
d = (float)y[i-2] - 4.0*a + 2.0*b - c;
a = (float)y[i-1] - a + b - c;
f = (float)y[i ] - c;
180 g = (float)y[i+1] - a - b - c;
return( d*d + a*e + f*f + g*g );

Reference.
1. "Numerical Recipes in C", W.H.Press, W.T.Vetterling, S.A.Teukolsky, B.R.Flannery, 2-nd ed., Cambridge Univ. Press, 1992 (p.671)

Claims (4)

1. Specific to this invention is the fitting of a parametric theoretical peak-resembling curve to the digitized signal waveform.
2. Specific to this invention is the usage of the least-square technique for fitting a theoretical curve to the digitized signal.
3. Specific to this invention is the peak searching method by performing a repeated least-square fitting of a parametric theoretical curve to the consecutive intervals of the digitized signal and testing for the minimum value of the residual sum of squares.
4. Specific to this invention is the extraction of the accurate peak parameters such as amplitude and position out of the parametric theoretical curve fitted to the digitized signal.
CA 2335188 2001-02-02 2001-02-02 Peak interpolation method for optical or magnetic disk drive pickups Abandoned CA2335188A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA 2335188 CA2335188A1 (en) 2001-02-02 2001-02-02 Peak interpolation method for optical or magnetic disk drive pickups

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA 2335188 CA2335188A1 (en) 2001-02-02 2001-02-02 Peak interpolation method for optical or magnetic disk drive pickups

Publications (1)

Publication Number Publication Date
CA2335188A1 true CA2335188A1 (en) 2002-08-02

Family

ID=4168299

Family Applications (1)

Application Number Title Priority Date Filing Date
CA 2335188 Abandoned CA2335188A1 (en) 2001-02-02 2001-02-02 Peak interpolation method for optical or magnetic disk drive pickups

Country Status (1)

Country Link
CA (1) CA2335188A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1675120A1 (en) * 2004-12-22 2006-06-28 Certance LLC Method and apparatus for interpolating peak detection of servo stripe pulses

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1675120A1 (en) * 2004-12-22 2006-06-28 Certance LLC Method and apparatus for interpolating peak detection of servo stripe pulses
US7729070B2 (en) 2004-12-22 2010-06-01 Certance Llc Method and apparatus for interpolating peak detection of servo stripe pulses

Similar Documents

Publication Publication Date Title
US7779690B2 (en) Vibrating wire sensor using spectral analysis
Kozmin et al. Level-crossing ADC performance evaluation toward ultrasound application
KR19990028534A (en) METHOD AND APPARATUS FOR SPECTRAL ANALYSIS IN DISK RECORDING SYSTEM
US7248200B2 (en) Analog to digital conversion method using track/hold circuit and time interval analyzer, and an apparatus using the method
US20030117914A1 (en) Data reproducing apparatus
US7378854B2 (en) Dual sine-wave time stamp method and apparatus
US6804693B2 (en) Method for reducing skew in a real-time centroid calculation
US4192003A (en) Signal recovery method and apparatus
CA2335188A1 (en) Peak interpolation method for optical or magnetic disk drive pickups
CN116884381A (en) Circuit system for microphone noise suppression
KR101028779B1 (en) A seismic wave auto-detection system using time-frequency domain changes and variable threshold values and the method thereof
KR20070038191A (en) Method of noise cancellation for measuring partial discharge in a power equipment
JP3139803B2 (en) Impulse response measurement device
Nuccio et al. Approaches to evaluate the virtual instrumentation measurement uncertainties
CN110780100B (en) Oscilloscope automatic setting method based on frequency rapid measurement algorithm
SU1247775A1 (en) Device for recognizing single and group composite pulse signals
Mishra et al. New dynamic test methods for determination of Nonlinearity and effective resolution of A/D converters
Minamihara et al. A method of detection of the correlation function and frequency power spectrum for random noise or vibration with amplitude limitation
AU729311B2 (en) Strain measuring device
KR100553915B1 (en) Apparatus, Method, and Computer-readable Medium for measuring jitter of sample signal
CN108036841B (en) Testing device and testing method for error-adjustable mass flowmeter
Slepička Phase differences determination between the fundamental and higher harmonic components at non-coherent sampling
During Recursive versus nonrecursive correlation for real-time peak detection and tracking
KR940005047B1 (en) Detector of voice transfer section
CN115062476A (en) Method for evaluating degree of deviation of electromagnetic pulse waveform from target waveform

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead