Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $cal = file('CLIO_5217012226_100pt.cal');
- $ext = array();
- $fin = array();
- $first = 0;
- $next = 0;
- $steps = 0;
- $adition = 0;
- $atenuation = "";
- $a = "";
- for ($i=0; $i<count($cal); ++$i)
- {
- list($ext[$i]['freq'], $ext[$i]['atenuation'], $ext[$i]['phase']) = explode(" ", $cal[$i]);
- $ext[$i]['freq'] = intval($ext[$i]['freq']);
- $ext[$i]['phase'] = str_replace("\n", "", $ext[$i]['phase']);
- }
- for ($i=$ext[0]['freq']; $i < $ext[count($ext)-1]['freq']; ++$i)
- $fin[$i]['atenuation'] = "*";
- for ($i=0; $i<count($ext); ++$i)
- {
- if (isset($ext[$i+1]['freq']))
- {
- $ext[$i]['nextfreq'] = $ext[$i+1]['freq'];
- $ext[$i]['steps'] = $ext[$i+1]['freq'] - $ext[$i]['freq'];
- $ext[$i]['adition'] = $ext[$i+1]['atenuation'] - $ext[$i]['atenuation'];
- }
- if (isset($ext[$i]['atenuation']))
- $fin[$ext[$i]['freq']]['atenuation'] = $ext[$i]['atenuation'] . "0";
- if (isset($ext[$i]['nextfreq']))
- $fin[$ext[$i]['freq']]['nextfreq'] = $ext[$i]['nextfreq'];
- if (isset($ext[$i]['steps']))
- $fin[$ext[$i]['freq']]['steps'] = $ext[$i]['steps'];
- if (isset($ext[$i]['adition']))
- $fin[$ext[$i]['freq']]['adition'] = $ext[$i]['adition'];
- }
- for ($i=$ext[0]['freq']; $i <= $ext[count($ext)-1]['freq']; ++$i)
- {
- if (isset($fin[$i]['nextfreq']))
- {
- $first = $i;
- $next = $fin[$i]['nextfreq'];
- }
- $fin[$i]['nextfreq'] = $next;
- if (isset($fin[$i]['steps']))
- $steps = $fin[$i]['steps'];
- $fin[$i]['steps'] = $steps;
- if (isset($fin[$i]['adition']))
- $adition = $fin[$i]['adition'];
- $fin[$i]['adition'] = $adition;
- }
- for ($i=$ext[0]['freq']; $i <= $ext[count($ext)-1]['freq']; ++$i)
- {
- if ($fin[$i]['atenuation'] != "*")
- {
- $atenuation = $fin[$i]['atenuation'];
- $a = bcdiv($fin[$i]['adition'], $fin[$i]['steps'], 11);
- }
- else
- {
- $atenuation = bcadd($atenuation, $a, 11);
- $fin[$i]['atenuation'] = "(" . number_format($atenuation, 3) . ")";
- }
- }
- // linearno generisana tabla nedostajucih frekvencija sa atenuacijom na osnovu mikrofonskog kalibracionog fajla CLIO_5217012226_100pt.cal
- //print_r($fin);
- // finalna linearna atenuaciona tabla mikrofonske frekvencije od 15Hz do 22kHz
- for ($i=$ext[0]['freq']; $i <= $ext[count($ext)-1]['freq']; ++$i)
- {
- unset($fin[$i]['nextfreq']);
- unset($fin[$i]['steps']);
- unset($fin[$i]['adition']);
- $fin[$i] = preg_replace('/[^-a-zA-Z0-9.]/', '', $fin[$i]['atenuation']);
- }
- //print_r($fin);
- unset($ext);
- unset($cal);
- $f = fopen("new_CLIO_5217012226_100pt.cal", "wb");
- foreach ($fin as $key => $value)
- fwrite($f, $key . ".00 " . $value . " 0.00\n");
- fclose($f);
- //=================================================================
- $cal = file('audax_hm170g8.frd');
- $ext = array();
- for ($i=0; $i<count($cal); ++$i)
- {
- $cal[$i] = preg_replace('/\s+/', ' ', $cal[$i]);
- list($ext[$i]['freq'], $ext[$i]['db'], $ext[$i]['phase']) = explode(" ", $cal[$i]);
- $ext[$i]['phase'] = str_replace("\n", "", $ext[$i]['phase']);
- if (isset($fin[intval($ext[$i]['freq'])]))
- $ext[$i]['atenuation'] = $fin[intval($ext[$i]['freq'])];
- else
- $ext[$i]['atenuation'] = "-2.350";
- $ext[$i]['atenuated_db'] = bcsub($ext[$i]['db'], $ext[$i]['atenuation'], 11);
- $ext[$i]['atenuated_db'] = number_format($ext[$i]['atenuated_db'], 2);
- }
- //print_r($ext);
- for ($i=0; $i<=count($ext); ++$i)
- {
- if ($ext[$i]['freq'] < 22000)
- echo "<pre>" . $ext[$i]['freq'] . " " . $ext[$i]['atenuated_db'] . " " . $ext[$i]['phase'] . "</pre>\n";
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement