Пётр - Цифровой звук, частота дискретизации - вторая попытка [entries|archive|friends|userinfo]
Пётр

[ website | My Website ]
[ userinfo | lj.rossia userinfo ]
[ archive | journal archive ]

Цифровой звук, частота дискретизации - вторая попытка [Jul. 5th, 2008|11:21 am]
Previous Entry Add to Memories Tell A Friend Next Entry
Я нифига не понимаю про звук с научной точки зрения, но потребляю музыку иногда (а ещё учился в муз. школе несколько лет).

Надо будет разобраться, что к чему. Сейчас набросок, если кто-нибудь даст интересные понятные комментарии или хотя бы ссылки, укажет, где я рассуждаю очень неверно, буду рад.



Краткое содержание предыдущей серии


1. Есть ИКМ — с некоторой точностью по некоторой шкале измеряют сигнал, мы далее о том, когда измеряют с заданной частотой ("частотой дискретизации"), пример: компакт-диск, частота 44100 Гц, измерение запихивают в 16 бит каждый раз. Ещё почти актуальна СДМ (пример — SACD от Сони), там частоты много выше, но записывают изменение уровня сигнала, причём чуть ли не одним битом.

2. Далее я неверно предположил суть теоремы Уиттекера-Найквиста-Котельникова-Шэннона о восстановимости сигнала по ИКМ (если точные значения используют, это всё-таки теория), если частота дискретизации превышает удвоенную максимальную частоту звука в сигнале. Моя ошибка была в том, что я предположил банальное приближение сигнала линейной комбинацией sin(nx), cos(nx). На самом деле же сигнал теоретически восстанавливается точно, но совсем другими функциями. Я даже не подумал о том, что такое "наличие частот в сигнале".

3. Далее я подметил, что даже синусоиду воспроизводят зачастую чёрт знает как. Это важно было в силу неверного моего предположения о разложении. "На самом деле" же, как я понимаю, те функции, которыми приближают, надо ещё преобразовывать, чтобы получалось что-то воспроизводимое (поэтому мне и понравилась идея про синусоиды: на шаг меньше).

Теорема Уиттекера-Найквиста-Котельникова-Шэннона вкратце и с "водой" (похоже, без неё не обойтись никак)


Утверждается, что если в сигнале нет частот выше f, то по ИКМ с частотой дискретизации более 2f можно восстановить сигнал.

Теорема эта математическая. О восстановлении функции с определёнными свойствами по значениям в определённых точках.

Сразу ограничимся "хорошими" функциями: если вдруг гладкость или ограниченность потребуются, считаем, что они есть.

План: первый вопрос: что такое наличие частот в сигнале? Далее: строим базисные функции, у которых равны нулю все измеряемые значения, кроме одного, да и частот высоких нет. Тогда исходный сигнал может быть суммой y_1*f_1+y_2*f_2+… — значения измерений в рассматриваемых точках у такой функции совпадут со значениями исходной (только одно слагаемое будет ненулевым; если вдруг f_i окажется не единицей в точке x_i, то придётся разделить на f_i(x_i) соответствующее слагаемое в сумме выше). Далее проверяем единственность, если выполняется единственность (из функций рассматриваемого типа нет двух с одинаковыми значениями такой ИКМ), то построенная функция — исходный сигнал (значения построенной функции мы можем вычислять во всяких точках, а не только в x_i, и эти вычисленные значения дадут нам ту информацию о сигнале, которую мы не измерили сами).

1. Наличие частот определяют через носитель (то, где значения функции не ноль) преобразования Фурье функции. Насколько это разумно: с точки зрения синусоид это отличный метод, он правильно работает для сумм синусоид (выдаёт имеющиеся частоты), хотя его правильность для остальных функций — в каком-то смысле, вопрос веры, которая даётся легко, ибо другие определения изучать не хочется.

2. Остальное "механически" получается преобразованием Фурье туда-обратно, чтобы сошлось и условия выполнялись. "Необходимый" на мой взгляд "минимум" допишу позже: иду мыть посуду.

(недописано)
LinkLeave a comment

Comments:
From:[info]anonymous
Date:July 5th, 2008 - 07:36 pm
(Link)
> Сразу ограничимся "хорошими" функциями: если вдруг гладкость или ограниченность потребуются, считаем, что они есть.

То, что в спектре нет частот выше (какого-то конечного) f - это само по себе достаточное условие: у "нехороших" функций спектр неограничен (то есть там встречаются сколь угодно большие частоты).

> Моя ошибка была в том, что я предположил банальное приближение сигнала линейной комбинацией sin(nx), cos(nx). На самом деле же сигнал теоретически восстанавливается точно, но совсем другими функциями. Я даже не подумал о том, что такое "наличие частот в сигнале".

Восстанавливается точно, но именно этими самыми функциями. Разве что не там не целое n, а действительная омега - то есть частоты произвольны, ничему не кратны, и составляющих может быть бесконечно много.

> Далее: строим базисные функции, у которых равны нулю все измеряемые значения, кроме одного, да и частот высоких нет.

Это как? Функия типа "f(t) = 1 при t=t0, и 0 при всех других t" имеет бесконечный спектр, со сколь угодно высокими частотами.

> построенная функция — исходный сигнал

Нет. Она равна исх. сигналу в точках дискретизации. А в остальных "всяких точках" эта функция нулевая, вычислять ее и смысла нет.

> хотя его правильность для остальных функций — в каком-то смысле, вопрос веры

Нет там никаких вопросов веры, поскольку нет никаких "остальных функций" - любая функция может быть представлена как сумма синусоид, в этом и есть смысл преобразования Фурье.
From:[info]tristes_tigres
Date:July 5th, 2008 - 11:12 pm
(Link)
>> Далее: строим базисные функции, у которых равны нулю все измеряемые
>> значения, кроме одного, да и частот высоких нет.
>
> Это как? Функия типа "f(t) = 1 при t=t0, и 0 при всех других t" имеет
> бесконечный спектр, со сколь угодно высокими частотами.

Он написал "у которых равны нулю все измеряемые значения"
Измеряются же значения только при дискретных t, так что противоречия нет.
From:[info]anonymous
Date:July 6th, 2008 - 07:26 am
(Link)
Все равно все плохо, поскольку существование функции, принимающей в заданных точках заданные значения (в данном случае - ...0, 0, 0, 1, 0, 0, 0...) и не имеющая в спектре частот, выше половины частоты дискретизации само по себе следует все из той же теоремы Котельникова.
[User Picture]
From:[info]ppkk
Date:July 6th, 2008 - 12:26 pm
(Link)
Это был план доказательства самой теоремы Котельникова…
From:[info]tristes_tigres
Date:July 7th, 2008 - 06:30 pm
(Link)
Следует из элементарной тригонометрии
From:[info]anonymous
Date:July 7th, 2008 - 06:45 pm
(Link)
Из эл. тригонометрии следует разве что "существование функции, принимающей в заданных точках заданные значения (в данном случае - ...0, 0, 0, 1, 0, 0, 0...)". То, что у этой функции спектр удовлетворяет условию, следует уже не из нее.

А вот то, что такая ф-ция еще и единственная (а это важно; я в своем предыдущем комметарии не упомянул этого - виноват) - это уже утверждение, равносильное теореме Котельникова.
[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 11:58 am
(Link)
По-моему, равносильно только в том смысле, в котором любое утверждение равносильно столь же верному.

В "плане" я проверку единственности прописал отдельным пунктом, после построения. Спектр, естественно, проверяется по "определению" — надо делать преобразование Фурье, получать rect и умиляться.

В общем, по-моему, проблем с написанным планом нет?
From:[info]anonymous
Date:July 8th, 2008 - 12:18 pm
(Link)
> В "плане" я проверку единственности прописал отдельным пунктом

Угу: "Далее проверяем единственность, если выполняется единственность (из функций рассматриваемого типа нет двух с одинаковыми значениями такой ИКМ)". Что такое "рассматриваемый тип"? Суммы sinc'ов? Или "функции, в спектре которых нет частот выше половины частоты дискретизации"? В первом случае эта единственность не дает вообще ничего, во втором - это утверждение (что через данные точки проходит только одна ф-ция с ограниченным спектром) равносильно теореме Котельникова. Даже не "равносильно", а это она и есть.
[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 12:52 pm
(Link)
Конечно, "рассматриваемый тип" — "хорошие" функции с хорошим спектром.

Даже не "равносильно", а это она и есть.
Нет, теорема Котельникова важна и конкретным построением. Собственно, без него я бы писал не о ней, а о теореме, которая это построение предоставляет.
From:[info]anonymous
Date:July 8th, 2008 - 01:06 pm
(Link)
> Нет, теорема Котельникова важна и конкретным построением. Собственно, без него я бы писал не о ней, а о теореме, которая это построение предоставляет.

Практической пользы от этого конкретного построения гораздо меньше, чем может показаться на первый взгляд. ;-)
[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 01:14 pm
(Link)
Поэтому может быть практическая польза, например, в более высокой частоте дискретизации.
[User Picture]
From:[info]ppkk
Date:July 6th, 2008 - 12:25 pm
(Link)
А у Вас, кстати, как с представлением о цифровом звуке (от измерения ИКМ/СДМ до проблем динамиков-наушников, кабелей, предусилителей и понимания того, что же такое "электростатические наушники")? Нет советов-ссылок?
From:[info]tristes_tigres
Date:July 7th, 2008 - 06:30 pm
(Link)
А то так кушать хочется, что прямо переночевать негде ?
[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 11:59 am
(Link)
У меня тоже нет.
[User Picture]
From:[info]ppkk
Date:July 6th, 2008 - 12:23 pm
(Link)
у "нехороших" функций спектр неограничен
Я боюсь думать о том, как относиться к обратному преобразованию Фурье всевозможных функций (обобщённых, ибо уже необходимые синусы-экспоненты после преобразования выражаются через δ-функцию) с носителем, лежащим в некотором интервале. Всё-таки преобразование Фурье для чего только не определено (в смысле обобщённых функций всяких), так что пока я считаю, что наличие значений энергий звуковых волн и свойства преобразования Фурье связаны прямо, но отмечаю, что подводные камни возникнуть в принципе здесь могут. Или есть какой-то канонический взгляд?

Восстанавливается точно, но именно этими самыми функциями. Разве что не там не целое n, а действительная омега - то есть частоты произвольны, ничему не кратны, и составляющих может быть бесконечно много.
Так не считается. Но про то, что Вы написали, я в курсе: поэтому я подумал раньше (не прочитав доказательства), что теорема Котельникова — практическая теорема об огрублении (разве что я как-то совсем через чур огрубил). Разве что я не понимаю, зачем произвольные ω? Если можно брать бесконечный ряд, то можно обойтись целыми. Обычный же ряд Фурье.

Это как? Функия типа "f(t) = 1 при t=t0, и 0 при всех других t" имеет бесконечный спектр, со сколь угодно высокими частотами.
(Уже пояснили, что имеются в виду sinc-и, у которых со спектром всё в порядке [rect-ы].)

Нет. Она равна исх. сигналу в точках дискретизации. А в остальных "всяких точках" эта функция нулевая, вычислять ее и смысла нет.
(см. непонимание)

Нет там никаких вопросов веры
См. выше: связь абстрактного преобразования Фурье и реальных сигналов при всяких предельных переходах становится вопросом веры. Для конечных сумм синусоид, видимо, вера в модель очень крепкая, для того, что так не представляется — вопрос веры.


поскольку нет никаких "остальных функций" - любая функция может быть представлена как сумма синусоид, в этом и есть смысл преобразования Фурье.
В этом смысл ряда Фурье, а не преобразования. Или о чём Вы? Преобразование Фурье в нашем контексте — для определения спектра и достаточно тупых построений, которые по простому приведённому плану дают полное доказательство теоремы Котельникова. Я его на этот раз прочитал.

"Остальные функции" — я решил, что так проще, чем возиться с математическим определением сигнала.
From:[info]anonymous
Date:July 6th, 2008 - 03:12 pm
(Link)
> В этом смысл ряда Фурье, а не преобразования. Или о чём Вы?

Смысл ряда Фурье в том, что любую _периодическую_ функцию можно представить в виде суммы синусоид частотами, кратными 1/T.

Преобразование Фурье - более общая вещь: оно позволяет разложить на синусоиды (теперь уже - с произвольными частотами) _любую_ функцию.

> Разве что я не понимаю, зачем произвольные ω? Если можно брать бесконечный ряд, то можно обойтись целыми. Обычный же ряд Фурье.

Сумма синусоид с "целыми" частотами (то есть обычный ряд Фурье) будет - очевидно - периодической функцией. Вот именно поэтому для представления непериодических функций требуются произвольные омеги.
[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 12:38 pm
(Link)
Может Вы интеграл Фурье имели в виду (f(x)=интеграл(a(ω)sin(ωx)+b(ω)cos(ωx))dω)?

Периодичность большой роли не играет. С ней можно по-разному бороться. Нам же плевать на значения функции за интервалом, так что можем чуть сузив считать её периодической.

Упражнения какие-то по успешному приближению реально непериодических функций вроде бы в ВУЗе делали, хотя детали трудно вспомнить.

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

Хотя это и может вызвать теоретические проблемы ("почти секунда" должна позволять продолжить функцию до периодической без появления высоких частот), они не кажутся принципиальными, по сравнению с тем, что метод гораздо более грубый, чем предполагаемый в теореме Котельникова: для сколь угодно близкого приближения нужны слагаемые, соответствующие сколь угодно высоким частотам, а я когда-то сглючив предлагал использовать только первые несколько членов (до частоты-ограничения), так как неосмотрительно решил, что это халявная теорема.

В общем, ряд Фурье не годится, раз есть sinc-и, а остальное просто неважно.

(Хотя если я не завязну и продолжу изучать вопрос, может оказаться, что человеку фазы не столь важны [они не могут быть очень важны, иначе расположению колонок уделяли бы больше внимания, например], частоты важны только с определённой точностью, так что обрубок ряда Фурье вполне сойдёт. Сейчас я об этих требованиях к слышимому звуку понятия не имею.)
From:[info]anonymous
Date:July 8th, 2008 - 12:50 pm
(Link)
> Нам же плевать на значения функции за интервалом,

Вообще-то, когда говорится о том, можно точно восстанвить функцию (с огр. спектром) по дискр. отсчетам, имеется в виду - по бесконечному кол-ву отсчетов. По нескольким отсчетам (то есть по данным с конечного интервала) точно восстановить ничего нельзя. И sinc'и не помогут.

[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 01:41 pm
(Link)
И sinc'и не помогут.
Да. Теорема, конечно, хорошая, но много непонятного для практики.

Потому предстоит изучать, на каком этапе на практике на что забивают…

Собственно, звук, который появился и исчез,— вроде бы уже проблема.

То есть, грубо записывая: rect(ax)*sin(bx) имеет неограниченный спектр (без постоянных множителей — сумма двух sinc-ов, вроде, они не обнуляют друг друга обычно, так что носитель неограниченный). Потому что преобразование Фурье показывает не отсутствие присутствия волн высокой энергии, а нечто другое.
From:[info]anonymous
Date:July 6th, 2008 - 08:18 am
(Link)
> На самом деле же сигнал теоретически восстанавливается точно, но совсем другими функциями.

> строим базисные функции, у которых равны нулю все измеряемые значения, кроме одного, да и частот высоких нет.

Вас, кажется, смутила функция sinc x = (sin x)/x, которая часто всплывает при изложении теоремы Котельникова. Действительно, у нее один отсчет - 1, остальные 0, и любую последовательность отсчетов можно представить в виде суммы sinc'ов (а то, что у sinc'а в спектре нет больших частот, известно). Однако, все это - полезные побочные эффекты теоремы Котельникова, но никак не ее суть.
[User Picture]
From:[info]ppkk
Date:July 6th, 2008 - 12:34 pm
(Link)
Скорее меня смутило, что сигнал на выход сложнее создавать по этим sinc-ам, чем по синусоидам.

А в чём суть?

Мне хочется проследить актуальную для популярной аппаратуры (на компьютере) цепочку звук->оцифровка->звук на вопрос критических к качеству узлов (грубо говоря: покупать усилитель за 100000 р. и колонки за 50000 р. для встроенной звуковой карты или звуковую карту за 10000 р., а колонки за 100000 р., с усилителем за 40000 р. [у меня звуковая карта дешевле 10000 р., наушники дешевле 10000 р., а усилитель-колонки продвинутые я покупать не планирую вообще, хотя о преимуществах колонок перед наушниками читал: типа, тело чувствует частоты до 500 Гц неплохо, наушники же только на уши]).

На данный момент понята только теорема Котельникова. Я не оценил даже эффект от "глубины" звука супротив повышения частоты дискретизации (как соотносятся ошибки округления?).
From:[info]anonymous
Date:July 6th, 2008 - 03:30 pm
(Link)
> А в чём суть?

Теоремы Котельникова? В том, что функция, не имеющая в спектре частот выше (или равных) F, то она однозначно задается своими дискретными отсчетами, взятыми с частотой 2F. Если частота оцифровки меньше 2F - неизбежны потери; а с другой стороны, цифровать сигнал с большей частотой нет никакого смысла - доп. информации мы уже не получим. Вот, собственно говоря, и все.

> Я не оценил даже эффект от "глубины" звука супротив повышения частоты дискретизации (как соотносятся ошибки округления?).

Вещи это - как мне кажется - малосвязанные, так что сравнивать их "супротив" особого смысла нет.
[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 12:14 pm
(Link)
то она однозначно задается своими дискретными отсчетами, взятыми с частотой 2F
Кстати, неравенство строгое (с частотой F корней подходящей синусоиды как раз хватит, чтобы спутать её с нулём).

Но этот смысл я понял.

Вещи это - как мне кажется - малосвязанные, так что сравнивать их "супротив" особого смысла нет.
Дело в том, что при приближённых вычислениях то, что мы приближённо восстановим, будет не исходным сигналом.

Если бы "глубина" была "бесконечной" (результат измерения — точное вещественное число), то понятно, что информация о сигнале полная.

Если же дискретизация не только по времени, но и по разделению на уровни сигнала, то возникает вопрос в возможной величине ошибки (да и точные значения измерений могут сами по себе не быть значениями сигнала с ограниченной частотой, например). Поэтому мой вопрос — как влияют на точность дополнительные (в результате увеличения частоты дискретизации) измерения, супротив увеличения "глубины".

с другой стороны, цифровать сигнал с большей частотой нет никакого смысла - доп. информации мы уже не получим.
В реальных условиях (кроме абзаца выше), польза от увеличения частоты дискретизации может быть в упрощении работы: может вычислительные методы попроще удастся использовать. Эта проблема мне неясна, но ссылки на неё я неоднократно встречал (для того, чтобы оценить её существенность, надо узнать, как реально восстанавливают звук по сохранённым измерениям).
From:[info]anonymous
Date:July 8th, 2008 - 01:45 pm
(Link)
> Кстати, неравенство строгое (с частотой F корней подходящей синусоиды как раз хватит, чтобы спутать её с нулём).

Так я, вроде бы, так и сказал "не имеющая в спектре частот выше (или равных) F".

> Поэтому мой вопрос — как влияют на точность дополнительные ... измерения, супротив увеличения "глубины".

Если очень грубо - то удвоение частоты дискретизации даст тот же эффект, что увеличение "глубины" на 1 бит.

> В реальных условиях

В реальных условиях мы и не имеем дело с бесконечным числом идеально точных отсчетов. И сигналов, в спектре которых нет высоких частот в реальных условиях тоже не бывает. Теорема Котельникова совсем не про реальные условия. Как и sinc'и.

И в реальных условиях польза от увеличения частоты дискретизации очень даже есть, кто бы спорил.

> как реально восстанавливают звук по сохранённым измерениям

Сохр. измерения описывают некий ступенчатый сигнал. Если такой сигнал пропустить через фильтр высоких частот (который пропускает все, что ниже половины частоты дискр. и режет все, что выше), то в итоге должен получиться исходный сигнал.
[User Picture]
From:[info]ppkk
Date:July 8th, 2008 - 02:19 pm
(Link)
Так я, вроде бы, так и сказал
Да, я бессмысленное повторение написал.

Если очень грубо - то удвоение частоты дискретизации даст тот же эффект, что увеличение "глубины" на 1 бит.
Почему? "Бухгалтерски" по-разному можно подсчитать.

И в реальных условиях польза от увеличения частоты дискретизации очень даже есть, кто бы спорил.
Ну как, спорят. Lavry вот спорит (попал в источники Википедии, хотя заинтересованное лицо): типа, бессмысленно, а точность, якобы, падает на высоких частотах, а данные больше места занимают.

Сохр. измерения описывают некий ступенчатый сигнал. Если такой сигнал пропустить через фильтр высоких частот (который пропускает все, что ниже половины частоты дискр. и режет все, что выше), то в итоге должен получиться исходный сигнал.
Ссылка хорошая с подробностями есть (какие фильтры, как "подравнивают" ступеньки)?

(Я, кстати, как-то писал программу для вычисления параметров, чтобы делать фильтры частот: фигня, для диплома чьего-то [научный руководитель, кстати, и не требовал от защищающегося собственноручного написания программы], но помню, что вопросы устойчивости не волновали никого нисколько, как и многое другое.)
From:[info]anonymous
Date:July 8th, 2008 - 05:17 pm
(Link)
> Почему?

При увеличении глубины на 1 бит амплитуда шума квантования становится в 2 раза меньше. А при увеличении частоты дискр. в 2 раза половина этого шума оказывается в высокочастотной области, и его можно отфильтровать. И в том и в другом случае энергия шума кв. в интересующей нас полосе частот становится в два раза ниже.

Но на практике все не так просто, разумеется.

> Ссылка хорошая с подробностями есть

Если есть, то я о ней не знаю :-(