[uquote="korob",url="/forum/viewtopic.php?p=3450233#p3450233"]А так как разрядность может быть разная, то вместо например Bit0...Bit15 принято писать MSB-n и LSB+m.[/uquote]Хмм. А оно такое бывает - разная разрядность одного и того же АЦП?
В данном конкретном случае мы имеет дело с аудио-ЦАП который обычно имеет разрядность 24 бит, но вполне может принимать слова 20, 18 и 16 бит. Т.е. имелась ввиду разрядность слова.
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. Всегда с уважением, Александр.
Это указание на диапзон входных напряжений ОУ. Соответственно ниже флажком отмечается, какоя именно вариант: размах входных напряжений до обеих шин питания, только до плюса, только до минуса, не определено и не R-to-R. Два последних я наверное неправильно интерпретирую -- знающие подправят.
Хочу задать вопрос по работе АЦП звуковой карты ПК. В процессе изучения информации пришёл к некоторой неопределённости, с одной стороны PCM кодируется значениями целых чисел, причём обычно их представляют в литературе как беззнаковые. То есть, для 16-ти битного канала значения амплитуды могут принимать значения от 0 до 65535. Так вот, какие напряжения соответствуют этим цифровым значениям? Собственно, важным для меня являются не числовые значения, а диапазоны, например: 0 - 0 В, 65535 - X В или 0 - -Y В, 65535 - +Z В. И второе, как правильно формировать полярность сигнала для динамика?
как связан АЦП и динамик?
АЦП — это вход, а динамик обычно цепляют к выходу.
Добавлено after 3 minutes 25 seconds:
вообще обычно напряжение сначала приводится к беззнаковому — сдвигается вверх на пол амплитуды, а потом цифруется и наоборот,
из цифрового снача получается аналоговый беззнаковый сигнал, потом сдвигается (возможно, ето бывает сделано внутри микросхемы, не знаю)
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3452440#p3452440"]как связан АЦП и динамик?
АЦП — это вход, а динамик обычно цепляют к выходу.[/uquote]
Прошу извинить, ЦАП, конечно.
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3452440#p3452440"]Вообще обычно напряжение сначала приводится к беззнаковому — сдвигается вверх на пол амплитуды, а потом цифруется и наоборот,
из цифрового снача получается аналоговый беззнаковый сигнал, потом сдвигается (возможно, ето бывает сделано внутри микросхемы, не знаю)[/uquote]
Вот, одна из проблем в том, что знаковые форматы в ПК ассиметричны, то есть: -32768...+32767, так как 0 относится к положительным числам.
Пока в этой теме я мало что понимаю, поэтому хочу послушать мнения.
в звуковухе на выходе стоит конденсатор, он и сдвинет на сколько надо...
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3452451#p3452451"]в звуковухе на выходе стоит конденсатор, он и сдвинет на сколько надо...[/uquote]
Если мне, например, хочется получить сигнал вида:
y(t) = A * sin(t) + B,
то как лучше поступить? Назначить B по примерной середине диапазона 0...65535, то есть 32767.
Как бы можно будет использовать почти максимальную амплитуду (A max = 32767).
Или же как-то иначе это надо делать, может что стандартизировано?
не обязательно использовать ЦАП от края до края, оставь ты этот один отсчет в угоду симметрии, а можно оставить и больше в угоду круглому значению амплитуды (например сделать от -30000 до 30000)...
Добавлено after 2 minutes 9 seconds:
а как ты планируешь так ровно на половину опорного напряжения + или - 0,5 отсчета выходной сигнал сдвинуть?
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3452467#p3452467"]а как ты планируешь так ровно на половину опорного напряжения + или - 0,5 отсчета выходной сигнал сдвинуть?[/uquote]
y(t) = A * sin(t) + B
A = 32767, B = 32767.
y_max = 32767 * 1 + 32767 = 65534, то есть чуть меньше 65535, которое остаётся бесполезным.
y_mid = 32767 * 0 + 32767 - середина эквивалентна целому значению.
y_min = 32767 - 32767 = 0
А вот если 65535 / 2, то будет 32767,5. Если подумать, то такую синусоиду тоже можно обсчитать. Или я чего не понял?
если точно, то середина диапазона и есть твои 32767,5 так вот чтобы получить ровно 0 эти 0,5 надо или добавить в аналоге к средней точке или отнять... но я не очень представляю зачем нужна такая точность, ведь если весь размах, допустим 3в, то эти полшага будут меньше 23мкВ... т.е. если вычитать из сигнала 1,50002289В тогда задав АЦП 32768 получим на выходе ровно 0.
Добавлено after 3 minutes 57 seconds:
и второй вопрос, как такую точность получить на практике?
Добавлено after 10 minutes 46 seconds:
если ты про цифровую часть, то да, чтобы получит из 0 в знаковом представлении, перед отправкой в ЦАП к числу тоже нужно прибавить полдиапазона 32767 или 32768 (смотря какой из отсчетов принят за 0).
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3452499#p3452499"]если точно, то середина диапазона и есть твои 32767,5 так вот чтобы получить ровно 0 эти 0,5 надо или добавить в аналоге к средней точке или отнять... но я не очень представляю зачем нужна такая точность, ведь если весь размах, допустим 3в, то эти полшага будут меньше 23мкВ...
Добавлено after 3 minutes 57 seconds:
и второй вопрос, как такую точность получить на практике?[/uquote]
Ну, вообще 16-бит это очень много, большинство МК, которые я встречал, имеют АЦП по 8...12 бит, а ЦАП 6...8 бит. Так как из практических соображений большее число бит даёт представление точнее уровня шумов. Хотя в студийной звукозаписи практикуют и 24 бита. Скорее всего, 16 бит сделали в угоду выравниванию по границе слова, но это мои догадки.
Другое дело, как поступать правильно? Если ноль лежит между двумя уровнями, то нужно считать именно средний уровень 32767,5, стало быть переходить к увеличению разрядности при расчёте. Если ноль лежит на 32767, то это должно быть стандартизировано, а то мало ли он находится на другом значении?
количество ступеней ЦАП есть степень 2, значит число четное, а значит его никогда не получится разделить на 2 так, чтобы осталовь ещё одно значение для 0 как ни увеличивай разрядность.
допустим мы просто используем ЦАП и довольствуемся диапазоном от нуля до максимального тут всё просто. если нам надо выйти за пределы этого диапазона - его можно сдвинуть, допустим вниз, но чтобы цифра, задаваемая в ЦАП соответствовала действительности сколько мы отняли в аналоге, столько должны прибавить в цифре
наш пример - отнимаем полдиапазона и ещё полшага (т.к. мы не можем разделить весь диапазон на 2 равные части) так у нас и выйдет потом одна половина на полшага короче, другая длинней - разница в шаг (как и у целого числа со знаком)...
пс. попробуй поделитьтпополам диапазоны 1-3 битные ЦАП (для тренировки)
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3452542#p3452542"] количество ступеней ЦАП есть степень 2, значит число четное, а значит его никогда не получится разделить на 2 так, чтобы осталовь ещё одно значение для 0 как ни увеличивай разрядность.[/uquote]
Вот смотри: значения ЦАП - текущие представления.
3 - 3 В - +1 В
2 - 2 В - 0 В
1 - 1 В - -1 В
0 - 0 В - -2 В
Меняем представление
3 - +1,5 В
- +1,0 В
2 - + 0,5 В
- 0 В
1 - -0,5 В
- -1,0 В
0 - -1,5 В
Как видишь, ступеней 1, 0,5, 0, -0,5, -1 в реальности не существует, но благодаря увеличению разрядности на 1 бит мы с ними можем работать.
y(t) = A * sin(t), B не пишу, так как B = 0, а A = 1,5 В.
Далее при округлении задаю гистерезис: если разница между предыдущим и последующим значением по модулю меньше или равна 0,5 В, то сохраняю предыдущее значение, иначе перескакиваю на следующее. Было бы не плохо снабдить это иллюстрацией, конечно.
Есть ещё способ ликвидации погрешности через смещение во времени, можно даже оба применить, рассчитывая какой из случаев точнее. Но это всё дюже сложно выглядит. И реальное состояние покоя в таком случае не будет нулевым. Зато синусоида будет с полной амплитудой в 32767,5 единиц.