30 comp - указатель на массив структур, содержащих трассы базы трасс,
31 их заголовки и параметры, количество структур в массиве
32 определяется числом компонент compCnt,
33 comp[0].cnt - количество трасс в базе,
34 comp[0].hodog[imid] - время годографа для средней трассы базы,
35 имеющей индекс imid, относительно которого назначается
36 окно корреляции,
37 comp[0].hdr[imid].TBC - время начала трассы с тем же индексом,
38 comp[curCmp].ptr , curCmp = 0,compCnt-1 - указатель на массив трасс базы одноименной компоненты с номером curCmp,
param - структура, содержащая параметры корреляционной оценки сдвигов,
param->NZ - смещение окна корреляции влево от времени годографа (мс),
param->LDP - длина окна корреляции (мс),
param->NFP - длина ФВК (функций взаимной корреляции) (мс),
param->CFP - величина, ограничивающая максимально возможный сдвиг
между трассами (мс),
param->porFM - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
samplesCount - количество отсчетов в трассе,
DT - шаг дискретизации трассы (мс),
compCnt - количество компонент в трассе,
flRejCor - флаг режима корреляции: 0 - корреляция в скользящей базе,
корреляция помагнитограммная (для многоточечного зонда),
fp - указатель на структуру файла печати,
isFirst - флаг режима формирования матрицы ФВК: 1 - рассчитываются
все ФВК, входящие в матрицу (для первой базы в режиме
flRejCor=0 и для всех магнитограмм в режиме flRejCor=1),
0 - рассчитываются ФВК только для последнего столбца
матрицы, а остальные наследуются из матрицы ФВК,
соответствующей предыдущему положению базы,
siF - указатель на треугольную матрицу ФВК размером lenCCF * sumNR,
lenCCF - длина ФВК, sumNR - количество ФВК в треугольной
матрице, равной сумме чисел от 1 до comp[0].cnt.
siFMS - указатель на треугольную матрицу коэффициетов подобия трасс
размером sumNR
Вых. данные:
comp->shifts[i],i=0,comp[0].cnt - массив сдвигов между трассами
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются сдвиги только кондиционных пар трасс,
comp->qual[i], i=0,comp[0].cnt - массив оценок подобия трасс
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются оценки подобия только кондиционных трасс,
comp->energy[i],i=0,comp[0].cnt - массив оценок среднеквадратических
амплитуд трасс текущей базы, накопленных по предыдущим базам,
включающим те же трассы, накапливаются оценки только кондиционных
трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
39 базы одноименной компоненты с номером curCmp,
40
41 param - структура, содержащая параметры корреляционной оценки сдвигов,
42 param->NZ - смещение окна корреляции влево от времени годографа (мс),
43 param->LDP - длина окна корреляции (мс),
44 param->NFP - длина ФВК (функций взаимной корреляции) (мс),
45 param->CFP - величина, ограничивающая максимально возможный сдвиг
46 между трассами (мс),
47 param->porFM - минимально допустимое значение коэффициента подобия трассы, при котором она еще полагается кондиционной,
samplesCount - количество отсчетов в трассе,
DT - шаг дискретизации трассы (мс),
compCnt - количество компонент в трассе,
flRejCor - флаг режима корреляции: 0 - корреляция в скользящей базе,
корреляция помагнитограммная (для многоточечного зонда),
fp - указатель на структуру файла печати,
isFirst - флаг режима формирования матрицы ФВК: 1 - рассчитываются
все ФВК, входящие в матрицу (для первой базы в режиме
flRejCor=0 и для всех магнитограмм в режиме flRejCor=1),
0 - рассчитываются ФВК только для последнего столбца
матрицы, а остальные наследуются из матрицы ФВК,
соответствующей предыдущему положению базы,
siF - указатель на треугольную матрицу ФВК размером lenCCF * sumNR,
lenCCF - длина ФВК, sumNR - количество ФВК в треугольной
матрице, равной сумме чисел от 1 до comp[0].cnt.
siFMS - указатель на треугольную матрицу коэффициетов подобия трасс
размером sumNR
Вых. данные:
comp->shifts[i],i=0,comp[0].cnt - массив сдвигов между трассами
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются сдвиги только кондиционных пар трасс,
comp->qual[i], i=0,comp[0].cnt - массив оценок подобия трасс
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются оценки подобия только кондиционных трасс,
comp->energy[i],i=0,comp[0].cnt - массив оценок среднеквадратических
амплитуд трасс текущей базы, накопленных по предыдущим базам,
включающим те же трассы, накапливаются оценки только кондиционных
трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
48 трассы, при котором она еще полагается кондиционной,
49
50 samplesCount - количество отсчетов в трассе,
51 DT - шаг дискретизации трассы (мс),
52 compCnt - количество компонент в трассе,
53 flRejCor - флаг режима корреляции: 0 - корреляция в скользящей базе,
54 корреляция помагнитограммная (для многоточечного зонда),
55 fp - указатель на структуру файла печати,
56 isFirst - флаг режима формирования матрицы ФВК: 1 - рассчитываются
57 все ФВК, входящие в матрицу (для первой базы в режиме flRejCor=0 и для всех магнитограмм в режиме flRejCor=1),
0 - рассчитываются ФВК только для последнего столбца
матрицы, а остальные наследуются из матрицы ФВК,
соответствующей предыдущему положению базы,
siF - указатель на треугольную матрицу ФВК размером lenCCF * sumNR,
lenCCF - длина ФВК, sumNR - количество ФВК в треугольной
матрице, равной сумме чисел от 1 до comp[0].cnt.
siFMS - указатель на треугольную матрицу коэффициетов подобия трасс
размером sumNR
Вых. данные:
comp->shifts[i],i=0,comp[0].cnt - массив сдвигов между трассами
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются сдвиги только кондиционных пар трасс,
comp->qual[i], i=0,comp[0].cnt - массив оценок подобия трасс
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются оценки подобия только кондиционных трасс,
comp->energy[i],i=0,comp[0].cnt - массив оценок среднеквадратических
амплитуд трасс текущей базы, накопленных по предыдущим базам,
включающим те же трассы, накапливаются оценки только кондиционных
трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
58 flRejCor=0 и для всех магнитограмм в режиме flRejCor=1),
59 0 - рассчитываются ФВК только для последнего столбца матрицы, а остальные наследуются из матрицы ФВК,
соответствующей предыдущему положению базы,
siF - указатель на треугольную матрицу ФВК размером lenCCF * sumNR,
lenCCF - длина ФВК, sumNR - количество ФВК в треугольной
матрице, равной сумме чисел от 1 до comp[0].cnt.
siFMS - указатель на треугольную матрицу коэффициетов подобия трасс
размером sumNR
Вых. данные:
comp->shifts[i],i=0,comp[0].cnt - массив сдвигов между трассами
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются сдвиги только кондиционных пар трасс,
comp->qual[i], i=0,comp[0].cnt - массив оценок подобия трасс
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются оценки подобия только кондиционных трасс,
comp->energy[i],i=0,comp[0].cnt - массив оценок среднеквадратических
амплитуд трасс текущей базы, накопленных по предыдущим базам,
включающим те же трассы, накапливаются оценки только кондиционных
трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
60 матрицы, а остальные наследуются из матрицы ФВК,
61 соответствующей предыдущему положению базы,
62 siF - указатель на треугольную матрицу ФВК размером lenCCF * sumNR,
63 lenCCF - длина ФВК, sumNR - количество ФВК в треугольной
64 матрице, равной сумме чисел от 1 до comp[0].cnt.
65 siFMS - указатель на треугольную матрицу коэффициетов подобия трасс размером sumNR
Вых. данные:
comp->shifts[i],i=0,comp[0].cnt - массив сдвигов между трассами
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются сдвиги только кондиционных пар трасс,
comp->qual[i], i=0,comp[0].cnt - массив оценок подобия трасс
текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются оценки подобия только кондиционных трасс,
comp->energy[i],i=0,comp[0].cnt - массив оценок среднеквадратических
амплитуд трасс текущей базы, накопленных по предыдущим базам,
включающим те же трассы, накапливаются оценки только кондиционных
трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
66 размером sumNR
67
68 Вых. данные:
69 comp->shifts[i],i=0,comp[0].cnt - массив сдвигов между трассами
70 текущей базы, накопленных по предыдущим базам, включающим те же
71 трассы, накапливаются сдвиги только кондиционных пар трасс,
72 comp->qual[i], i=0,comp[0].cnt - массив оценок подобия трасс текущей базы, накопленных по предыдущим базам, включающим те же
трассы, накапливаются оценки подобия только кондиционных трасс,
comp->energy[i],i=0,comp[0].cnt - массив оценок среднеквадратических
амплитуд трасс текущей базы, накопленных по предыдущим базам,
включающим те же трассы, накапливаются оценки только кондиционных
трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
73 текущей базы, накопленных по предыдущим базам, включающим те же
74 трассы, накапливаются оценки подобия только кондиционных трасс,
75 comp->energy[i],i=0,comp[0].cnt - массив оценок среднеквадратических амплитуд трасс текущей базы, накопленных по предыдущим базам,
включающим те же трассы, накапливаются оценки только кондиционных
трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
76 амплитуд трасс текущей базы, накопленных по предыдущим базам,
77 включающим те же трассы, накапливаются оценки только кондиционных трасс,
info.zeroTrace - количество нулевых трасс в базе,
info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
достигших величины param->CFP
*/
/******************* GetCCFMatrix **********************/
int GetCCFMatrix (float *tr, int ntr, int cntSamples, int rebuild, int nf,
int nl, int nr, int nfk, int kfk, int curcmp, int cntcmp,
float *amp, float *sm, float *f, float *fms, float *f0,
double *ssm, PolicorInfo * info);
/* Назначение:
Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс
(fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
78 трасс,
79 info.zeroTrace - количество нулевых трасс в базе,
80 info.shortWnd - количесво сдвигов при формировании матрицы ФВК,
90 Формирование верхних треугольных матриц ФВК (f) и оценок подобия трасс (fms) для входной совокупности трасс (tr) размером (ntr).
Вх. данные:
tr - указатель на массив трасс одноименной компоненты размером
ntr*cntSamples,
ntr - количество трасс в базе,
cntSamples - количество отсчетов в трассе,
rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
последнего столбца матрицы, пересылка остальных ФВК
из матрицы для предыдущего положения скользящей базы,
1 - полный расчет текущей матрицы ФВК,
nf - количество отсчетов в ФВК,
nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
curcmp, cntcmp - индекс текущей компоненты и количество компонент,
amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
91 (fms) для входной совокупности трасс (tr) размером (ntr).
92
93 Вх. данные:
94 tr - указатель на массив трасс одноименной компоненты размером
95 ntr*cntSamples,
96 ntr - количество трасс в базе,
97 cntSamples - количество отсчетов в трассе,
98 rebuild - флага режима заполнения матрицы ФВК: 0 - расчет только
99 последнего столбца матрицы, пересылка остальных ФВК
100 из матрицы для предыдущего положения скользящей базы,
101 1 - полный расчет текущей матрицы ФВК,
102 nf - количество отсчетов в ФВК,
103 nl, nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
104 nfk, kfk - индексы трассы, определяющие начало и конец окна расчета ФВК,
105 curcmp, cntcmp - индекс текущей компоненты и количество компонент, amp - массив размером ntr среднеквадратических оценок амплитуд трасс
в окне
Вых. данные:
sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия,
исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
106 amp - массив размером ntr среднеквадратических оценок амплитуд трасс
107 в окне
108
109 Вых. данные:
110 sm[k],k=1,ntr -массив сред. значений по k-тому ряду к-тов подобия, исключая автокорреляцию, т.е. массив оценок коррелируемости
k-той трассы со всеми остальными трассами базы,
f - верхняя треугольная матрица нормированных ФВК входного массива
трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
если cntcmp>1, в матрицу на место текущей ФВК записывается
сумма ФВК соответствующих компонент трассы, нормированная
на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
111 исключая автокорреляцию, т.е. массив оценок коррелируемости
112 k-той трассы со всеми остальными трассами базы,
113 f - верхняя треугольная матрица нормированных ФВК входного массива
114 трасс tr размером nf * sumNR, nf - длина ФВК, sumNR - количество
115 ФВК в треугольной матрице, равное сумме чисел от 1 до ntr,
116 если cntcmp>1, в матрицу на место текущей ФВК записывается
117 сумма ФВК соответствующих компонент трассы, нормированная на произведение среднеквадратичных оценок амплитуд коррелируемых
трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
118 на произведение среднеквадратичных оценок амплитуд коррелируемых трасс,
fms - верхняя треугольная матрица оценок подобия трасс (максимумов
нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
119 трасс,
120 fms - верхняя треугольная матрица оценок подобия трасс (максимумов нормированных ФВК) входного массива tr размером sumNR, sumNR -
количество оценок в треугольной матрице, равное сумме чисел от 1
до ntr,
ssm - сумма всех оценок подобия матрицы ФВК,
info - указатель на информационную структуру о некорректных ситуациях,
info->zeroTrace - количество нулевых трасс в базе,
info->shortWnd - количество ФВК в матрице, имеющих максимумы на
границах диапазона поиска сдвигов.
Вспомогательные массивы:
f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
121 нормированных ФВК) входного массива tr размером sumNR, sumNR -
122 количество оценок в треугольной матрице, равное сумме чисел от 1
123 до ntr,
124 ssm - сумма всех оценок подобия матрицы ФВК,
125 info - указатель на информационную структуру о некорректных ситуациях,
126 info->zeroTrace - количество нулевых трасс в базе,
127 info->shortWnd - количество ФВК в матрице, имеющих максимумы на
128 границах диапазона поиска сдвигов.
129
130 Вспомогательные массивы:
131 f0 - массив значений текущей ФВК
Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
обращаться cntcmp раз, последовательно посылая в массив tr
трассы очередной компоненты
*/
/******************* ElimTrBySimilar **********************/
int ElimTrBySimilar (int ntr, int *ir, double *ssm, float *sm, float levelSim,
int *ntro, float *fms);
/* Назначение:
Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для
которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
132
133 Примечание. Для трехкомпонентных данных к функции GetCCFMatrix нужно
134 обращаться cntcmp раз, последовательно посылая в массив tr
143 Отбраковка трасс в базе из ntr трасс из числа актуальных трасс (для которых ir[i] на входе =1). Отбраковывются те трассы, средние
коэффициенты подобия которых со всеми остальными трассами базы (
массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия
всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
144 которых ir[i] на входе =1). Отбраковывются те трассы, средние
145 коэффициенты подобия которых со всеми остальными трассами базы (
146 массив sm[i],i=0,ntr-1) не превышают значения предельно допустимого
147 коэффициента подобия levelSim. ssm - значение суммы коээфициентов подобия всех возможных пар необракованных трасс базы, которое должно быть больше
любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
148 всех возможных пар необракованных трасс базы, которое должно быть больше любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия,
используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
149 любого из значений sm[i],i=0,ntr-1 (это значение получено в функции
150 GetCCFMatrix). fms - верхняя треугольная матрица коэффициентов подобия, используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
каждой трассы.
На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
ntro - число неотбракованных трасс после их отбраковки.
Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс.
*/
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
151 используемая для пересчета значений sm[i],i=0,ntr-1 и ssm после отбраковки
152 каждой трассы.
153 На выходе формируется массив признаков отбраковки трасс ir[i],i=0,ntr-1.
154 В нем 1 соответсвует неотбракованной трассе, 0 - отбракованной трассе.
155 ntro - число неотбракованных трасс после их отбраковки.
156 Массив sm[i],i=0,ntr-1 пересчитывается с учетом отбракованных трасс. */
/******************* SelectCCFRowMaxRank **********************/
int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
int nf, int *ir, float *sm, float *f);
/* Назначение:
Ранжирование строк матрицы ФВК f - формирование массива индексов
строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
значение оценки подобия из массива sm для данной строки матрицы.
Формирование строки ФВК fmr, имеющей максимальный ранг - выбор
ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
160int SelectCCFRowMaxRank (float *fmr, int *irn, int ntr, int ntro,
161int nf, int *ir, float *sm, float *f);
162/* Назначение:
163 Ранжирование строк матрицы ФВК f - формирование массива индексов
164 строк irn матрицы ФВК f в порядке убывания их рангов. Ранг строки -
165 значение оценки подобия из массива sm для данной строки матрицы.
166 Формирование строки ФВК fmr, имеющей максимальный ранг - выбор ее из матрицы ФВК f.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных трасс в базе,
nf - количество отсчетов в ФВК,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
sm - массив размером ntr оценок подобия трасс,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
*/
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
167 ее из матрицы ФВК f.
168
169 Вх. данные:
170 ntr - количество трасс в базе,
171 ntro - количество неотбракованных трасс в базе,
172 nf - количество отсчетов в ФВК,
173 ir - массив размером ntr признаков отбраковки трасс:
175 sm - массив размером ntr оценок подобия трасс,
176 f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
177 sumNR - количество ФВК в треугольной матрице, равное
178 сумме чисел от 1 до ntr,
179
180 Вых. данные:
181 fmr - строка матрицы ФВК f размером ntr*nf, имеющая максимальный ранг,
182 irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов */
/************** ShiftsAndSimEstByStackCCFRows ****************/
int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
int nf, int nl, int nr, float levelSim,
int *ir, int *irn, float *fmr, float *sf,
float *f, float *fs, float *f0,
float *slr);
/* Назначение:
Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
синфазно накопленным в pанжиpованном поpядке pядам ФВК.
Вх. данные:
ntr - количество трасс в базе,
ntro - количество неотбракованных рядов в матрице ФВК,
nf - количество отсчетов в ФВК,
nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
levelSim - минимально допустимое значение коэффициента подобия
трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
187int ShiftsAndSimEstByStackCCFRows (float *del, float *sm, int ntr, int *ntro,
188int nf, int nl, int nr, float levelSim,
189int *ir, int *irn, float *fmr, float *sf,
190float *f, float *fs, float *f0,
191float *slr);
192/* Назначение:
193 Определение сдвигов del[i],i=0,ntr-1 и коэффициентов подобия sm[i],
194 i=0,ntr-1 трасс базы относительно трассы с максимальным рангом по
195 синфазно накопленным в pанжиpованном поpядке pядам ФВК.
196
197 Вх. данные:
198 ntr - количество трасс в базе,
199 ntro - количество неотбракованных рядов в матрице ФВК,
200 nf - количество отсчетов в ФВК,
201 nl,nr - левая (<0) и правая (>0) границы диапазона поиска сдвига,
202 levelSim - минимально допустимое значение коэффициента подобия трассы, при котором она еще полагается кондиционной,
ir - массив размером ntr признаков отбраковки трасс:
0 - трасса отбракована, 1 - трасса неотбракована
irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
203 трассы, при котором она еще полагается кондиционной,
204 ir - массив размером ntr признаков отбраковки трасс:
205 0 - трасса отбракована, 1 - трасса неотбракована irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов
размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
206 irn - массив индексов строк матрицы ФВК f в порядке убывания их рангов размером ntro,
fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
sumNR - количество ФВК в треугольной матрице, равное
сумме чисел от 1 до ntr,
Вых. данные:
del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
относительно трассы с максимальным рангом,
sm - массив (размером ntr) оценок подобия трасс базы относительно
трассы с максимальным рангом,
В случае дополнительной отбраковки по подобию трасс:
ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
207 размером ntro,
208 fmr - ряд матрицы ФВК f размером ntr*nf, имеющий максимальный ранг,
209 f - верхняя треугольнаф матрица ФВК размером nf * sumNR,
210 sumNR - количество ФВК в треугольной матрице, равное
211 сумме чисел от 1 до ntr,
212
213 Вых. данные:
214 del - массив (размером ntr) сдвигов (безразмерных ) трасс базы
215 относительно трассы с максимальным рангом,
216 sm - массив (размером ntr) оценок подобия трасс базы относительно
217 трассы с максимальным рангом,
218 В случае дополнительной отбраковки по подобию трасс: ntro - измененное количество неотбракованных трасс в базе,
ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
219 ntro - измененное количество неотбракованных трасс в базе,
220 ir - измененный массив размером ntr признаков отбраковки трасс
Вспомогательные массивы:
sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
размером ntr*nf,
slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
f0 - массив значений текущей ФВК размером nf,
fs - массив значений суммы по ряду ФВК от ФВК размером nf,
*/
/************** StackParByBases ****************/
int StackParByBases (int ntr, float dt, Trace4Stack * comp, int *ir,
float *del, float *sm, float *amp);
/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между
трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
221
222 Вспомогательные массивы:
223 sf - ряд ФВК, синфазно накопленных по столбцам матрицы f,
224 размером ntr*nf,
225 slr - ряд матрицы ФВК f размером ntr*nf с текущим рангом,
226 f0 - массив значений текущей ФВК размером nf,
227 fs - массив значений суммы по ряду ФВК от ФВК размером nf,
234/* Назначение: Формирование массива (comp->shifts) сдвигов в мс между трассами текущей базы, полученных по значениям сдвигов
(безразмерных ) трасс базы относительно трассы с максимальным
рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
235 трассами текущей базы, полученных по значениям сдвигов
236 (безразмерных ) трасс базы относительно трассы с максимальным рангом (del), сложенным с накопленными сдвигами по
предыдущим базам, включающим те же трассы. Для пересчета в мс
используется шаг дискретизации (dt).
Формирование массива (comp->qual) оценок подобия трасс базы
по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
237 рангом (del), сложенным с накопленными сдвигами по
238 предыдущим базам, включающим те же трассы. Для пересчета в мс
239 используется шаг дискретизации (dt).
240 Формирование массива (comp->qual) оценок подобия трасс базы по значениям массива (sm), сложенным с накопленными оценками по
предыдущим базам, включающим те же трассы.
Формирование массива (comp->energy) оценок среднеквадратических
амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
241 по значениям массива (sm), сложенным с накопленными оценками по
242 предыдущим базам, включающим те же трассы.
243 Формирование массива (comp->energy) оценок среднеквадратических амплитуд трасс базы по значениям массива (amp), сложенным с
накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
244 амплитуд трасс базы по значениям массива (amp), сложенным с накопленными оценками по предыдущим базам, включающим те же трассы.
Для всех массивов: накапливаются оценки только кондиционных трасс,
( признаки кондиционности - в массиве ir), размерность массивов ntr.
*/
int SetWinBorders(int *iWinBeg, int *iWinEnd, Trace4Stack *comp, float hodog,
float leftWin,int lengWin,int samplesCount, float dt);
/* Назначение:
Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
времени годографа для центральной трассы базы (hodog в мс), смещению окна
влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу
дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
245 накопленными оценками по предыдущим базам, включающим те же трассы.
246 Для всех массивов: накапливаются оценки только кондиционных трасс,
253 Определение индексов начала iWinBeg и конца iWinEnd окна корреляции по
254 времени годографа для центральной трассы базы (hodog в мс), смещению окна
255 влево от годографа (leftWin в мс), длине окна (lengWin в отсчетах),
256 начальному времени центральной трассы comp[0].hdr[imid].TBC и шагу дискретизации dt. samplesCount - количество отсчетов в трассе.
*/
/* iRound: Округляет float -> int до ближ. целого */
int iRound(float value);
/* Вычисление суммы ntr чисел натурального ряда */
int SumNatNumbers(int ntr);
#ifdef __cplusplus
};
#endif /* C++ */
/***********************************************************************/
#endif /* __polyCor_h */
257 дискретизации dt. samplesCount - количество отсчетов в трассе.
258*/
259
260/* iRound: Округляет float -> int до ближ. целого */
261int iRound(float value);
262
263/* Вычисление суммы ntr чисел натурального ряда */