Такая искусственная характеристика не соответствует в точности, например, обратно —
логарифмическом-
у закону, но
конечный результат оказывается значительно лучше, чем при использовании простого потенциометра с линейной
характеристикой-
. У идеального регулятора громкости должно быть абсолютно одинаковое ослабление (выраженное в децибелах) для заданного количества
поворотов ротора потенциометра вне зависимости от того, производится ли такое вращение, когда подвижный контакт потенциометра
находится в середине токопроводящей дорожки, либо в ее конце, в
непосредственно-
й близости от начала. Ниже приводится
программа , написанная на языке QBASIC, которая позволяет детально исследовать влияние подгоночного резистора на
аппроксимируему-
ю зависимость. Программа представляет
модифицированны-
й вариант обычного языка
программировани-
я низкого
уровня,
предназначенног-
о для операционной системы MS DOS. Несмотря на то, что большинство современных операционных
систем, совершенно не заботясь о последствиях, пытаются всеми способами откреститься от наследия DOS, операционная система
Windows XP работает с DOS-программами более, чем
удовлетворитель-
но. Используя данную программу, можно рассчитать,
что идеальное значение сопротивления для подгоночного резистора будет составлять примерно 0,83 от значения сопротивления
потенциометра, а применение более низких значений сопротивления значительно ухудшит качество звучания. К сожалению, эта маленькая
«военная» хитрость исправляет положение только в верхней части диапазона, однако, если произвести оптимизацию уровня таким
образом, чтобы на практике использовалось, как правило, только 12 дБ ослабления в верхней части диапазона, то система подгоночный
резистор — потенциометр будет работать очень хорошо. CLS Р = 1 PRINT "This program calculates the step size" PRINT
"resulting from shunting the output of a" PRINT "linear potentiometer with a law faking" PRINT "resistor
PRINT PRINT "How many steps of resolution do you want to" PRINT
"investiga-
te"; = = 503 INPUT
N DIM LOSSDB (N) PRINT "What value of potentiometer will you use'; INPUT R PRINT "What value of law faking resistor
will you" PRINT "use" INPUT L PRINT PRINT
"LOSS"-
;; TAB(15);
"STEP"-
;
DO UNTILL P = N A = P * R / N UPPER = R - A LOWER = A * L /(A + 1) LOSSDB (P) = ((86.8589 * LOG(LOWER / (LOWER + UPER))\1)
/ 10 REM THE 86/8598 FACTOR ARISES BECAUSE QBASIC USES NATURAL LOGS P = P + 1 LOOP P = 2 DO UNTILL P = N + 1 CLICK = LOSSDB
(P) - LOSSDB (P - 1) PRINT ABS (LOSSDB(P)); "db"; TAB(15); ((10 * CLICK) \ D/10: "db" P = P + 1 LOOP
Развитием данной идеи послужило бы изготовление нескольких о Такая искусственная х