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

А можно так попробовать? Теоретический это правильно?
Код:
Z: array [0..10000,0..10000] of Int64;
      Sample := 0;
      S:=0;
      Sl:=tStringlist.Create;
      for I := 1 to NumSamples do
      begin
        for J := 1 to WavInfo.WaveFormat.nChannels do
        begin
          fs.ReadBuffer(Sample, BytsPerSample);
         case BytsPerSample of
            1: Sample := ShortInt(Sample);
            2: Sample := SmallInt(Sample);
          end;
      WavInfo.Samples[J - 1, I - 1] := Sample;
      if Abs(Sample) > WavInfo.MaxAmplitude then WavInfo.MaxAmplitude := Abs(Sample);

         sl.Add(IntToStr(Sample));


         z[j,i]:=Sample;


        end;
      end;
    WavInfo.NumSamples := LongInt(NumSamples);
    end;
          sl.SaveToFile('Samples.txt');
         SL.Free;

    for I := 1 to NumSamples do
      begin
        s:=(s+z[j,i]);
      end;

    Xch:=S/NumSamples;

    S2:=0;
    for I := 1 to NumSamples do
    begin
    S2:=s2+Sqr(z[j,i]-Xch);
    end;
    M1:=Sqrt((s2/NumSamples)*(s2/NumSamples)*(s2/NumSamples));
//
    S2:=0;
    for I := 1 to NumSamples do
    begin
    S2:=s2+(z[j,i]-Xch)*(z[j,i]-Xch)*(z[j,i]-Xch);
    end;
    M2:=(s2/NumSamples);
//
    S2:=0;
    for I := 1 to NumSamples do
    begin
    S2:=s2+sqr(z[j,i]-Xch);
    end;
    M3:=Sqr(s2/NumSamples);
//
    S2:=0;
    for I := 1 to NumSamples do
    begin
    S2:=s2+sqr(Sqr(z[j,i]-Xch));
    end;
    M4:=(s2/NumSamples);

    A:=M2/m1;
    E:=m4/m3;
Ответить с цитированием