Знаете, я люблю фортепиано. Фортепиано именно так и настроено (равномерно темперированный строй). Поэтому в принципе, да можно услышать биения, но фальши я например не чувствую.
А я наоборот, никогда не любил фортепиано — по причине того, что оно звучало как-то «неправильно». Не фальшиво, а скорее дисгармонично, сочетания нот в аккорде не складывались в единое целое.
Иначе десятичные ошибки могут быстро накапливаться.
Ошибки вычислений не зависят от формата представления числа. Любое округление по определению не устраняет ошибки а наоборот, вносит их. Таким образом, ваш «правильный» алгоритм округления лишь вносит дополнительные ошибки. Вы можете убедиться в этом самостоятельно, промоделировав вычисления с накоплением ошибок и сравнив результаты.
Вот, например, устав от полемики о волшебных свойствах сферического корпуса, я сделал модель распространения волны в сфере. Её поведение оказалось несколько отличным от того, что ожидалось — но главное, что никакого подавления стоячих волн внутри корпуса не обнаружилось:
А вот как сфера излучает в пространство (на нескольких отдельно взятых частотах), и тоже никакого чуда не обнаружилось:
Я знаком с Гапоненко (к нему претензий нет), и с многими современными акустико-строителями (заочно). Печальная истина такова, что современные любители высококачественного звука не особо любят вникать в теорию и вообще развивать технологии по-взрослому, а не просто перебирать пропитки для диффузора. Я уже ныл раньше в теме про NXT — товарищи могут построить излучатель звука, но не в состоянии снять с него реальные параметры — а каком моделировании тут можно говорить?
то произойдет не раньше момента, когда будут теоретически описаны основные процессы, происходящие в трансмиссионной линии.
Численное решение волнового уравнения разностной схемой не представляет никаких проблем — современные мощности и память позволяют делать это даже на бытовых компьютерах. Это же, блин, акустика, а не космическая ракета или адронный коллайдер. А процессы обычные: укладывается длина волны нацело в длину волновода — хорошее усиление, не укладывается — плохое, интерферирует в противофазе — не усиливается вообще.
Мне кажется, что самые интересные вопросы Вольфрам упустил. Ну например:
— Почему именно правило 30? Что в нём такого, что выделяет его среди остальных?
— Можно же рассматривать не просто средний столбец, а каждый ряд эволюции как число, записанное в бинарном формате — получаем последовательность целых чисел. Какие у неё свойства? Можно ли по n-му числу найти предыдущее? Можно ли по n-му числу определить, существует ли предыдущее?
Миллиард сэмплов не понадобится, т.к. аудио-сигнал ограничен по частоте не только сверху, но и снизу. И с его интегрированием также возникнут всё те же сложности — он будет уходить в бесконечность из-за погрешностей вычислений. Избавится от длинного «хвоста» таким образом не получится. Сэкономить тут можно только перейдя на IIR (БИХ) фильтры — опять же, ценой пульсаций в АЧХ. Ещё можно попробовать факторизовать свёртку.
Во первых, розовый, как и белый шум — это математическая абстракция, поэтому никакого «точного» алгоритма существовать не может — мы можем говорить лишь о некотором приближении. Строго говоря, последовательность независимых случайных значений не является белым шумом — так как она дискретна, в то время как белый шум непрерывный и имеет бесконечный спектр.
Далее. Дробное интегрирование/дифференцирование — тема, безусловно, интересная — но в данном случае её привлечение избыточно. Если вы попытаетесь синтезировать brown-ский шум (да, я тоже называю его коричневым) непосредственно через интегрирование случайных величин — он через некоторое время «улетит» в бесконечность и никаких гор не получится.
Хотите розовый шум с более «прямым» спектром? Да не вопрос — синтезируйте его посредством FIR-фильтра, которым фильтруйте белый шум. Чем больше у него будет отсчётов — тем ближе он будет к идеальному. Например, в 1024 отсчётов и минимально-фазовом исполнении его импульсная характеристика будет выглядеть примерно так:
и спектр:
Завал на низких частотах неизбежен — в идеальном случае значение постоянной составляющей фильтра равно бесконечности (1/sqrt(f) при f=0).
Интересно, что в этой работе (с ссылкой на другую) утверждается, что первый способ с двойным интегралом в полярных координатах — это не «метод», а «трюк» — был придуман специально для гауссианы и для нахождения других интегралов неприменим. Не зная этого, наивный школьник после прочтения этой статьи будет раз за разом пытаться его применить к другим интегралам с одним и тем же результатом — никаким, вопреки утверждениям автора.
Это в очередной раз показывает, что нужно крайне осторожно относиться к знаниям, полученных из популярных статей типа этой. Нужно отделять задачи «найти значение интеграла», которой решается за 5 секунд в любой современной системе компьютерной алгебры, от «а откуда там корень из пи?». Собственно, именно так я (когда-то давно) и узнал о существовании функции ошибок — Wolfram выдал её в качестве ответа и пришлось разбираться, что за erf такой. Заодно узнал, что если интеграл не берётся в элементарных функциях — это не приговор и существует множество функций специальных — гипергеометрических, эллиптических и прочих, которые с вычислительной точки зрения ничем не отличаются от обычных.
При численной реализации этой формулы для больших значений n возникает проблема с множителем Г((n+1)/2)/ Г(n/2). Не смотря на то, что само отношение имеет достаточно небольшие значения, числитель и знаменатель по отдельности могут принимать значения, для которых не хватит разрядности типа с плавающей точкой. Для разрешения этой проблемы...
А разве не проще здесь использовать разность логарифмов от Гамма-функций?
По логике, нелинейные искажения у таких систем должны быть выше, а реверберационный хвост — длиннее. Динамик тормозит диффузор магнитом, а как здесь подавлять колебания?
Меня смущает один момент: ну, где же, ГДЕ измерения, что за интриги? Снять АЧХ/ФЧХ и THD — дело 5-и минут и одного микрофона, а с самой процедурой справится даже школьник — готового софта навалом, тот же спектралаб. Покажи измерения, где искажения (особенно нелинейные) панелей меньше, чем у классических излучателей — и продажи попрут.
Интеграл от гауссианы называется функцией ошибок, и существуют более элементарные способы для его вычисления, которые вы почему-то не рассмотрели. Сравнение точности и вычислительных затрат при различных подходах также не помешало бы.
Когда я прихожу на сходку с играми, на мне шляпа простого человека, а простой человек из меня так себе.
А разве вам кто-то запрещает прийти туда как программисту? Ну или в любой другой «шляпе», в которой вам комфортно. Другие люди не знают и не могут знать, какой вы на самом деле. Мы вообще очень сильно переоцениваем способности окружающих видеть нас такими, какие мы есть.
Мне на работе иногда дают задачи, которые на первый взгляд выглядят глупо или нерешаемо. Но подумав некоторое время, решение всегда находится, даже если оно тоже выглядит глупым.
Ошибки вычислений не зависят от формата представления числа. Любое округление по определению не устраняет ошибки а наоборот, вносит их. Таким образом, ваш «правильный» алгоритм округления лишь вносит дополнительные ошибки. Вы можете убедиться в этом самостоятельно, промоделировав вычисления с накоплением ошибок и сравнив результаты.
А вот как сфера излучает в пространство (на нескольких отдельно взятых частотах), и тоже никакого чуда не обнаружилось:
— Почему именно правило 30? Что в нём такого, что выделяет его среди остальных?
— Можно же рассматривать не просто средний столбец, а каждый ряд эволюции как число, записанное в бинарном формате — получаем последовательность целых чисел. Какие у неё свойства? Можно ли по n-му числу найти предыдущее? Можно ли по n-му числу определить, существует ли предыдущее?
Во первых, розовый, как и белый шум — это математическая абстракция, поэтому никакого «точного» алгоритма существовать не может — мы можем говорить лишь о некотором приближении. Строго говоря, последовательность независимых случайных значений не является белым шумом — так как она дискретна, в то время как белый шум непрерывный и имеет бесконечный спектр.
Далее. Дробное интегрирование/дифференцирование — тема, безусловно, интересная — но в данном случае её привлечение избыточно. Если вы попытаетесь синтезировать brown-ский шум (да, я тоже называю его коричневым) непосредственно через интегрирование случайных величин — он через некоторое время «улетит» в бесконечность и никаких гор не получится.
Хотите розовый шум с более «прямым» спектром? Да не вопрос — синтезируйте его посредством FIR-фильтра, которым фильтруйте белый шум. Чем больше у него будет отсчётов — тем ближе он будет к идеальному. Например, в 1024 отсчётов и минимально-фазовом исполнении его импульсная характеристика будет выглядеть примерно так:
и спектр:
Завал на низких частотах неизбежен — в идеальном случае значение постоянной составляющей фильтра равно бесконечности (1/sqrt(f) при f=0).
Это в очередной раз показывает, что нужно крайне осторожно относиться к знаниям, полученных из популярных статей типа этой. Нужно отделять задачи «найти значение интеграла», которой решается за 5 секунд в любой современной системе компьютерной алгебры, от «а откуда там корень из пи?». Собственно, именно так я (когда-то давно) и узнал о существовании функции ошибок — Wolfram выдал её в качестве ответа и пришлось разбираться, что за erf такой. Заодно узнал, что если интеграл не берётся в элементарных функциях — это не приговор и существует множество функций специальных — гипергеометрических, эллиптических и прочих, которые с вычислительной точки зрения ничем не отличаются от обычных.
А разве не проще здесь использовать разность логарифмов от Гамма-функций?