44int TrWStack(int ib, int ie, float *trs,float *t,float *tr,float *w,
45int ntr, int ltr);
46int wf1C(int jk, int ibw, int ilw, int ip1, int ib, float *pb, float *pa,
47float *tr, float *ts, float akg, float urd);
48
49/* Назначение:
50 Расчет накопленной по числу трасс (jk) весовой функции (pa) оценок подобия трассы (pb) и трасс из набора (tr) в скользящем окне размером (ib) с учетом
сдвигов (ts). Расчет производится в интервале трасс с начальным индексом
(ibw) размером (ilw) отсчетов. Функция осуществляет дополнительное
нелинейное редактирование весовой функции (используются параметры akg, urd),
предназначенное для усиления эффекта выделения регулярных волн и ослабления
нерегулярных волн.
*/
void CurWinPar(float *pb, float *tr, int j, int is, int ib,
int iebw, double *r2, double *r3, double *r4);
/* Назначение:
Оценка сумм квадратов (*r3 и *r4) трасс (pb и tr) и суммы
произведений их значений (*r2) в окне (j - начало окна, ib - размер окна )
с учетом сдвига (is). iebw - индекс конца обрабатываемого интервала трассы.
*/
void redwfC(float *pa, int l, float rk, float u);
/* Назначение:
Нелинейное редактирование весовой функции (*pa) длиной (l)
с учетом относительного уровня дискриминации (u) и коэффи-
циента жесткости редактирования (rk).
Входные данные:
pa[i],i=0,l-1 - весовая функция,
l - длина весовой ф-ции,
u - относит. уровень значимости вес. ф-ции (относит ее макс.
0 < u < 1),
rk - коэффициент жесткости редактирования весовой функции
0 <= rk <= 1. rk < 0.01 - редактирование не выполняется,
0.01 <=rk <0.51 - смягчение эффекта нелинейного
редактирования, чем меньше rk, тем больше смягчение и
больше его степень, rk = 0.51 - чистое нелинейное
редактирование, 0.51<rk<=0.95 - усиление эффекта
нелинейного редактирования, чем больше rk, тем
больше усиление и больше его степень. 0.95 <rk<=1 -
жесткое редактирование. Все значения весовой функции,
превышающие уровень дискриминации, заменяются на значение
ее максимума, а значения весовой функции, меньшие уровня
дискриминации, заменяются на нулевые значения.
Выходные данные:
pa[i],i=0,l-1 - отредактир. весовая функция.
*/
void EditWeight(float *pa, float d, double rk);
/* Назначение:
Нелинейное редактирование значения веса (*pa) с учетом уровня
дискриминации (d) и коэффициента жесткости редактирования (rk).
*/
void GetLenForFFT(int cntTr, SizeFFT *lenFFT);
int GetFilLowFreqOper(double *spFilOp, int cntSp);
int ConvTrSpOpTr(float *trs, double *spFilOp, int cntTr, SizeFFT lenFFT);
void GetAmplSpec(double *aspTr,double *spTr,int cntSp);
void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
float* SUM, int* IERR);
/* Назначение:
Оценка средневзвешенного значения выборки данных с учетом величин
отклонений значений выборки
Входные данные:
N - число отсчетов в выборке SET ( N-пpоизвольное),
D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
жено условие: число неотбpакованных значений N-M => 2;
pекомендуемое значение D=0.1-0.25;
использование D > 0.4-0.5 нецелесообpазно;
пpи N < 3 отбpаковка не пpоизводится (D=0).
SET - выборка N значений осредняемого параметра (одномерный массив
формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
51 трассы (pb) и трасс из набора (tr) в скользящем окне размером (ib) с учетом
52 сдвигов (ts). Расчет производится в интервале трасс с начальным индексом
53 (ibw) размером (ilw) отсчетов. Функция осуществляет дополнительное нелинейное редактирование весовой функции (используются параметры akg, urd),
предназначенное для усиления эффекта выделения регулярных волн и ослабления
нерегулярных волн.
*/
void CurWinPar(float *pb, float *tr, int j, int is, int ib,
int iebw, double *r2, double *r3, double *r4);
/* Назначение:
Оценка сумм квадратов (*r3 и *r4) трасс (pb и tr) и суммы
произведений их значений (*r2) в окне (j - начало окна, ib - размер окна )
с учетом сдвига (is). iebw - индекс конца обрабатываемого интервала трассы.
*/
void redwfC(float *pa, int l, float rk, float u);
/* Назначение:
Нелинейное редактирование весовой функции (*pa) длиной (l)
с учетом относительного уровня дискриминации (u) и коэффи-
циента жесткости редактирования (rk).
Входные данные:
pa[i],i=0,l-1 - весовая функция,
l - длина весовой ф-ции,
u - относит. уровень значимости вес. ф-ции (относит ее макс.
0 < u < 1),
rk - коэффициент жесткости редактирования весовой функции
0 <= rk <= 1. rk < 0.01 - редактирование не выполняется,
0.01 <=rk <0.51 - смягчение эффекта нелинейного
редактирования, чем меньше rk, тем больше смягчение и
больше его степень, rk = 0.51 - чистое нелинейное
редактирование, 0.51<rk<=0.95 - усиление эффекта
нелинейного редактирования, чем больше rk, тем
больше усиление и больше его степень. 0.95 <rk<=1 -
жесткое редактирование. Все значения весовой функции,
превышающие уровень дискриминации, заменяются на значение
ее максимума, а значения весовой функции, меньшие уровня
дискриминации, заменяются на нулевые значения.
Выходные данные:
pa[i],i=0,l-1 - отредактир. весовая функция.
*/
void EditWeight(float *pa, float d, double rk);
/* Назначение:
Нелинейное редактирование значения веса (*pa) с учетом уровня
дискриминации (d) и коэффициента жесткости редактирования (rk).
*/
void GetLenForFFT(int cntTr, SizeFFT *lenFFT);
int GetFilLowFreqOper(double *spFilOp, int cntSp);
int ConvTrSpOpTr(float *trs, double *spFilOp, int cntTr, SizeFFT lenFFT);
void GetAmplSpec(double *aspTr,double *spTr,int cntSp);
void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
float* SUM, int* IERR);
/* Назначение:
Оценка средневзвешенного значения выборки данных с учетом величин
отклонений значений выборки
Входные данные:
N - число отсчетов в выборке SET ( N-пpоизвольное),
D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
жено условие: число неотбpакованных значений N-M => 2;
pекомендуемое значение D=0.1-0.25;
использование D > 0.4-0.5 нецелесообpазно;
пpи N < 3 отбpаковка не пpоизводится (D=0).
SET - выборка N значений осредняемого параметра (одномерный массив
формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
54 нелинейное редактирование весовой функции (используются параметры akg, urd),
55 предназначенное для усиления эффекта выделения регулярных волн и ослабления
56 нерегулярных волн.
57
58*/
59
60void CurWinPar(float *pb, float *tr, int j, int is, int ib,
61int iebw, double *r2, double *r3, double *r4);
62/* Назначение:
63 Оценка сумм квадратов (*r3 и *r4) трасс (pb и tr) и суммы
64 произведений их значений (*r2) в окне (j - начало окна, ib - размер окна )
65 с учетом сдвига (is). iebw - индекс конца обрабатываемого интервала трассы.
66*/
67
68void redwfC(float *pa, int l, float rk, float u);
69/* Назначение:
70 Нелинейное редактирование весовой функции (*pa) длиной (l)
71 с учетом относительного уровня дискриминации (u) и коэффи-
72 циента жесткости редактирования (rk).
73 Входные данные:
74 pa[i],i=0,l-1 - весовая функция,
75 l - длина весовой ф-ции,
76 u - относит. уровень значимости вес. ф-ции (относит ее макс.
77 0 < u < 1),
78 rk - коэффициент жесткости редактирования весовой функции
80 0.01 <=rk <0.51 - смягчение эффекта нелинейного редактирования, чем меньше rk, тем больше смягчение и
больше его степень, rk = 0.51 - чистое нелинейное
редактирование, 0.51<rk<=0.95 - усиление эффекта
нелинейного редактирования, чем больше rk, тем
больше усиление и больше его степень. 0.95 <rk<=1 -
жесткое редактирование. Все значения весовой функции,
превышающие уровень дискриминации, заменяются на значение
ее максимума, а значения весовой функции, меньшие уровня
дискриминации, заменяются на нулевые значения.
Выходные данные:
pa[i],i=0,l-1 - отредактир. весовая функция.
*/
void EditWeight(float *pa, float d, double rk);
/* Назначение:
Нелинейное редактирование значения веса (*pa) с учетом уровня
дискриминации (d) и коэффициента жесткости редактирования (rk).
*/
void GetLenForFFT(int cntTr, SizeFFT *lenFFT);
int GetFilLowFreqOper(double *spFilOp, int cntSp);
int ConvTrSpOpTr(float *trs, double *spFilOp, int cntTr, SizeFFT lenFFT);
void GetAmplSpec(double *aspTr,double *spTr,int cntSp);
void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
float* SUM, int* IERR);
/* Назначение:
Оценка средневзвешенного значения выборки данных с учетом величин
отклонений значений выборки
Входные данные:
N - число отсчетов в выборке SET ( N-пpоизвольное),
D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
жено условие: число неотбpакованных значений N-M => 2;
pекомендуемое значение D=0.1-0.25;
использование D > 0.4-0.5 нецелесообpазно;
пpи N < 3 отбpаковка не пpоизводится (D=0).
SET - выборка N значений осредняемого параметра (одномерный массив
формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
81 редактирования, чем меньше rk, тем больше смягчение и больше его степень, rk = 0.51 - чистое нелинейное
редактирование, 0.51<rk<=0.95 - усиление эффекта
нелинейного редактирования, чем больше rk, тем
больше усиление и больше его степень. 0.95 <rk<=1 -
жесткое редактирование. Все значения весовой функции,
превышающие уровень дискриминации, заменяются на значение
ее максимума, а значения весовой функции, меньшие уровня
дискриминации, заменяются на нулевые значения.
Выходные данные:
pa[i],i=0,l-1 - отредактир. весовая функция.
*/
void EditWeight(float *pa, float d, double rk);
/* Назначение:
Нелинейное редактирование значения веса (*pa) с учетом уровня
дискриминации (d) и коэффициента жесткости редактирования (rk).
*/
void GetLenForFFT(int cntTr, SizeFFT *lenFFT);
int GetFilLowFreqOper(double *spFilOp, int cntSp);
int ConvTrSpOpTr(float *trs, double *spFilOp, int cntTr, SizeFFT lenFFT);
void GetAmplSpec(double *aspTr,double *spTr,int cntSp);
void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
float* SUM, int* IERR);
/* Назначение:
Оценка средневзвешенного значения выборки данных с учетом величин
отклонений значений выборки
Входные данные:
N - число отсчетов в выборке SET ( N-пpоизвольное),
D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
жено условие: число неотбpакованных значений N-M => 2;
pекомендуемое значение D=0.1-0.25;
использование D > 0.4-0.5 нецелесообpазно;
пpи N < 3 отбpаковка не пpоизводится (D=0).
SET - выборка N значений осредняемого параметра (одномерный массив
формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
82 больше его степень, rk = 0.51 - чистое нелинейное
83 редактирование, 0.51<rk<=0.95 - усиление эффекта нелинейного редактирования, чем больше rk, тем
больше усиление и больше его степень. 0.95 <rk<=1 -
жесткое редактирование. Все значения весовой функции,
превышающие уровень дискриминации, заменяются на значение
ее максимума, а значения весовой функции, меньшие уровня
дискриминации, заменяются на нулевые значения.
Выходные данные:
pa[i],i=0,l-1 - отредактир. весовая функция.
*/
void EditWeight(float *pa, float d, double rk);
/* Назначение:
Нелинейное редактирование значения веса (*pa) с учетом уровня
дискриминации (d) и коэффициента жесткости редактирования (rk).
*/
void GetLenForFFT(int cntTr, SizeFFT *lenFFT);
int GetFilLowFreqOper(double *spFilOp, int cntSp);
int ConvTrSpOpTr(float *trs, double *spFilOp, int cntTr, SizeFFT lenFFT);
void GetAmplSpec(double *aspTr,double *spTr,int cntSp);
void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
float* SUM, int* IERR);
/* Назначение:
Оценка средневзвешенного значения выборки данных с учетом величин
отклонений значений выборки
Входные данные:
N - число отсчетов в выборке SET ( N-пpоизвольное),
D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
жено условие: число неотбpакованных значений N-M => 2;
pекомендуемое значение D=0.1-0.25;
использование D > 0.4-0.5 нецелесообpазно;
пpи N < 3 отбpаковка не пpоизводится (D=0).
SET - выборка N значений осредняемого параметра (одномерный массив
формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
84 нелинейного редактирования, чем больше rk, тем
85 больше усиление и больше его степень. 0.95 <rk<=1 -
86 жесткое редактирование. Все значения весовой функции,
87 превышающие уровень дискриминации, заменяются на значение
88 ее максимума, а значения весовой функции, меньшие уровня дискриминации, заменяются на нулевые значения.
Выходные данные:
pa[i],i=0,l-1 - отредактир. весовая функция.
*/
void EditWeight(float *pa, float d, double rk);
/* Назначение:
Нелинейное редактирование значения веса (*pa) с учетом уровня
дискриминации (d) и коэффициента жесткости редактирования (rk).
*/
void GetLenForFFT(int cntTr, SizeFFT *lenFFT);
int GetFilLowFreqOper(double *spFilOp, int cntSp);
int ConvTrSpOpTr(float *trs, double *spFilOp, int cntTr, SizeFFT lenFFT);
void GetAmplSpec(double *aspTr,double *spTr,int cntSp);
void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
float* SUM, int* IERR);
/* Назначение:
Оценка средневзвешенного значения выборки данных с учетом величин
отклонений значений выборки
Входные данные:
N - число отсчетов в выборке SET ( N-пpоизвольное),
D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
жено условие: число неотбpакованных значений N-M => 2;
pекомендуемое значение D=0.1-0.25;
использование D > 0.4-0.5 нецелесообpазно;
пpи N < 3 отбpаковка не пpоизводится (D=0).
SET - выборка N значений осредняемого параметра (одномерный массив
формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
89 дискриминации, заменяются на нулевые значения.
90 Выходные данные:
91 pa[i],i=0,l-1 - отредактир. весовая функция.
92
93*/
94void EditWeight(float *pa, float d, double rk);
95/* Назначение:
96 Нелинейное редактирование значения веса (*pa) с учетом уровня дискриминации (d) и коэффициента жесткости редактирования (rk).
*/
void GetLenForFFT(int cntTr, SizeFFT *lenFFT);
int GetFilLowFreqOper(double *spFilOp, int cntSp);
int ConvTrSpOpTr(float *trs, double *spFilOp, int cntTr, SizeFFT lenFFT);
void GetAmplSpec(double *aspTr,double *spTr,int cntSp);
void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
float* SUM, int* IERR);
/* Назначение:
Оценка средневзвешенного значения выборки данных с учетом величин
отклонений значений выборки
Входные данные:
N - число отсчетов в выборке SET ( N-пpоизвольное),
D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
жено условие: число неотбpакованных значений N-M => 2;
pекомендуемое значение D=0.1-0.25;
использование D > 0.4-0.5 нецелесообpазно;
пpи N < 3 отбpаковка не пpоизводится (D=0).
SET - выборка N значений осредняемого параметра (одномерный массив
формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
97 дискриминации (d) и коэффициента жесткости редактирования (rk).
105void Fortran(medsum)(int* N, float* D, float SET[], float SER[],
106float* SUM, int* IERR);
107/* Назначение:
108 Оценка средневзвешенного значения выборки данных с учетом величин
109 отклонений значений выборки
110
111 Входные данные:
112 N - число отсчетов в выборке SET ( N-пpоизвольное),
113 D - доля отбраковываемых значений D=(0-0.99); число отбpаковываемых,
114 значений pавно целой части выpaжения M=D*N+0.5; кpоме того нало-
115 жено условие: число неотбpакованных значений N-M => 2;
116 pекомендуемое значение D=0.1-0.25;
117 использование D > 0.4-0.5 нецелесообpазно;
118 пpи N < 3 отбpаковка не пpоизводится (D=0).
119 SET - выборка N значений осредняемого параметра (одномерный массив формата R4); массив SET изменяется на выходе, если пpоизводила
сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
120 формата R4); массив SET изменяется на выходе, если пpоизводила сь отбpaковка (M > 0).
SER - служебный массив длиной N типа float.
Выходные данные:
SUM - медианная оценка среднего массива SET.
IERR - код завеpшения:
0 - ноpмальное завеpшение;
-1 - заданное число выбоpок N <= 0;
1 - число выбоpок pавно 1 или 2 , выдается матожидание.
*/
#ifdef __cplusplus
};
#endif /* C++ */
#endif /* __polyStack_h */
121 сь отбpaковка (M > 0).
122 SER - служебный массив длиной N типа float.
123
124 Выходные данные:
125 SUM - медианная оценка среднего массива SET.
126 IERR - код завеpшения:
127 0 - ноpмальное завеpшение;
128 -1 - заданное число выбоpок N <= 0;
129 1 - число выбоpок pавно 1 или 2 , выдается матожидание.