Смекни!
smekni.com

Обработка данных в автоматизированных системах (стр. 6 из 6)

ListItem->SubItems->Add(FloatToStr(i*b1));

ListItem->SubItems->Add(FloatToStr(Sxx[i]));

}

fclose(DR);

if(RadioGroup1->ItemIndex==1)

{

//Осреднение по частоте

float s=0.0;

int l=StrToInt(FreqEdit->Text);

SaveDialog->Title="Сохранение файла оценки методом частотного осреднения";

if(SaveDialog->Execute())

{DR = std::fopen(SaveDialog->FileName.c_str(), "w");

fprintf(DR,"%f\n%d\n%f\n",dt,N1,amp);

for(i=0;i<N1-l;i++){s=0.0;

for(j=i;j<i+l;j++)s=s+Sxx[j];

fprintf(DR,"%f&bsol;n",s/l);

BarSeries2->AddXY(i*b1,s/l,"",clTeeColor);

ListItem=ListView1->Items->Item[i];

ListItem->SubItems->Add(FloatToStr(i*b1));

ListItem->SubItems->Add(FloatToStr(s/l));

}

fclose(DR);

}

}else if(RadioGroup1->ItemIndex==0){

// Осреднение по участкам

SaveDialog->Title = "Сохранение файла оценки методом разбиения на участки";

int Ny=1/(dt*b);

razm=ceil(log(Ny)/log(2));

Ny=pow(2,razm);

if (SaveDialog->Execute()){

DR = std::fopen(SaveDialog->FileName.c_str(), "w");

fprintf(DR,"%f&bsol;n%d&bsol;n%f&bsol;n",dt,Ny,amp);

int m=ceil(Nt/Ny);

for(i=0;i<Ny;i++) Sxx[i]=0;

for(j=0;j<m;j++){

for(i=0;i<Ny;i++) if (j*Ny+i>Nt) {x[i]=0;y[i]=0;} else {x[i]=vr[j*Ny+i];y[i]=0;}

mx=me(x,Ny);for(i=0;i<Ny;i++) x[i]=x[i]-mx;

fft(x,y,Ny,razm,1);

for(i=0;i<Ny;i++) Sxx[i]+=(dt/Ny)*(x[i]*x[i]+y[i]*y[i]);

}

for(i=0;i<Ny;i++) {

fprintf(DR,"%f&bsol;n",Sxx[i]/m);

float b1=1/(dt*Ny);

BarSeries2->AddXY(i*b1,Sxx[i]/m,"",clTeeColor);

ListItem=ListView1->Items->Item[i];

ListItem->SubItems->Add(FloatToStr(i*b1));

ListItem->SubItems->Add(FloatToStr(Sxx[i]/m));

}

fclose(DR);

}

}

}

free(vr); free(x); free(y); free(Sxx);

fclose(VR); }

}catch(...)

{

Application->MessageBox("Проверь себя!!!","Ошибочка вышла", MB_OK);}

}

//---------------------------------------------------------------------------

void __fastcall TADC::Help1Click(TObject *Sender)

{

Form2->Visible=true;

}

//---------------------------------------------------------------------------

void __fastcall TADC::N5Click(TObject *Sender)

{

Form3->Visible=true;

}

//---------------------------------------------------------------------------

void __fastcall TADC::N6Click(TObject *Sender)

{

ADC->Close();

}

//---------------------------------------------------------------------------