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\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\n%d\n%f\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\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();
}
//---------------------------------------------------------------------------