hcomb
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
This function implements a methods to detect harmonics in a spectrum and to create a harmonic comb filter.
- Usage
hcomb(mflag, oflag, a, imin, imax, ot, ok, oo, nget, rrms, nrms, nset)
- mflag
- selects the method used to detect the test tone ft
mflag=0 peak picking mflag=1 harmonic grid
- oflag
- selects the format and content of the result (see Result); the values 0 and 1 are supported
- a
- a vector containing an amplitude spectrum (linear, with constant df); in the description below n is the length of a.
- imin, imax
- index range for test tone (ft) detection; 0 ≤ imin < imax < n
- ot
- test tone order (f0 = ft / ot); 0 < ot
- ok, oo
- order factor and offset for the components of the comp fc[i];
fc[i] = f0 * (oo + ok*i); with: i=1,2,...
- nget
- the number of points (+/-) to detect the peak of a harmonic component fc[i]; 3 ≤ nget
- rrms
- defines the energy ratio threshold for harmonic components; 0 ≤ rrms < 1
- nrms
- defines the bandwidth (+/- nrms points) used to compute the energy ratio; 2 ≤ nrms
- (
component-rms / testband-rms ≥ rrms
)
- (
- nset
- defines the comb bandwidth (+/- nset points); if nset equals 0, a variable comb bandwidth is used to remove the detected components; this argument is only used if oflag equals 1
- Description
- The function extracts the frequency ft of the test tone from the selected test frequency band (arguments: mflag, imin, imax and rr).
- The argument ot is used to compute the fundamental frequency f0 of the harmonic comb.
- For each frequency band of the harmonic comb is tested if there is a spectral component (peak) or not. The frequency, amplitude and order of the detected harmonic components are saved.
- Result
-
- oflag=0: The result r is a (M+1)x3 matrix, with M is the number of detected harmonics
r[0,0] fundamental frequency f0 (weighted average of component frequencies) r[0,1], r[0,2] always 0 r[i,0] frequency of component i (i=1..M) r[i,1] amplitude of component i (i=1..M) r[i,2] order of component i (i=1..M)
- oflag=1: The result r is a vector with n elements containing the amplitude spectrum of the comb filter. Inside each detected band the amplitudes are set to 1, outside the amplitudes are set to 0.
- Note: All frequencies computed and returned by this function are relative frequencies, computed for a frequency resolution df=1.
- See also
- optmm, cvphase, script application MulAc