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 38: | Line 38: | ||
|} | |} | ||
:*''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'''. | :*''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|optmm]], [[../cvphase|cvphase]], [[Programmer_Guide/BScript#MulAc|script application '''MulAc''']] | ;See also: [[../optmm|optmm]], [[../cvphase|cvphase]], [[Programmer_Guide/BScript#MulAc|script application '''MulAc''']] | ||
[[../#Functions|<function list>]] | [[../#Functions|<function list>]] |
Revision as of 12:24, 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 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