Показать сообщение отдельно
  #3  
Старый 28.12.2012, 18:57
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Здравствуйте, уважаемые участники форума! Помогите мне составить 3 массива.. В ниже прикрепленном файле наведен пример обработки данных. Все массивы я сделал.. кроме последних трех. (В ячейках O, P, Q). Ниже прилагаю код уже сделанного. Прошу только грамотно сделать те 3 массива, так как они сделаны в EXCEL.
Код:
//////////////////////////////////////////////////////////////////////
    m:=trunc(3.3*log10(NumSamples)+1);
    //delX:=(WavInfo.MaxAmplitude - WavInfo.MinAmplitude) / m;
    delX:=((WavInfo.MaxAmplitude - WavInfo.MinAmplitude)/WavInfo.MaxAmplitude) / m;

//////////////////////////////////////////////////////////////////////
Gran[1]:=WavInfo.MinAmplitude/wavinfo.MaxAmplitude;
Form1.Memo3.Lines.Add('Gran[1] ' +FloatToStr(Gran[1]));
  For i:=2 to m+1 do
begin
 Gran[i]:=Gran[i-1]+delX;
 Form1.Memo3.Lines.Add('Gran['+inttostr(i)+']' +FloatToStr(Gran[i]));
end;

//////////////////////////////////////////////////////////////////////
  For i:=1 to m+1 do
   begin
 Ap.Cells[i,1]:=Gran[i];
 ppp[i]:= Ap.Cells[i,3];
 Form1.Memo3.Lines.Add('ppp['+inttostr(i)+']' +FloatToStr(ppp[i]));
   end;

//////////////////////////////////////////////////////////////////////
     for f:=1 to m do
    begin
     for I := 1 to NumSamples do
        for J := 1 to WavInfo.WaveFormat.nChannels do
        if  Samp2[j,i]<Gran[f+1]
        then Kol[f]:=Kol[f]+1 ;
     Form1.Memo3.Lines.Add('Kol['+ inttostr(f) +']='+FloatToStr(Kol[f]));
    end;

//////////////////////////////////////////////////////////////////////
    Nj[1]:=(Kol[1]/delX/NumSamples);
    Form1.Memo3.Lines.Add('Nj[1] ' +FloatToStr(Nj[1]));
    for f:=2 to m do
    begin
    Nj[f]:=((Kol[f]-Kol[f-1])/delX/NumSamples);
    Form1.Memo3.Lines.Add('Nj['+ inttostr(f) +']='+FloatToStr(Nj[f]));
    end;

//////////////////////////////////////////////////////////////////////
    pp[1]:= kol[1];
    Form1.Memo3.Lines.Add('pp[1]='+FloatToStr(pp[1]));
    for i:=2 to m do
    begin
    pp[i]:=(Kol[i]-Kol[i-1]);
    Form1.Memo3.Lines.Add('pp['+ inttostr(i) +']='+FloatToStr(pp[i]));
    end;

//////////////////////////////////////////////////////////////////////
    for i:=1 to m do
    begin
    p[i]:=(ppp[i+1]-ppp[i])*NumSamples;
    Form1.Memo3.Lines.Add('p['+ inttostr(i) +']='+FloatToStr(p[i]));
    end;

//////////////////////////////////////////////////////////////////////
    for i:=1 to m do
    begin
     pppp[i]:= sqr(PP[i]-p[i])/p[i];
     Form1.Memo3.Lines.Add('pppp['+ inttostr(i) +']='+FloatToStr(pppp[i]));
    end;

 //////////////////////////////////////////////////////////////////
    for i:=1 to m do
    SUMM:=summ+ pppp[i];
Прошу, помогите мне, пожалуйста!
P.S Пример только для одного набора сэмплов, равен 2000 шт. Работать должно для любого файла так, как происходит это с массивами, которые я уже сделал.
И еще вложу книгу, там на 4 ст. красивее написано, чем на рисунках.
Вложения
Тип файла: rar Книга.rar (364.5 Кбайт, 1 просмотров)
Тип файла: rar EXEL.rar (443.1 Кбайт, 1 просмотров)
Ответить с цитированием