AFCViewerвид изнутри

Исходный код модуля содержащий все массивы частот используемые в AFCViewer. Массив 1/24 октавы заполняется автоматически в самом начале работы программы.

unit AFCFreq;
{------------  Проект "Маленькие программы помощники"  -----------------------------
   1. Массивы предпочтительных рядов частот для звуковых измерений: 1/3 и 1/6 октавы
         (на основе ГОСТ 12090-80, МЭК-1, ИСО 266).
   2. Массивы частот 1/12 и 1/24 октавы.
         Copyright (C) ZHarns58.  Условия использования: бесплатно.
                  http://ZHarns58.La-Ser.ru
------------------------------------------------------------------------------------}
interface

const
  //  измерительный 1/3 октавы
  Freq_oct3 : array[0..30] of real =
    ( 20, 25, 31.5, 40, 50, 63, 80, 100, 125, 160,
      200, 250, 315, 400, 500, 630, 800, 1000, 1250, 1600,
      2000, 2500, 3150, 4000, 5000, 6300, 8000, 10000, 12500, 16000,
      20000 );
  DefFreq_oct = 1000;

  //  измерительный 1/6 октавы
  Freq_oct6 : array[0..60] of real =
    ( 20, 22.4, 25, 28, 31.5, 35.5, 40, 45, 50, 56,
      63, 71, 80, 90, 100, 112, 125, 140, 160, 180,
      200, 224, 250, 280, 315, 355, 400, 450, 500, 560,
      630, 710, 800, 900, 1000, 1120, 1250, 1400, 1600, 1800,
      2000, 2240, 2500, 2800, 3150, 3550, 4000, 4500, 5000, 5600,
      6300, 7100, 8000, 9000, 10000, 11200, 12500, 14000, 16000, 18000,
      20000 );

  //  измерительный 1/12 октавы
  Freq_oct12 : array[0..120] of real =
    ( 20, 21.19, 22.4, 23.73, 25, 26.49, 28, 29.66, 31.5, 33.37,
      35.5, 37.61, 40, 42.38, 45, 47.68, 50, 52.97, 56, 59.33,
      63, 66.75, 71, 75.22, 80, 84.76, 90, 95.35, 100, 105.95,
      112, 118.66, 125, 132.43, 140, 148.32, 160, 169.51, 180, 190.70,
      200, 211.9, 224, 237.3, 250, 264.9, 280, 296.6, 315, 333.7,
      355, 376.1, 400, 423.8, 450, 476.8, 500, 529.7, 560, 593.3,
      630, 667.5, 710, 752.2, 800, 847.6, 900, 953.5, 1000, 1059.5,
      1120, 1186.6, 1250, 1324.3, 1400, 1483.2, 1600, 1695.1, 1800, 1907.0,
      2000, 2119, 2240, 2373, 2500, 2649, 2800, 2966, 3150, 3337,
      3550, 3761, 4000, 4238, 4500, 4768, 5000, 5297, 5600, 5933,
      6300, 6675, 7100, 7522, 8000, 8476, 9000, 9535, 10000, 10595,
      11200, 11866, 12500, 13243, 14000, 14832, 16000, 16951, 18000, 19070,
      20000 );

var
  //  измерительный 1/24 октавы
  Freq_oct24 : array[0..240] of real;

procedure FillOct24;


implementation

procedure FillOct24;
const
  fr = 1.02930224;  //  корень 24-й степени из 2
var
  i,j : integer;
  f   : real;
begin
  //  заполнить набор частот Freq_oct24
  for j:=0 to High(Freq_oct6) do begin
    f:= Freq_oct6[j];
    i:= 0;
    repeat
      Freq_oct24[j*4 + i]:= f;
      f:= f*fr;
      Inc(i);
    until (i > 3) or (j = High(Freq_oct6));
  end;
end;

initialization
begin
  FillOct24;
end;

end.

ZIP-архив с исходным текстом модуля 1,01 Кб.
Контрольная сумма архива CRC32: 5F7A672B
Назад: к общему описанию программы
Голос народа: отзывы, пожелания, мнения
1 2 3 4
5

Если Вы хотите поддержать разработку бесплатных программ и в частности этот сайт, то сделать это можно не только "монетами". Компьютерное оборудование, или как сейчас говорят "железо", которое Вы, по тем или иным причинам сочли уже неподходящим для себя, возможно сможет еще поработать. Правда, не во всех видах оборудования есть необходимость ...

Москва, 2013-2020 гг., © ZHarNS58
467