$par['s'] = floor($t0 / $fontHeight); // Imposto la distanza in hertz. if ($par['s'] < 150) { echo "Attenzione: Troppe linee verticali, rischio di distorsioni.\n"; } $par['p'] = 50; // Clock 50 Hz. } if (isset($par['b'])) { $baseFreq = valu($par['b']); } if (isset($par['s'])) { $stepFreq = valu($par['s']); } if (isset($par['p'])) { $pixelFreq = valu($par['p']); } if (isset($par['l'])) { $pixelFreq = 1 / $pixelFreq; } if ($pixelFreq > $baseFreq) { die("Parametri di frequenza non validi: pixel > base\n"); } if ($baseFreq > $sampleRate / 2) { die("Parametri di frequenza non validi: base > bandwidth\n"); } $t0 = $baseFreq + $fontHeight * $stepFreq; if ($t0 > $sampleRate / 2) { die("Parametri di frequenza non validi: siamo fuori banda. Richiesti: {$t0} Hz\n"); } if (isset($par['O'])) {
if (isset($par['w'])) { // Calcola i parametri autonomamanete tramite la larghezza di banda impostata. $bw = valu($par['w']); $bw = $bw - $baseFreq; $stepFreq = floor($bw / $fontHeight); echo "StepFreq.: {$bw} / {$fontHeight} = {$stepFreq}\n"; } if ($pixelFreq > $baseFreq) { die("Parametri di frequenza non validi: pixel > base\n"); } if ($baseFreq + $fontHeight * $stepFreq > $sampleRate / 2) { die("Parametri di frequenza non validi: siamo fuori banda.\n"); } $pixXx = $sampleRate / $pixelFreq; if (isset($par['ppx'])) { $pixXx = valu($par['ppx']); } for ($i = 0; $i < $fontHeight; $i++) { $f = $baseFreq + $stepFreq * $i; $freq[$i] = createFreq($f, $sampleRate); } if (isset($par['a'])) { // Possiamo scegliere se sfalsare la fase degli oscillatori per mitigare i battimenti. $al = 0; $st = intval($par['a']) % 360; for ($i = 0; $i < $fontHeight; $i++) { $x = deg2rad($al); $al += $st % 360; $freq[$i]['al'] = $x; } }
} if (isset($par['l'])) { $pixelFreq = 1 / $pixelFreq; } if (isset($par['O'])) { $par['W'] = true; } if (isset($par['L'])) { $minOverlap = valu($par['L']); } if (isset($par['bw'])) { list($a, $b) = explode('-', $par['bw'], 2); if ($a == '' or $b == '') { die("Errore sul parametro -bw <da-a>\n"); } $maxBandWidth = array(valu($a), valu($b)); } if ($maxBandWidth and $maxBandWidth[1] <= $maxBandWidth[0]) { die("Errore sul parametro -bw <da-a>\n"); } if ($pixelFreq > $baseFreq) { die("Parametri di frequenza non validi: pixel > base\n"); } if ($baseFreq > $sampleRate / 2) { die("Parametri di frequenza non validi: base > bandwidth\n"); } if ($baseFreq + $fontHeight * $stepFreq > $sampleRate / 2) { die("Parametri di frequenza non validi: siamo fuori banda.\n"); } if (isset($par['N'])) { // Rimuove spazi, cr, lf, tab.