,,,
. . , . . . : , .
. , - .
. . , : .
. , .
. , . , , . :
- ,
- ,
- .
, .
, 1. : , , , . : , , .
. 1. .
. . , .
, , , .
++, - .
- . , , . , ++ . , , , . , . , [9]. , , , . , , . , OrthographicCamera ( ) PerspectiveCamera ( ) Camera. , .
, , , .
Microsoft Visual C++. Visual C++ Windows. Visual C++ - Widnows, . , Visual C++ . Visual C++ , , . Windows , ++, . . ++ , . , Microsoft Microsoft Foundation Classes. MFC , . , , cWnd MFC, [2]. , MFC , , , , .
1.
, , , . , , . , . , . , , [1]. . 70- . , , , , [3]. . :
1. .
2. .
3. .
4. .
- () , , , , .
.
, . 70- [1]. , . 12 . . . , 250 500 . , , , , , 80 . {Yi}, Yi ( ) i - . , . (R), (L), (F) (C1-C6). :
:
I = L R
II = F R
III = F L
:
aVR = R (L + F)/2
aVL = L (R + F)/2
aVF = L (R + L)/2
V1 V6:
Vi =Ci (R + L + F)/3
(N), , . , 12 8 [3]. 4 , . :
III = II I
aVR = -(II+I)/2
aVL = (2I II)/2
aVF = (2II-I)/2
, [4]. Fs . Fs (. . Fb). , , , , [5].
500 , [6,7]. , , , , , 80 . , 500 . 5 . , , .
, , 0.05 120 ( 3dB). , 100 250 , . , , [8].
, , , , . , . [10,11], . , .
.
. , , , . , , . - .
. , . . , , . , 3 (), (), , , [12]. (), 60-70 , 50 60 . , , () 3.2 , .
1.1 1.2 . Z -1 , , , , , .
1.1.
1.2. .
, , . , , , . , , . , , . . , [5]. Matlab . .
, , , ( 1.3).
1.3. -
d(t) s(t) n(t). u(t) - , . , , . y(t) - , . , e(t) = s1= d(t) - y(t) - , . , E[(n(t)-y(t))2]. [15]:
- ;
- , ;
- .
, .
, . , . , , , , 0.05 , -3 . , ST . . , , - . , . , , . , .
, , , . . . , , . . , QRS , T . . ( .1.4). () . , QRS - . :
1 ; 2 PR ; 3 ST ;
2 ; 5 QRS ; 6 QT ;
7 PR ; 8 RR ; 9
. 1.4.
, - , ( ) . , , , . , : . . , . , , . , . , , , . , .. , , [16], , . , . , . , , , . , , , . , , - .
, , , ). , (), . , .
, , , .
. , . , - . , , . , , . . , . , , . , .
. - . , , , . , , .
, . , . . , , . , , . . , - (-) .
. , Internet. [18].
, . 2 : . , . , . : , . , , ( QRS ), . , . . , . (), , -, -. [19]. , , , - .
, , , , . , , , :
, , . , , , .
-2.
2. -
, , , , .
, . . , . ? . , , , . 2.1.
. 4.1. .
, , , . . 2.2 , .
. 2.2. - .
- () . : , , , , , . , , .
- , , .
FORTRAN II , . , - , .
. 2.3. .
. . . .
. 2.4. - .
, . - , - , . , , .
- () - , , , .
:
- , .
- - .
- .
- .
-
. , , .
- :
- () , , .
:
-OO -
- , .
-
- () , , - ; , , .
, ; .
, . - . :
-
-
-
-
, -. :
-
-
-
, .
.
, . , , . , , , .
: , , .
. , , , , .
, , , , :
- - .
- ,
- , ,
, .
, . , - , . . , : , .
- . - ( ). , .
: , . , : . , . . : , ; , .
, .
++ , . , , .
. , . , . ,
, .
. , . . - : , . : . .
, .
.
. :
.
( ) ( ).
- . , ( ). , , .
, . : , ; , . : , , -, .
- , ++. : , ; . .
.
, , . :
, ( ). , .
.
, : , . , .
, : ( ) ( ). . , OOD, , .
, .
.
, . OODB , . , . .
( , ) () ( , ).
, . , , . , , .
3.
,
, Windows MFC, . MFC, , , Windows , API (Application Programming Interface). , MFC Windows . , MFC , , API . API ( 2000), , 700 , . Windows , MFC .
Windows , , (, , , . .). (DLL), . , , .
Windows , (event-driven applications), . , , . , . , , Windows . , , , , . , . . . , , . , (multithreaded application) (thread) .
. Windows , WM_ (Windows Message). , WM_PAINT , , . WM_PAINT , .
. , . , Windows , (device independent support). , , . Windows . (layout), . , . , : , . , , , .
Windows (virtual - key code), . - , : , , . Windows (thread). . Windows . 3.1.
. 3.1 Windows.
, Windows . Windows . :
- WinMain ( ), ;
- , , .
. Windows , . , MFC WinMain , , Visual Studio.
.
. 3.2 . .
:
- (. 2), (. 3).
- .
- .
- ( ).
- .
- .
- ( ).
. 3.2 .
.
, *.@8. , , , . .
void CNewvisualDlg::OnLoadFile()
{
//
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT," (*.@8)|*.@8||");
//
int response = dlg.DoModal();
if(response = IDOK)
{
CString fname=dlg.GetFileName();
if(fname=="") goto end;
HANDLE InputFile = CreateFile(fname,GENERIC_READ,FILE_SHARE_READ,
0,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);
// 12
ReadK12(InputFile);
//
m_dlgPaint.Create(IDD_VIEW_GRAPH,this);
m_dlgPaint.SetWindowPos(&wndTop,200,0,m_dlgPaint.right*0.8,
m_dlgPaint.left-100,SWP_SHOWWINDOW);m_dlgPaint.ShowWindow(SW_SHOW);//
m_dlgPaint.Counter = 0;
SetTimer(ID_SHOW_TIMER,2,NULL);
memcpy(m_dlgPaint.StartOtv,StartOtv[0],16000);
Flag = true;
UpdateData();
m_dlgPaint.Invalidate();
}
end:
;;
}
. *.@8 53 ( , , ..). , , , , .
.
, ( 2).
SetTimer(ID_SHOW_TIMER,2,NULL), 2 . 500 . , . .
.3.3 ( )
; , , , . Graph.dll, . () , . , MFC, WIN32 DLL. DLL , C++. , DLL( ), , , DLL. DLL . DLL- , .
DLL DLL MFC , . DLL MFC , . DLL , DLL, Mfc42d.dll, Mfc042.dll .
.
class AFX_EXT_CLASS CGraph
{
double dXLeft;//
double dYTop;
double dFracX;//
double dFracY;
double dMinX, dMaxX;// Min-Max
double dMinY, dMaxY;// Min-Max
double dSpanX;//
double dSpanY;//
double dStepX, dStartX;//
double dStepY, dStartY;
UINT nPoints;//
//
UINT nStepsX, nStepX, MinX, MaxX;
UINT nStepsY, nStepY, MinY, MaxY;
UINT *X, *Y;//
int iPowerX, iPowerY;//
CRect rect;//
// : ,
CFont TextFont, TitleFont, PowerFont;
public:
void GetRect(int&,int&,int&,int&); //
Cgraph (CRect, UINT, double ,double ,double ,double);//
//
void ScaleX(TValues&);
void ScaleY(TValues&);
//
void Scale (double, int&, double&);
//
void DrawGrid (CDC*, CString&, CString&, CString&, TValues&, TValues&);
//
void DrawFunc (CDC*,BYTE *);
virtual ~CGraph ();
};
, , . DrawGrid DrawFunc. , , Scale, Y ScaleX ScaleY. DrawGrid , DrawFunc .
Filters.
Filters .
class Filters
{
public:
char Name[10];//
double * Coeficients;//
short * QuantizCoeficients;//
BYTE NumCoef;//
//
Filters(char * FilterName,BYTE NumCoeficientsdouble,double * Coef = NULL,double * Quant = NULL);
//
void GetType_1(short * InBuffer,short * OutBuffer);
//
void GetType_2(short * Inbuffer,short * Outbuffer);
//
//
void GetQType(short * Inbuffer,short * Outbuffer,BOOL Type,BYTE PreCoef = 0);
~Filters();//
};
, , .
, , . , , . . (, ) 2 : () (). - .
:
, :
, , , , , . - , , .. .
:
:
, : , , .
, , , , , . , . , . . , , ( Matlab v.6.0).
:
//
void Filters::GetType_1(short * InBuffer,short * OutBuffer)
{
WORD i = 0;
double Temp = 0;
while(i<8000)
{
if(i<NumCoef) OutBuffer[i] = InBuffer[i];
else
{
for(BYTE j = 0;j<NumCoef;j++)
Temp += InBuffer[i-j]*Coeficients[j];
OutBuffer[i] = (short)Temp;
}
Temp = 0.0;
i++;
}
}
//
void Filters::GetType_2(short * Inbuffer,short * Outbuffer)
{
WORD i = 0;
double Temp = 0;
while(i<8000)
{
if(i<(NumCoef/2 - 1)) Outbuffer[i] = Inbuffer[i];
else
{
for(BYTE j = 0;j<(NumCoef/2);j++)
Temp += (Inbuffer[i-j]*Coeficients[j]
- Outbuffer[i-j]*Coeficients[j+NumCoef/2]);
Outbuffer[i] = (short)Temp;
}
Temp = 0;
i++;
}
}
, bm.
, Siemence , . GetQType. , Matlab , . .
//
void Filters::GetQType(short * Inbuffer,short * Outbuffer,BOOL Type,BYTE PreCoef)
{
WORD i = 0;
int Temp = 0;
while(i<8000)
{
if(i<(NumCoef/2 - 1)) Outbuffer[i] = Inbuffer[i];
else
{
for(BYTE j = 0;j<(NumCoef/2);j++)
if(Type == FALSE)
Temp += (int)(Inbuffer[i-j]*(short)QuantizCoeficients[j]);
else
Temp += (Inbuffer[i-j]*QuantizCoeficients[j]
-Outbuffer[i-j]*QuantizCoeficients[j+NumCoef/2]);
if(Temp>0)
Outbuffer[i] = (short)( Temp >> (15+PreCoef) );
else
Outbuffer[i] = -(short)( (-Temp) >> (15+PreCoef) );
}
Temp = 0;
i++;
}
}
, , ( ), .
.
( ), 2. , , SetTimer. 2 WM_TIMER. NULL , , , . OnTimer.
void CNewvisualDlg::OnTimer(UINT nIDEvent)
{
if(Flag == true)
{
if(m_dlgPaint.NPoints == 500)
m_dlgPaint.NPoints = (m_dlgPaint.x2 - m_dlgPaint.x1);
else
{
m_dlgPaint.NPoints+=(m_dlgPaint.x2 - m_dlgPaint.x1);
m_dlgPaint.PointCounter+=(m_dlgPaint.x2 - m_dlgPaint.x1);
}
m_dlgPaint.rect.left = m_dlgPaint.x1-5;
m_dlgPaint.rect.right = m_dlgPaint.x1;
m_dlgPaint.rect.top = m_dlgPaint.y1;
m_dlgPaint.rect.bottom = m_dlgPaint.y2+10;
CRect rect2;rect2.CopyRect(&m_dlgPaint.rect);
rect2.SetRect(0,0,(m_dlgPaint.rect.right-1),
m_dlgPaint.rect.bottom);
m_dlgPaint.InvalidateRect(&rect2);
}
if(m_dlgPaint.rect.right >= m_dlgPaint.x2) Flag = true;
if(m_dlgPaint.Counter < m_dlgPaint.NPoints)
{
m_dlgPaint.Counter+=5;
m_dlgPaint.rect.left+=5;
m_dlgPaint.rect.right+=5;
Flag=false;
}
else Flag = true;
if(m_dlgPaint.NPoints>=8000)
{
Flag = true;
m_dlgPaint.NPoints= 500;
m_dlgPaint.Counter = 0;
m_dlgPaint.PointCounter = 0;
}
m_dlgPaint.InvalidateRect(&m_dlgPaint.rect);
CDialog::OnTimer(nIDEvent);
}
QRS .
QRS , . . QRS, , ( 8000 )
//
//
if(m_dlgPaint.StartOtv[0] == 0) return;
INT disp,amp;
memset(m_dlgPaint.DifFlag,0,8000);
for(i=0;i<8000;i++)
if(CalcPoint(m_dlgPaint.StartOtvFilt[i],&disp,&))
{
m_dlgPaint.DifFlag[i-disp] = 1;
}
4.
. , / . . , , , . , . . ( ) , , . , , . , , . , , , . K , :
= - K
, , , , .
, . . , , . , K , .
K , , , . K, , :
( , ) - K;
, - S;
, , , .. - K;
K.
:
= - K - S - K - K
K
- , .
K () :
, , - K1;
- - K2;
, - K3;
, - K4;
- - K5.
K1 K2 . K3 K4 , . . .
K1 . . K1 . K1 () - ij, i- j- . , :
, K1 :
, , ;
, ;
, , ;
, . , . . ij j- i- . .
, .
.
, . . , .
: ( . [1] )
, .
, , . , . , . 13 :
: 50% , :
14 = (1.14 * (1 - )1/2)-1
- ( ).
. , 1 10 15 1.5-2 . :
15 1 1.5.
: , , :
.
. - 30 - 40% (31=0.6-0.7).
, , , 1 .
32 = 1.
. ++, , 50% (33= 0.5).
, . .
34 = 1.
, .
, . .
. 20-30%.(41 = 0.7 - 0.8).
, . 10-20% (42 = 1.1-1.2)
, .
. (52=0.7), - (51=0.8). 3 (53 = 0.9)
, (54=1.2).
- .
- 2 . - :
;
K2p , , , .
.
K3p . , , .
, .
, - 4 , .
:
4 = 41 = 41*.
41 - .
, S | 1 . |
, S |
1000 ./ . |
, | 3000 |
, 41 |
5 ./ |
, T |
4 . |
, , |
3 / |
- 11 = lg(3000 * 10-3)=0.47;
-
14 = (1.14 * (1 - )1/2)-1 = 2.7;
- 31 = 0.7;
- 33 = 0.5;
- 41 = 0.8;
- 42 = 1.1;
- 51 = 0.7;
- 52 = 0.8;
- 53 = 0.9;
- 54 = 1.2;
.
=3000 ();
P = / = 3000/88=34.1 (/);
, , , 22 , S = 45,45 (.);
ij - ij Cij = 0.245;
, :
- ;
;
;
.
,
k = 90% ;
k = 29%;
k = 41%.
- 1 :
K1 = * ijCij * S * S * 1.5 / P = 3000 * 0.245 * 45,45* 1 * 1.5 /34.1 = 1474 ().
, .. . .
= 88 ();
:
4 = 41* * T = 5 * 88 *3 = 1320 ()
.
(.) | % | |
K1 |
1474 | 53% |
K4 |
1320 | 47% |
K = 2794 .
, 2794 . . . .
, , , .
5. -
, . , , , . , , .
, , .
, , : , , , , .. , , , , . .
, , , , , , . , .
, , , , . , .
, , , .
, .
() , - .
. , . () 1-6 . , , , . , . ( ) 72 .
, . , - , - ( ), , , , , , . , (r = 0,83) . :
|
(6.1) | ||
Y - | , |
|
|
X - | . |
|
. , , , , . , .
5.1.
- | ||
. . | ||
1. | 1 | |
2. | 1 | |
3. | (). . | 3 |
4. ,
|
5 | |
5. , % | 90% | 5 |
6. , | , ( ) | 1 |
7. () | 1 | |
. - | ||
8. , 0 |
20 0 |
1 |
9. | 1 | |
10. | 1 | |
1. | 1 | |
12. () | 1 |
: X = 22
, 12 .
: Y = 2,15 * 22 - 10,3 = 37 ..
10 54 ..
, , 40 .. . 0 25 .. , 26 40 .. - 40 .. - .
, . (. 5.1),
. 5.1 . |
|
,
. ? , , - . , . .
, , , .
. , , , .
() , - . , , .
, . 27954-88 5 41- 0,03 /. , .
:
, , , ;
:
70 ( - 30 );
- 1.2 ;
.
(, , ), . 220, , - , , . , , . , , , .
12.2007-75 , .
( 150-200, 220(+/-15), I=0,5, , R=4). , , , , . , . , , .
, , , , .
: (, ) 4-79. : , .
, ( 1,0 , , ), 300 .
:
, , ;
, ;
- ;
60 ;
;
, , ;
, .
, . 3223-85 , 50 . ( ), .
4088-86 " " :
, : 22-24 ; 0.1 /; 40-60%; 21 25 .
, : 23-25 ; 0.1-0.2 /; 40-60%; 22 26 .
. . .
- , - , , , .
. 4 ; , 5-10 , .
:
,
,
,
,
,
.
, , . , , . 2/3 . 10-20 , , . , , .
, 15 , - 4.5 ..
20 30 ./ , 20 - 40 - 20 ./. .
, , 47.5 . 156.5 . :
) N < 47.5 / 4.5 = 10.5
) N < 156.5 / 15 = 10.4
, .
.
:
1. , [>23 /3] t = 20 - 22 C ;
2. : 156.5 .
3. :
SK-3142- K1=2 .- W1=150
IBM PC/AT- K2=2 .- W2=250
5-75- K3=2 .- W3=60
1-103- K4=2 . - W4=130
5-46- K5=1 .- W5=400
5-47- K6=2 .- W6=150
7-40- K7=3 .- W7=30
5. : n = 7.
- , .
L'=203/ . .
,
L1 = n * L' = 7 * 20 = 140 3/.
:
Q
L2= ,
*c*( t-t )
Q - /;
p - - 1,2 /3;
c - - 1 / ;
t - , ;
t - , .
t :
t=t + t(H-L) ,
t - ;
H - ;
t - (0,5 - 1,5 C/);
L - .
, :
Q = 3600*(W1*K1 + ... + W7*K7) = 3600*(2*150+2*250+2*60+2*130+1*400+2*150+3*30) = 3600*1970 / = 7092 /
:
Q = 7 * 355 / = 2485 /.
:
Q = Q + Q = 7092 + 2485 = 9577 /.
:
t = 22 C+1,5 (2,2-1 ) = 24 C.
t=20 C.
9577
L2 = = 1995 3/
1,2*1*(24 - 20)
, , 1995 3/ . 1-2-04 - --4 4-51, 2000 3/. 20 .
, , , .
, , , , , .
, , .
, , . R .
.
- , .
. , .
- .
, , , .
1. . . . : .-1966.-270
2. . Visual C++ 6. . : 2000.
3. . . .- .: .-1981.-166.
4. . . . // : << >>.-1996.-1.-. 18-23.
5. Alan Oppenheim and Roland Schafer, Discete-Time Signal Processing, Prentice-Hall, ISBN 0-13-216292-X, 1989.
6. ANSI-AAMI EC18-1982 American National Standart for Diagnostic electrocardiographic Devices, American Association for the Advancement of Medical Instrumentation. Arlington, Virg.-1983.
7. Bailey J. J., Berson A. S., Garson A., et al. Recommendation for standartization and specification in automated electrocardiography: bandwidth and digital signal processing: A report for health professionals by en ad hos writing group of the commitee on electrocardiography and cardiac electrofisiology of the Council on Clinical Cardiology.-American Heart Association.-Circulation.-1990.-V. 81. 730p.
8. . . . . : .-1974.-504.
9. BORLAND C++ 5. K.:, 1996. -576 . ISBN 966-506-030-9.
10. Editor-in-Chief Joseph D. Bronzino, The Biomedical Engineering Handbook, IEEE PRESS, pp 801-917.
. .
Copyright (c) 2024 Stud-Baza.ru , , , .