Подкинуть наверх
Стол регистраций, быстро и безболезненно Присоединиться Идентификация
Ищем по постам, комментариям и картинкам
Nibler.ru >> Текст >> Блеск и нищета теоремы Котельникова

Блеск и нищета теоремы Котельникова



Warning: много букофф. Warning_2: гуманитарии и школьники проходим мимо, ибо неинтересно.

Данный текст содержит
несколько нецензурных
выражений. Вы можете
остановиться прямо здесь.


Часть первая. Из жизни.

Начнем с двух маленьких зарисовок из жизни, если в них что-то и преувеличено, то самую малость….

В ВУЗе…. пара по телемеханике (для тех, кто не в курсе – дисциплина такая, занимающаяся не телевизорами, а передачей сигналов на расстояние)

Преподаватель, Иван Иванович Иванов:

– Начинаем наше очередное мучение. Прежде, чем двигаться дальше, давайте проверим, что Вы знаете, – раздает три листочка с рисунком по рядам:

– Начинаем наше очередное мучение. Прежде, чем двигаться дальше, давайте проверим, что Вы знаете, – раздает три листочка с рисунком по рядам:kotelnikova-teoremy-nischeta-
– Итак, у Вас есть рисунок с цифровым представлением сигнала в двух масштабах. Чтобы Вы не путались в отсчетах, соседние точки я соединил. Иванов! Нет, Иванов – это я. Петров, что это за сигнал?

– Это график амплитудной модуляции.

– Ответ неверный. Два. Добавлю балл, если посчитаете несущую частоту, модулируемую функцию, глубину модуляции. Ищите листочек…. Кто помнит математику? Какие еще будут мнения? Сидоров!

– Это биения суммы двух частот.

– Математику помнит, но ответ неверный. Два. Добавлю балл, если определите, какие частоты и их амплитуды. Кто еще? Веревочкина, Вы что думаете?

– Если это цифровые отсчеты, то надо воспользоваться теоремой Котельникова, которая говорит, что любой стохастический сигнал, спектр которого выше определенной частоты равен нулю, может быть восстановлен по цифровым отсчетам, взятым через одинаковые промежутки времени, частота следования которых более чем в два раза должна превышать верхнюю частоту в спектре исходного сигнала.

– А что такое «стохастический»? И как восстанавливать?

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

– Достаточно, Веревочкина. Молодец. А Вы? Неучи! Смотрите, как девушка материал знает. Цените и берегите ее…. А Вы, Веревочкина, как на такую не женскую специальность попали? По призванию или по незнанию? Физику в школе любили?

– Физику любила, – опустив глаза, ответила Веревочкина.

– Вот блин, уважаю! Можно сказать, кол-л-лега! Пятерку Вы заработали.

– Ну и кто нам восстановит сигнал, пользуясь теоремой Котельникова?... Бывший медалист, настоящий отличник, будущий краснокнижник и педоровик производства, ой! Ну, Вы правильно поняли, давай, Вася. На своем программируемом калькуляторе быстренько. Восстановишь сигнал?

– Иван Иванович,… у меня на калькуляторе только 15 ячеек памяти, а точек больше сотни. Надо ведь сразу все точки обсчитывать, чтобы значения между отсчетами получить…

– Ну-у-у Вася…. Отвечать придется опять Иванову. На представленном графике был синус 22килогерца, оцифрованный с частотой 44100 Герц, т.е. практически близко к частоте Найквиста. Веревочкина, заткните уши…. Ага. В народе говорят: «Дай дураку *** стеклянный, он и *** сломает, и руки порежет!» Вася, откройте Веревочкиной уши. Так вот, Теорема Котельникова дает Вам очень мощный инструмент для восстановления сигналов по их отсчетам, а Вы им даже воспользоваться не можете. Как Маяковский говорит:

«Единица – ноль! Единица – вздор!

Один студент, даже самый важный

Не смог восстановить простой высокочастотный синус,

А если вместо синуса будет мат пятиэтажный?»

Вот так-то…. Государство тратит на Вас деньги. Учит. Я Вас учу! Вопросов на лекциях никаких не возникает, и внятных ответов от Вас тоже никаких. Похоже, немногие доживут до следующего семестра…. в качестве студентов…. Кстати, для тех, кто не понял: «единица-ноль-единица-вздор-один» – это Вам Маяковский напоминает, что в следующем семестре мы будем заниматься помехоустойчивым кодированием. Ладно, новая тема. Пишите….

Спустя лет 10….
разговор с одним из немногих, кто пошел работать по специальности….

– Как жизнь, работа?

– Да вот, первый раз развел плату в 4 слоя.

– А что у нас в России такие изготавливают?

– Да сколько хочешь, только деньги плати.

– А зачем в 4 слоя? Материнскую плату для компьютера делаешь?

– Да нет. «Матери» в 6 слоев разводят. Просто схема сложная, а приборчик маленький должен быть.

– Я гляжу, Вы тут приборами упакованы по самое «нехочу». Вон даже осциллограф цифровой…. Кстати, Ваню-Ваню помнишь? Теорему Котельникова? Синус по двум отсчетам восстанавливаешь?

– Да, Ваня-Ваня – веселый мужик. По двум? Больной что ли? Минимум пять надо. Это только чтобы догадаться, что сигнал может быть синусом. Реально – два десятка, ну полтора на период нужно. Тогда и выводы делать можно.

– А как же Х стеклянный, то есть теорема Котельникова?

– Забей. Мы цифровые осциллографы в основном для периодических сигналов используем. На периодическом он и гигагерц тебе покажет хотя АЦП 100 мегагерцовые стоят, дай только «синхру», откуда считать надо, а так, если аналог, да случайный, то на цифровом 100 мегагерцовом больше 10 мегагерц ничего не увидишь, вернее ты можешь увидеть совсем не то, что есть на самом деле. Вон, возьми аналоговый осциллограф на двести мегагерц и смотри чего хочешь до двухсот мегагерц….


Часть вторая. «Даешь натур продукт!»

Итак, что будем делать? Поверим на слово инженеру или проверять будем? Конечно, проверять! Кто же сейчас на слово верит? Поехали. Частота следования отсчетов на каждом из представленных ниже рисунков 44100, как в CD-audio. Частоты сгенерированы в редакторе: 10кГц (4.41 отсчетов на период), 2.9кГц (15.21 отсчет). Еще есть 22кГц (2.0045 отсчетов) выше по тексту, но их Вы уже видели.


kotelnikova-teoremy-nischeta-Что мы видим на 10кГц? На синус слабо похоже. Сигнал все еще отдаленно напоминает или биение частот или модулированный сигнал… Перепады пиков амплитуд около 2дБ… Но, если мы заранее знаем, что должен получиться синус, то можно увидеть и его.

Теперь спросим у инженера, занимающегося аналоговой техникой уже как лет 30. Какова будет его оценка, если мы предложим ему «наш генератор синуса»?

«Ну, что? Синус. Слегка замодулированный. Нелинейщины мунимум процентов 20%. Как генератор точно не пойдет.»

Теперь предъявим этому же инженеру 2.9 кГц:
kotelnikova-teoremy-nischeta-– Зае, хороший синус. 5% нелинейщины есть. Смотри сам, на пиках искажения, наверно опять модуляция или схема из режима выходит по-хитрому, так как явных ограничений на пиках нет. Таким генератором я тоже пользоваться не стану.

– А почему пять процентов? Почему пользоваться не станешь?

– Если на экране осциллографа видно отклонение от синуса на глаз, то гарантированно 5% есть. Если мне генератор такой «синус» дает, то как я свои схемы по нему настраивать буду?

Пора переходить к натурным испытаниям. Проверим ЦАП. Может там происходит восстановление сигнала по Котельникову? Для проверки опять же возьмем 22000 Гц синус (но только для того, чтобы видно было «на глаз», без привлечения мат аппарата).

Записываем CD-audio, пускаем получившийся сигнал на DHA-S-002, где стоит ЦАП CS-4391. Сигнал снимаем с помощью EMU-1212M, но уже в формате 192000 Гц * 24бит. Предъявляю рисунок:kotelnikova-teoremy-nischeta-Сильно отличается от рисунка в первой части статьи? Как говорится, те же яйца, но вид сбоку (масштаб немного не совпадает с первым рисунком в статье. Не старался я точно масштабы в рисунках сохранять, главное - принцип).

Еще один эксперимент. Может EMU1212M даст лучший результат? Ведь там целый мозг стоит – DSP. Да и ЦАП получше – CS4398 – один из лучших, чем гордится производитель. Только вот вопрос: «А чем снимать?». Да простым советским аналоговым осциллографом и снимем (С1-114/1). Фото экрана осциллографа ниже. Не очень качественно, так как штатива для фотоаппарата под рукой нет, но суть понятна. Опять те же яйца….
kotelnikova-teoremy-nischeta-Есть такие «товарищи», которые утверждают, что самое важное в ЦАПе – это обвязка. И, в свете этого утверждения, «правильные» АЦП и ЦАП дают «совсем другой» звук, не то, что можно услышать в «дешевых» ЦАПах.


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

Вывод: Ни один ЦАП не восстанавливает сигнал, пользуясь теоремой Котельникова, а только с ее помощью можно получить исходный аналоговый сигнал.

Часть третья. Увидим ли блеск?

Раз никто по Котельникову не считает, тогда сами попробуем? Восстановим аналоговый сигнал из цифрового, записанного на CD-audio.
kotelnikova-teoremy-nischeta-t – текущее время, n – номер отсчета, T – период, через который берутся отсчеты 1/44.1кГц = 22.7мкс.

Формула есть. Теперь необходимо определиться, сколько нужно промежуточных значений между соседними отсчетами. Если инженеру надо 20-15 отсчетов для синуса, то почему слуховой системе меньше? Чем она хуже инженера? А еще, в качестве аргумента, могу отправить Вас к статье о возможностях слуховой системы, где наглядно показано, что предел разрешения слуховой системы находится на уровне 250кГц. Опять же это предел не «двух дырок в голове», а именно слуховой системы, ее «мат. аппарата». Куда деваться? Будем брать 15 отсчетов.

Да, еще раз повторю, мы восстанавливаем музыкальный сигнал, который по природе своей является именно стохастическим (случайным).

Теперь смотрим внимательно на формулу. Для получения любого промежуточного значения нам нужна сумма ряда от -бесконечности до +бесконечности. Что делать? Попробуем снизить количество учитываемых отсчетов в сумме ряда до какого-нибудь конечного числа.

Для этого произведем такую оценку: через какое время пик (максимальное значение) функции станет меньше, чем единица младшего разряда.

Сигнал у нас 16 разрядный (CD-audio). Производим оценку:kotelnikova-teoremy-nischeta-Здесь 0<t<T, синус во времени меняется от -1 до +1 (заменяем на 1, что тоже неверно с точки зрения математики, такой ряд будет расходящимся). Разрешая неравенство относительно n, получаем, что надо учитывать, как минимум, 20860 отсчетов. Будем дальше расстраиваться? Формула для восстановления требует от нас брать отсчеты не только назад, но и вперед, значит надо учитывать уже 41720 отсчетов.

Попытаюсь объяснить более подробно. Относительно текущего времени, нам надо использовать для восстановления текущего значения сигнала 20860 прошедших отсчетов и 20860 будущих отсчетов, то есть нам необходимо «окно» с отсчетами вперед и назад относительно текущего времени. Как только мы добираемся до времени t=T, мы отбрасываем последний отсчет из прошедшего времени и добавляем к рассмотрению следующий отсчет из будущего времени. Именно по этой причине текущее время лежит в пределах 0<t<T.

Мы получили "идеальную" математическую модель идеального ФНЧ для формата 16/44. Этот фильтр невозможно реализовать в аналоге, но методом цифровой обработки вполне можно посчитать любой недостающий отсчет между двумя соседними дискретами.

Дальше считаем? Оценим необходимые нам вычислительные мощности. Еще раз смотрим на формулу для восстановления сигнала, и делаем вывод, что для получения значения одного отсчета необходимо выполнить 6 действий. Для получения необходимого количества (15) промежуточных значений в реальном времени необходимо выполнить:

N=15*(6+1(сумма ряда))*41720*44100 = около 193 млрд. операций в секунду.

Сколько Ваш компьютер операций в секунду выполняет? А большая часть вычислений должна производиться как операции с плавающей запятой?

Слукавил? Самую малость. Реально, это оценка сверху. Если использовать таблицу готовых sin(x)/x, вычислений нужно меньше: одно умножение и одно сложение на каждый отсчет из «окна».

N=15*2*41720*44100= 55 млрд. операций в секунду

Наверное, алгоритм можно еще оптимизировать. Но остается вопрос: на чем считать будем? Процессор, находящийся внутри Вашего компьютера позволяет выполнять 2-4 млрд. операций в секунду, причем для целочисленных вычислений, а нам нужны вычисления с плавающей запятой, требующих больше одного такта процессора на вычисление одной операции.

А может тогда не брать 15 отсчетов, а взять один? Тогда поделите последнюю цифру на 15, получите около 3.7 млрд. операций с плавающей запятой – все равно очень много.


Часть четвертая. Где свет? В конце тоннеля?


1. Возможно, читателю не дает покоя мысль: «Автор взял синус 22кГц, а он для прослушивания музыки и не нужен, значит очередную страшилку написал».

Да. Синус 22кГц взят только для примера. В действительности, речь идет о музыкальных сигналах, которые по природе своей являются случайными переходными процессами. Синус можно восстановить и каким-нибудь интерполятором, а вот с музыкой так не получится. Надо «честно считать», как Котельников «прописал».

2. То, что автор предлагает восстанавливать с помощью теоремы Котельникова, на самом деле «мизер не ловленный». Оно и не слышно и не нужно.

Искажения, вносимые процессом «оцифровки» с некоторой частотой (44) тем заметнее, чем менее стационарен дискретизируемый сигнал. Вы можете это воспринимать как «медицинский факт», либо, если аргументов, приведенных в статье недостаточно, проверять самостоятельно.

Я утверждаю, что в оцифрованном для СД звуке нет очень многого, из того, что Вы можете получить из аналоговой записи. На аппаратуре соответствующего класса в этом легко убедиться самостоятельно. А в аналоговой записи нет многого, что можно услышать в живом звуке. В этом тоже легко убедиться, купив билеты на концерт классической музыки.

3. Теорема Котельникова для нас сейчас как «дураку игрушка стеклянная». Красиво, блестяще, исчерпывающе. Хороший инструмент, которым можно и нужно пользоваться. НО.... идеальный ФНЧ невозможно реализовать в аналоге. Это раз. И для цифровых моделей в представленном в статье виде на сегодняшний день ресурсов не достаточно. Это два. Именно в этом смысле и проявляется её нищета. (см ниже другой взгляд на проблему)

4. Гораздо более простым и изящным выходом является использование более быстродействующих ЦАП-АЦП. И при записи и при воспроизведении. Какие именно и почему, я напишу в другой статье, которая будет называться «Новый цифровой музыкальный формат»

5. Для самых внимательных и просвещенных читателей, которые знают, что на выходе ЦАП стоит фильтр низких частот. Да, там действительно стоит фильтр. Причем такой… внушительный фильтр, порядка четвертого, не меньше (именно такие фильтры рекомендуют ставить производители ЦАПов). А на входе АЦП тоже фильтр. И тот и другой имеют свои недостатки. Даже правильнее сказать: «вносят свои искажения». Тема эта не маленькая, и её также стоит вынести за пределы данной статьи.


Другой взгляд на проблему:
Естественно существуют современные методы обработки сигналов, и ту же теорему Котельникова можно использовать не напрямую, как в статье, а в виде интерполяционной формулы Уиттекера-Шеннона.
Формула в таком виде представляет собой свертку гребенки Дирака с функцией sinc. А еще существует БПФ, позволяющее вычислять свертки сигналов "на лету"... Дело за малым, - ткнуть в тот ЦАП, где это реализовано.

Я не ставил перед собой целью найти оптимальный алгоритм или придумать новый, еще более качественный, чем существующие ныне.

Приведенные в статье формулы реализуют идеальный цифровой ФНЧ. Не оптимально? Да. Идеальный ФНЧ вообще относится к классу не реализуемых фильтров, т.к. требует учета всех значений сигнала за весь бесконечный период наблюдения. Я представил такой вид приближения фильтра к идеалу.

Нравится? Жми:

Поступило от Акустик 8 мая 2012, посмотрело 2943 чел.

12



Похожие посты
  • 120

Человечество живет в космическом пузыре

  • 131

Ответы на вопросы при собеседовании

  • 59

4 мифа о математических вероятностях

  • 43

Суровая и объективная реальность

  • 145

Занудно о непонятном: Великая теорема Ферма

Комментарии12 Комментарии Вконтакте
Привет!
Понравился сайт? Тогда давай к нам! Моментальная регистрация
У нас куча весёлых людей! А еще енот и две черепахи.
Комментарии через Вконтакте, для тех у кого не доходят руки зарегистрироваться. Но Вконтакте-то вы точно есть ;)
Присаживаемся поудобней, заполняем формы, бланки и т.п.
Закрыть окошко
Моментальная регистрация через социальные сети
Или обычная регистрация на сайте
Пошель
Слыш, пацанчик! Ты с какого района? документики есть?
Закрыть окошко
Моментальный вход через социальные сети:
Или проверка личности

Введите ваш логин и пароль в форму

Пошель

О сайте Немного о нашем сообществе и ответы на вопросы Мы в соц.сетях:
Вконтакте   Facebook   Twitter   Одноклассники
Обратная связь    Багоприемник