Advertisement
Guest User

Untitled

a guest
Aug 16th, 2021
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.45 KB | None | 0 0
  1. <?php
  2.  
  3. $cal = file('CLIO_5217012226_100pt.cal');
  4.  
  5. $ext = array();
  6. $fin = array();
  7.  
  8. $first = 0;
  9. $next = 0;
  10. $steps = 0;
  11. $adition = 0;
  12. $atenuation = "";
  13. $a = "";
  14.  
  15. for ($i=0; $i<count($cal); ++$i)
  16. {
  17.     list($ext[$i]['freq'], $ext[$i]['atenuation'], $ext[$i]['phase']) = explode("  ", $cal[$i]);
  18.     $ext[$i]['freq'] = intval($ext[$i]['freq']);
  19.     $ext[$i]['phase'] = str_replace("\n", "", $ext[$i]['phase']);
  20. }
  21.  
  22. for ($i=$ext[0]['freq']; $i < $ext[count($ext)-1]['freq']; ++$i)
  23.     $fin[$i]['atenuation'] = "*";
  24.  
  25. for ($i=0; $i<count($ext); ++$i)
  26. {
  27.     if (isset($ext[$i+1]['freq']))
  28.     {
  29.         $ext[$i]['nextfreq'] = $ext[$i+1]['freq'];
  30.         $ext[$i]['steps'] = $ext[$i+1]['freq'] - $ext[$i]['freq'];
  31.         $ext[$i]['adition'] = $ext[$i+1]['atenuation'] - $ext[$i]['atenuation'];
  32.     }
  33.  
  34.     if (isset($ext[$i]['atenuation']))
  35.         $fin[$ext[$i]['freq']]['atenuation'] = $ext[$i]['atenuation'] . "0";
  36.  
  37.     if (isset($ext[$i]['nextfreq']))
  38.         $fin[$ext[$i]['freq']]['nextfreq'] = $ext[$i]['nextfreq'];
  39.  
  40.  
  41.     if (isset($ext[$i]['steps']))
  42.         $fin[$ext[$i]['freq']]['steps'] = $ext[$i]['steps'];
  43.  
  44.     if (isset($ext[$i]['adition']))
  45.         $fin[$ext[$i]['freq']]['adition'] = $ext[$i]['adition'];
  46. }
  47.  
  48. for ($i=$ext[0]['freq']; $i <= $ext[count($ext)-1]['freq']; ++$i)
  49. {
  50.     if (isset($fin[$i]['nextfreq']))
  51.     {
  52.         $first = $i;
  53.         $next = $fin[$i]['nextfreq'];
  54.     }
  55.  
  56.     $fin[$i]['nextfreq'] = $next;
  57.  
  58.     if (isset($fin[$i]['steps']))
  59.          $steps = $fin[$i]['steps'];
  60.  
  61.     $fin[$i]['steps'] = $steps;
  62.  
  63.     if (isset($fin[$i]['adition']))
  64.          $adition = $fin[$i]['adition'];
  65.  
  66.     $fin[$i]['adition'] = $adition;
  67. }
  68.  
  69. for ($i=$ext[0]['freq']; $i <= $ext[count($ext)-1]['freq']; ++$i)
  70. {
  71.     if ($fin[$i]['atenuation'] != "*")
  72.     {
  73.         $atenuation = $fin[$i]['atenuation'];
  74.         $a = bcdiv($fin[$i]['adition'], $fin[$i]['steps'], 11);
  75.     }
  76.     else
  77.     {
  78.         $atenuation = bcadd($atenuation, $a, 11);
  79.         $fin[$i]['atenuation'] = "(" . number_format($atenuation, 3) . ")";
  80.     }
  81. }
  82.  
  83. // linearno generisana tabla nedostajucih frekvencija sa atenuacijom na osnovu mikrofonskog kalibracionog fajla CLIO_5217012226_100pt.cal
  84. //print_r($fin);
  85.  
  86. // finalna linearna atenuaciona tabla mikrofonske frekvencije od 15Hz do 22kHz
  87. for ($i=$ext[0]['freq']; $i <= $ext[count($ext)-1]['freq']; ++$i)
  88. {
  89.     unset($fin[$i]['nextfreq']);
  90.     unset($fin[$i]['steps']);
  91.     unset($fin[$i]['adition']);
  92.     $fin[$i] = preg_replace('/[^-a-zA-Z0-9.]/', '', $fin[$i]['atenuation']);
  93. }
  94. //print_r($fin);
  95.  
  96. unset($ext);
  97. unset($cal);
  98.  
  99. $f = fopen("new_CLIO_5217012226_100pt.cal", "wb");
  100. foreach ($fin as $key => $value)
  101.     fwrite($f, $key . ".00  " . $value . "  0.00\n");
  102. fclose($f);
  103.  
  104. //=================================================================
  105.  
  106. $cal = file('audax_hm170g8.frd');
  107.  
  108. $ext = array();
  109.  
  110. for ($i=0; $i<count($cal); ++$i)
  111. {
  112.     $cal[$i] = preg_replace('/\s+/', ' ', $cal[$i]);
  113.  
  114.     list($ext[$i]['freq'], $ext[$i]['db'], $ext[$i]['phase']) = explode(" ", $cal[$i]);
  115.  
  116.     $ext[$i]['phase'] = str_replace("\n", "", $ext[$i]['phase']);
  117.  
  118.     if (isset($fin[intval($ext[$i]['freq'])]))
  119.         $ext[$i]['atenuation'] = $fin[intval($ext[$i]['freq'])];
  120.     else
  121.         $ext[$i]['atenuation'] = "-2.350";
  122.  
  123.     $ext[$i]['atenuated_db'] = bcsub($ext[$i]['db'], $ext[$i]['atenuation'], 11);
  124.     $ext[$i]['atenuated_db'] = number_format($ext[$i]['atenuated_db'], 2);
  125. }
  126.  
  127. //print_r($ext);
  128.  
  129. for ($i=0; $i<=count($ext); ++$i)
  130. {
  131.     if ($ext[$i]['freq'] < 22000)
  132.         echo "<pre>" . $ext[$i]['freq'] . "          " . $ext[$i]['atenuated_db'] . "          " . $ext[$i]['phase'] . "</pre>\n";
  133. }
  134.  
  135. ?>
  136.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement