Pull to refresh
12
0
Send message
У сигнала кроме частоты есть ещё амплитуда и фаза.
Для того, чтобы было «нормально», всё должно сохраняться.

Прекрасно, что синусоида осталась синусоидой. Хорошо, что её частота не поменялась.

В моём примере выше плохо — что синусоида во-1, немного усохла и во-2, на фронтах у неё ещё и фаза съезжает (и частота тоже).

На каком основании фаза и амплитуда у вас считаются не важными? Они важны точно так же, как и сама частота звука.
Они поменялись => сигнал НЕ восстановлен.

Насчёт частоты в 20 КГц и названия «ультразвук» инсинуации вообще прошу прекратить.
Прямо сейчас сделал себе генератор на 21КГц. Совершенно точно могу заявить, что этот звук — СШЫШНО.
Если есть какие-то сомнения в моей честности или чистоте эксперимента, готов повторить эксперимент в присутствии любых людей.
А про ЦАП очень хорошо, что тут всплыло.

Вот ЦАП повысил свою внутреннюю частоту и… что он сделал дальше?
Посчитал интегралы и свёртки для восстановления сигнала?

Сразу скажу, что в этом нет ничего невозможного. Современные DSP вполне могли бы с этим справиться. Вполне вероятно, что в профессиональном оборудовании это используется.

Но не в плеерах за 3 копейки, конечно же.

Вот это и называется «можно» восстановить. Весь вопрос — восстанавливается ли сигнал в действительности.

Это исследование показывает, что программа Audacity таким образом сигнал НЕ восстанавливает.

Ок, примем к сведению. Но это ещё не победа и не поражение.

Давайте найдём хоть одну софтину или железяку, которая это делать умеет.
Есть хоть кто-то, кто это «можно» превратил в «делает»?
Лишнее?!

Сигнал — разный, о чём речь? :) Или по картинкам это не очевидно?

Каким образом я что-то показал про фильтры, обрезающие частоты, если я их не применял ни разу?
Собственно, в этом и вопрос: делает ли хоть кто-то «не простую интерполяцию», причём в реальном времени и с приемлемыми задержками около 3-5 мс.
что выдаст резисторная матрица тут?
image
Ну хорошо, если автор не хочет делать такой эксперимент, его сделаю я :)

Шаги:
1. Создаём трек с частотой дискретизации 192 КГц
2. Генерим сигнал частотой 21200 Гц
3. Ресемплируем его в 44100 Гц, которых достаточно всем, а больше — не надо, потому что сигнал «можно» восстановить (но кто это делает?)
4. Восстанавливаем частоту дискретизации в 192 КГц. По задумке автора, сигнал должен стать идентичным первому.

Смотрим результат:
image

Как-то первая и третья волна, на первый взгляд, не совпадают, правда?

Должен ли я сделать вывод о том, что для простых ЦАП, всё-таки, повышение частоты доскретизации — самый простой способ восстановить форму волны?
Ибо без Котельникова и свёрток тут иначе не обойтись.
А есть какие-то данные о том, как работает конвертор частоты оцифровки в Audacity и как работает ЦАП на компе и в плеере?

Для проверки, на сколько там реально используется теорема Котельникова и на сколько там действительно жёсткая математика, можно сгенерить в 21990*10 Гц синусоиду, преобразовать её в 22000 Гц и потом попробовать восстановить? Там должны получиться биения — это непростой случай.

Я далёк от современных разработок звуковых систем, но не ужели там ЦАПы уже на столько мощные чтобы в реальном времени считать свёртки и восстанавливать такие сигналы?

Тут же вопрос, мне кажется, не столько в теоретической возможности, а в том, происходит ли это реально в моих наушниках.

Вот например если тупо повысить частоту дискретизации, то никакого интеллекта в ЦАПах вообще не понадобится. Можно будет тупо играть сэмплы подряд. Может быть, в этом смысл?
Он может быть разный, но он не всегда разный.
А например классическай музыка, в идеале, должна вообще одинаково звучать.

Если взять отдельно звук ударных или смычковых инструментов — он живой очень хорошо слышен.
Ну кто так делает?
Обрезал высокие частоты, а потом проверил, что их нет :)

Надо было сделать так:

1. Записываешь звук на «высокой» частоте с реального источника.
2. Из него методом выборки каждого N-ного сэмпла делаешь файл на «традиционной» частоте.
3. (собственно, в этом — суть проверки) проигрываешь два файла через одну и ту же систему (а туда входит ЦАП + динамик/наушник) и уже там пытаешься анализировать разницу — либо ухом либо инструментально.

От себя добавлю что ещё не видел ни одной системы воспроизведения звука чтобы я перепутал записанную музыку с живой.
Наверно, это были записи недостаточно хорошего качества или не очень хорошие колонки ;)

Честно говоря, мне и самому интересно убедиться в том, что «44 КГц достаточно всем».
Прежде чем ударяться в тонкости измерений, хотелось бы для начала обмануться самому на тему «ух ты, а я думал, это — живая музыка». После этого было бы, что обсуждать.
Ну а что вы думали, «роту программистов» набирать надо.
lenta.ru/news/2013/07/04/programmers/
трюк с бесплатностью не поможет. доверие теряется один раз.
Для меня prostopleer утратил доверие в тот момент, когда за прослушивание того, что я сам туда залил, потребовали деньги.

История ужасная, да.
Да вы не переживайте так.

Просто сейчас мой знакомый ищет хостинг и кинул мне ссылку на этот пост со словами «вау, смотри».
Я не понял прикола и пытаюсь понять, в чём тут дело.

Спасибо за подробное разъяснение сразу двум потенциальным клиентам.

Да, и после общения с вами я снова вспомнил, почему я сбежал от русских хостеров к немцам ;) Спасибо за напоминание.
Давайте посмотрим:
1.5 года назад я взял сервачок у hetzner:

Проц: i7-2600 Quadcore (почти такой же)
Память: 16 GB DDR3 (в 2 раза больше)
Диск: 2 x 3 TB SATA 6 Gb/s HDD 7200 rpm Software-RAID 1 (в 3 раза больше)
Пинг до Москвы 14 мсек (а сколько у вас?)
Реакция на все проблемы – моментальная (немцы всёж)
И главное – денег я плачу 41 евро в месяц (в 2 раза меньше!)

Я как-то не вижу «халявы», в чём суть?
В чём уникальность по сравнению с (например) hetzner?
Мне кажется, без вопросов, которые он там сам себе задаёт, перевод будет неполным ;)
Итак, с того же сайта gusc.lv/2012/11/im-writing-my-own-os/

Мои исследования:

Как написать свой MBR и записать его на диск под Windows

Как на Си написать функцию ядра
Как написать naked-функцию на Visual Studio под Windows

Непонятно, как перейти от MBR к Bootloader и к ядру

Неясно, что такое GDT и IDT и как это выглядит на Си и Ассемблере

Как переключиться в реальный режим?

Как обрабатывать прерывания на Си? Это что, какие-то callback-и, из которых надо вернуть значение или надо обязательно что-то написать на ассемблере?

Можно ли написать MBR на Си? Достаточно ли просто написать org 7c00h и какие-то специальные инструкции на ассемблере или же это можно написать на Си, а внутри написать что-то на ассемблере?


Какая частая ошибка: когда не знаешь темы, это кажется простым. Сложности начинаются когда начинаешь глубоко вникать в тему.
Или, по другому, «чем больше знаешь, тем шире граница незнания».

Наверняка, в каких-то областях этот «зрелый 29-летний юноша» действительно созрел, но очевидно, это не область операционных систем :)
У меня компьютер был с детства практически безгранично.
Вырос программист.
А из «среднестатистического» ребёнка гений вырастать и не должен.
Я использую cv.
Есть ещё $CDPATH, но мне он кажется небезопасным.
В принципе, в zsh очень неплохо сделаны саджесты, но всё никак на него не перейду. Да и на серверах его часто нет, не хочется перепривыкать.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity