UNIVERS
15.3
UNIVERS base processing software API
Main Page
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
include
mth
filter.h
1
/* filter.h */
2
/* $Id: filter.h,v 1.5 2004/02/13 09:15:52 kostya Exp $ */
3
#ifndef __filter_h
4
#define __filter_h
5
6
#include <mix/Types.h>
7
8
9
#ifdef __cplusplus
10
extern
"C"
{
11
#endif
/* C++ */
12
/************************************************************************
13
* РАСЧЕТ НУЛЬ-ФАЗОВОГО ФИЛЬТРА *
14
* *
15
* ВХОДНЫЕ ДАННЫЕ: *
16
* n integer*4 - число отсчетов в трассе *
17
* dt real*4 - шаг дискретизации (мс) *
18
* Freq(m) real*4 - узловые частоты фильтра(Гц) *
19
* Ampl(m) real*4 - амплитуда фильтра в узловой частоте (0-1) *
20
* m integer*4 - количество узловых частот фильтра *
21
* *
22
* ВЫХОДНЫЕ ДАННЫЕ: *
23
* W(k) complex*8 - частотная характеристика фильтра *
24
* ierr integer*4 - индикатор ошибки: *
25
* 0 - ошибок нет. *
26
* *
27
* РАБОЧИЕ МАССИВЫ: *
28
* IFreq(m) integer*4 *
29
* *
30
* ПРИМЕЧАНИЕ: *
31
* k=0.5*s+1 *
32
* s=2**(int(log(n)/log(2.0)+0.99999) *
33
* массив Freq должен быть отсортирован по возрастанию *
34
************************************************************************/
35
// subroutine ZeroPhase(n,dt,Freq,Ampl,m,W,IFreq,ierr)
36
37
void
Fortran(zerophase)(
int
*,
float
*,
float
*,
float
*,
38
int
*,
float
*,
int
*,
int
*);
39
40
/************************************************************************
41
* РАСЧЕТ МИНИМАЛЬНО-ФАЗОВОГО ФИЛЬТРА *
42
* *
43
* ВХОДНЫЕ ДАННЫЕ: *
44
* n integer*4 - число отсчетов в трассе *
45
* W(k) complex*8 - частотная характеристика фильтра *
46
* *
47
* ВЫХОДНЫЕ ДАННЫЕ: *
48
* W(k) complex*8 - частотная характеристика *
49
* минимально-фазового фильтра *
50
* ierr integer*4 - индикатор ошибки: *
51
* 0 - ошибок нет. *
52
* 1 - ошибка в решении системы методом *
53
* Левинсона *
54
* *
55
* РАБОЧИЕ МАССИВЫ: *
56
* A(2*k) complex*16 *
57
* X(2*s) real*8 *
58
* PA(s) real*8 *
59
* PB(s) real*4 *
60
* PC(s) real*4 *
61
* PD(s) real*8 *
62
* *
63
* ПРИМЕЧАНИЕ: *
64
* k=0.5*s+1 *
65
* s=2**(int(log(n)/log(2.0)+0.99999) *
66
************************************************************************/
67
// subroutine MinPhase(n,W,A,X,PA,PB,PC,PD,ierr)
68
69
void
Fortran(minphase)(
int
*,
float
*,
double
*,
double
*,
70
double
*,
float
*,
float
*,
double
*,
int
*);
71
72
/************************************************************************
73
* ПОЛОСОВАЯ ФИЛЬТРАЦИЯ *
74
* В ЧАСТОТНОЙ ОБЛАСТИ *
75
* *
76
* ВХОДНЫЕ ДАННЫЕ: *
77
* T(n) real*4 - исходная трасса (изменяется на выходе) *
78
* n integer*4 - число отсчетов в трассе *
79
* W(k) complex*8 - частотная характеристика фильтра *
80
* k=0.5*s+1 *
81
* s=2**(int(log(n)/log(2.0)+0.99999) *
82
* *
83
* ВЫХОДНЫЕ ДАННЫЕ: *
84
* T(n) real*4 - отфильтрованная трасса *
85
* ierr integer*4 - индикатор ошибки: *
86
* 0 - ошибок нет. *
87
* *
88
* РАБОЧИЕ МАССИВЫ: *
89
* A(k) complex*16 - k=0.5*s+1 *
90
* X(s) real*8 - s=2**(int(log(n)/log(2.0)+0.99999) *
91
************************************************************************/
92
// subroutine BandPass(T,n,W,A,X,ierr)
93
94
void
Fortran(bandpass)(
float
*,
int
*,
float
*,
double
*,
double
*,
int
*);
95
96
/************************************************************************
97
* ПОЛОСОВАЯ ФИЛЬТРАЦИЯ В ЧАСТОТНОЙ ОБЛАСТИ *
98
* С РАСШИРЕНИЕМ НУЛЯМИ ВО ВРЕМЕННОЙ ОБЛАСТИ *
99
* *
100
* ВХОДНЫЕ ДАННЫЕ: *
101
* T(n) real*4 - исходная трасса (изменяется на выходе) *
102
* n integer*4 - число отсчетов в трассе *
103
* ind integer*4 - индикатор нормировки фильтра: *
104
* ind=0 - без нормировки, *
105
* ind=1 - с нормировкой. *
106
* flag integer*4 - индикатор расширения нулями: *
107
* flag=0 - без расширения, *
108
* flag=1 - с расширением. *
109
* W(k) complex*8 - частотная характеристика фильтра *
110
* k=0.5*s+1 *
111
* s=2**(int(log(n)/log(2.0)+0.99999) *
112
* *
113
* ВЫХОДНЫЕ ДАННЫЕ: *
114
* T(n) real*4 - отфильтрованная трасса *
115
* ierr integer*4 - индикатор ошибки: *
116
* 0 - ошибок нет. *
117
* *
118
* РАБОЧИЕ МАССИВЫ: *
119
* A(k) complex*16 - k=2*(0.5*s+1) *
120
* B(k) complex*16 - k=2*(0.5*s+1) *
121
* X(s) real*8 - s=2*(2**(int(log(n)/log(2.0)+0.99999)) *
122
************************************************************************/
123
//subroutine ConvolF(T,n,ind,flag,W,A,B,X,ierr)
124
125
void
Fortran(convolf)(
float
*,
int
*,
int
*,
int
*,
float
*,
126
double
*,
double
*,
double
*,
int
*);
127
128
#ifdef __cplusplus
129
};
130
#endif
/* C++ */
131
132
#endif
/* filter.h */
Generated by
1.8.5