avva: (Default)
[personal profile] avva
Три интересные статьи, из увиденного недавно.

1. How it feels to learn Javascript in 2017. Дает некое представление о том, как устроены популярные фреймворки последних лет - с виртуальными DOMами, современным синтаксисом ES6, HTML внутри джаваскрипта (JSX). Я довольно далеко от этого мира, и во многом отношусь к нему скептически, но эта небольшая, живо и инересно написанная статья меня покорила.

2. Fizzlefade. Рассказ о том, как в классической игрушке Wolfenstein 3D был сделан эффект "экран постепенно покрывается красными точками, символизирующими кровь, пока целиком не становится красным". Есть исходники на 16-битном ассемблере и эквивалент на C, для тех, кто не хочет вспоминать ассемблер. Очень советую вчитаться как следует и разобраться для себя в том, как устроен LFSR, и особенно - почему "Галуа"-версия LFSR, которая обходится всего одним XOR'ом, эквивалентна обычной. Там весьма элегантный хак.

В качестве бонуса - статья Антиреза Doing the FizzleFade effect with a Feistel network, о совершенно другом способе добиться того же эффекта.

3. Digital Show & Tell - захватывающее видео о некоторых заблуждениях насчет того, как работает аналогово-цифровое конвертирование и наоборот, и почему самплинг типа "24 бита, 192кгц" не дает дополнительных преимуществ в сравнении с обычным CD-уровнем. Это возможно звучит довольно сухо, но я, никоим образом не аудиофил, был заворожен этим видео - исключительно ясные объяснения, на редкость наглядные демонстрации с помощью аналоговых генератора сигнала и осциллоскопа итд. Особенно понравилось объяснение того, почему концептуально неверно рисовать цифровой сигнал в виде "лесенки", и почему все равно это всегда делают. Очень круто.

Re: про цифровой

Date: 2017-08-30 11:41 pm (UTC)
sergey_cheban: (Default)
From: [personal profile] sergey_cheban
> какая же это схемотехника, спрашивается, проводит через
> точки кривую ограниченного спектра?!
Цифровая. Ей никто не мешает посчитать значения сигнала в промежуточных точках, а потом вывести результат на ЦАП с каким угодно качеством.
Считать просто: БПФ раскладывает сигнал на синусоиды, sin(x) компьютер считать умеет.

Re: про цифровой

Date: 2017-08-31 10:24 am (UTC)
From: [identity profile] a-shen.livejournal.com
Вы не поняли. Речь о том, как происходит ЦАП и откуда берётся декларированное докладчиком ограничение полосы пропускания, позволяющее применить теорему Найквиста или как она там называется. https://en.wikipedia.org/wiki/Reconstruction_filter

Re: про цифровой

Date: 2017-08-31 11:16 am (UTC)
From: (Anonymous)
"как происходит ЦАП"

Может по-разному происходить. Например, можно реконструировать сигнал из той самой 16-битной лесенки. Можно и иначе, например, пересчитав сигнал в однобитный, но с более высокой частотой дискретизации (т.н. сигма-дельта-модуляция). Это целая наука, которой он вовсе не касается.

"откуда берётся декларированное докладчиком ограничение полосы пропускания"

Из аналогового фильтра нижних частот *на входе* системы, перед АЦП.

На выходе тоже ставят аналоговый фильтр нижних частот, который убивает высокочастотные компоненты, имеющиеся в лесенке или в сигма-дельта-сигнале и преобразует ее из лесенки в исходную синусоиду. Но его назначение другое --- защищать *аналоговый* тракт (усилитель, который после ЦАП) от нежелательной высокочастотной составляющей. В теории ее не должно быть слышно, но на практике из-за нелинейности усилителя будут неприятности.

Re: про цифровой

Date: 2017-08-31 01:34 pm (UTC)
From: [identity profile] a-shen.livejournal.com
Фильтр нижних частот, чтобы можно было сослаться на теорему Найквиста, должен быть весьма экзотическим

RE: Re: про цифровой

Date: 2017-08-31 01:50 pm (UTC)
From: (Anonymous)
Да, очень ступенчатым, что нежелательно. Поэтому на практике прибегают к разным трюкам. Например, ставят фильтр простой и пологий, повышают частоту самплинга, а потом ненужное отрезают уже в цифровом виде, где уже можно применить сколь угодно эезотический фильтр.

Re: про цифровой

Date: 2017-08-31 01:14 pm (UTC)
sergey_cheban: (Default)
From: [personal profile] sergey_cheban
Ограничение полосы пропускания происходит на входе, до оцифровки. Там в обязательном порядке ставятся аналоговые фильтры, отрезающие всё лишнее. Если их не поставить, получается ерунда. См. рис. 34.6 здесь.

Выдать на выход ЦАП сигнал "лесенкой", а потом каким-нибудь аналоговым фильтром (reconstruction filter) сгладить его можно, но результат будет отличаться от "математически правильного". Впрочем, "математически правильный" сигнал ограниченного спектра может быть только периодическим, так что в реальной жизни от строгой математики рано или поздно приходится отходить.

Re: про цифровой

Date: 2017-08-31 01:20 pm (UTC)
From: [identity profile] a-shen.livejournal.com
1) Речь не о АЦП, а о ЦАП
2) ---

Re: про цифровой

Date: 2017-08-31 02:14 pm (UTC)
From: (Anonymous)
Так теорема Найквиста нам что говорит? Что сигнал восстанавливается однозначно. Если провести кривую ограниченного спектра через центры ступенек, получится входной сигнал. Если его вычесть из сигнала-лесенки, получится некий шум, спектр которого, внимание, весь целиком лежит выше, чем половина частоты дискретизации. Соответственно, если отфильтровать все такие частоты, на выходе получится как раз входной сигнал, больше нечему получиться.

На практике, конечно, очень трудно отрезать без остатка все выше 22.4 кГц и оставить без изменения все ниже 20 кГц. Поэтому и здесь тоже повышают частоту, с которой ЦАП выдает свою лесенку (заодно можно понизить разрядность). Промежуточные значения вставляют какие надо, чтобы частоты выше 20 кГц не появлялись на выходе (DSP их считает). Получается, что теперь надо отрезать не все, что выше 22.4 кГц, а все, что выше, например, 1 МГц, при этом опять же оставить без изменения только то, что ниже 20 КГц. А это уже гораздо проще.

January 2026

S M T W T F S
    1 2 3
4 5 6 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 11:53 am
Powered by Dreamwidth Studios