Programmer Guide/Command Reference/EVAL/hcomb: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 10: | Line 10: | ||
|} | |} | ||
:;<var>oflag</var>:selects the format and content of the result (see '''Result'''); the values '''0''' and '''1''' are supported | :;<var>oflag</var>:selects the format and content of the result (see '''Result'''); the values '''0''' and '''1''' are supported | ||
:;<var>a</var>:a vector containing amplitude spectrum (linear, with constant df); in the description below ''n'' is the length of ''a''. | :;<var>a</var>:a vector containing an amplitude spectrum (linear, with constant df); in the description below ''n'' is the length of ''a''. | ||
:;<var>imin, imax</var>:index range for test tone (''ft'') detection; 0 <= ''imin'' < ''imax'' < ''n'' | :;<var>imin, imax</var>:index range for test tone (''ft'') detection; 0 <= ''imin'' < ''imax'' < ''n'' | ||
:;<var>ot</var>:test tone order (''f0'' = ''ft'' / ''ot''); 0 < ''ot'' | :;<var>ot</var>:test tone order (''f0'' = ''ft'' / ''ot''); 0 < ''ot'' |
Revision as of 12:25, 20 April 2011
This function implements a methods to detect harmonics in a spectrum and to create a harmonic comb filter. It was especially implemented for the script application MulAc.
- 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