sup-sup 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба Спасибо, скачал, поставил. Сгенерировать ключ не удалось, использую 30-дневную версию. Действительно много возможностей. Навскидку, что увидел: Исходный синус 500Гц (44100) THD = 0.00063, IMD = 0.1798 ресемплится в 44600. Мой алгоритм: THD = 0.00124, IMD = 0.2349 Фарроу: THD = 0.00109, IMD = 0.2349 Если ничего не напутал :) Биения 500Гц + 1% Исходный сигнал THD = 0.00054, IMD = 0.6593 Мой алгоритм: THD = 0.00180, IMD = 0.6442 Фарроу: THD = 0.00125, IMD = 0.6443 Термит, если нечего сказать конструктивно (кроме очевидной методики проверки отклонения от целевого сигнала). то можно просто не писать в этот топик? 2 картинки спектра ресемплинга биений 500Гц+1% (ресемплинг на 500Гц). Первая - мой алгоритм, вторая - Фарроу: Принимаются пожелания какие ещё тестовые сигналы ресемплить и посмотреть, спектр, какие может показательные коэффициенты (сигнал/шум там или что ещё из имеющегося в СпектраПлюсе) :) Еще можно по спектрограмме оценить для сложного сигнала на разные артефакты. В SpectraPlus спектрограммы так себе. Самые лучшие, что я видел, делает SA (в том же 'радиосканнере' есть. Демо-версии достаточно. А ресемплить сигналы со сложным спектром, меняющимся во времени. Еще, близким к частоте Найквиста. Если алгоритм позволяет это. Изменено 7 апреля, 2012 пользователем sup-sup Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба А ресемплить сигналы со сложным спектром, меняющимся во времени. Еще, близким к частоте Найквиста. Если алгоритм позволяет это. Например какие? ГолдВэвйв много разных может генерить, СпектраПлюс поменьше вариантов, но тоже есть кое-что. Есть синус умноженный на экспоненту и много чего ещё диковинного, плюс самому можно формулы написать :) Частотная модуляция . 500+-Гц. Ресемплинг тот же - с 44100 до 44600. Мой THD = 0.00091, IMD = 0.6729, слева Фарроу THD = 0.00112, IMD = 0.6729, справа Изменено 7 апреля, 2012 пользователем _Ivana Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба _Ivana: Термит, если нечего сказать конструктивно (кроме очевидной методики проверки отклонения от целевого сигнала). то можно просто не писать в этот топик? С начала этого топика кроме меня только 1 (один) человек ответил вам конструктивно. Пальцем тыкать не хочу. Это что касается конструктивизма в частности. Что касается конструктивизма вообще: 1 Да. Я хочу увидеть не непонятные картинки, а пиковую ошибку интерполяции гармонического сигнала в зависимости от частоты при частоте дискретизации = 1. Все остальное не несет никакой полезной информации. 2 Хотелось бы понять принципиальную новизну вашего метода. Ведь полиномиальная интерполяция - самая простая. Все другие способы (дробно-рациональная, тригонометрическая и т д) существенно сложнее. в этой связи 3 Обнародуйте свой алгоритм. едва-ли этим вы уроните кого-либо под стол. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sup-sup 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба Например какие? ГолдВэвйв много разных может генерить, СпектраПлюс поменьше вариантов, но тоже есть кое-что. Есть синус умноженный на экспоненту и много чего ещё диковинного, плюс самому можно формулы написать :) Частотная модуляция . 500+-Гц. Ресемплинг тот же - с 44100 до 44600. Мой THD = 0.00091, IMD = 0.6729, слева Фарроу THD = 0.00112, IMD = 0.6729, справа Я предложил (по методике тестирования) для визуальной оценки смотреть спектрограммы в хорошем разрешении. Поиграться при этом размером FFT для нахождения лучшего разрешения по частоте и по времени. Это даст не усредненный замазанный результат, а более пиковый, как сказал thermit. Из сигналов можно взять ЛЧМ (chirp) от нулевой частоты до fs/2. Еще, сумму нескольких синусов в верху диапазона с разными фазами. И вообще, искать именно тот сигнал, который плохо интерполируется. В этом случае вопросов и не будет. Ищите неисправности в алгоритме и, если не находите, все хорошо. И смотреть в динамике, то есть спектрограммой. Это для качественной оценки одним взглядом. Более интересные места смотреть подробнее во временной и в частотной области. Изменено 7 апреля, 2012 пользователем sup-sup Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба Хорошо. Термит прав, надо отойти от цифровых применений и просто чисто математически проинтерполировать синус с разной частотой, при этом посчитать максимальный модуль отклонения от чистого синуса на интервале и средний модуль отклонения на нем же. Я и сам думал так сделать. Жаль в 1С нет функции синуса, придется как-то выкручиваться. Но я сделаю это, для нескольких частот точно. И сравню с Фарроу. И выложу сюда. Как найду где взять точный чистый синус любого аргумента, простите за банальные трудности :) ЗЫ а насчет гениев и инженеров у меня своя версия - мало и тех и других. Критикофф с претензиями зато дофига :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба Да, вопрос от меня, как от критика с претензиями вам как к гению : При чем тут 1с? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба ОФФ: потому что я её хорошо знаю, и использую как тестовый инструмент для отладки разной математики. Она отлично выводит и таблицы и графики и псевдографики и я могу удобно просматривать любые промежуточные результаты в любом виде и формате. И всем рекомендую :) Например, для первого поста потребовалась псевдографика с хитрыми непечатными символами а-ля пробел, ибо пробелы с краев отрезаются. В 1С я это сделал за минуту. ЗЫ я понимаю что критики с претензиями предпочитают наверное матлаб или маткад, и я с ними согласен, но его надо ещё найти, поставить и освоить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба _Ivana: ЗЫ я понимаю что критики с претензиями предпочитают наверное матлаб или маткад, и я с ними согласен, но его надо ещё найти, поставить и освоить. Угу. Предпочитают. Дык для гениев еще ексель есть... Там даже синус имеецца. Не говоря уж про тангенсы всякие... Для гениев чуть меньшего размера осмелюсь порекомендовать это изделие www.jsoftware.com (v6.x). Изменено 7 апреля, 2012 пользователем thermit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба За рекомендации всегда спасибо. Но от специалистов они всегда ценнее и эффективнее. Я уже нашел интегрируемый в 1С вариант: // синус function sin(value,sc=0) try if sc=0 then sc=createObject("MSScriptControl.ScriptControl"); endif; sc.language="VBscript"; except return getEmptyValue(); endtry; return sc.eval("sin("+value+")"); endFunction Вроде работает, график на глаз гладкий. Буду пробовать с этой функцией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavel_SSS 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба ОФФ: потому что я её хорошо знаю, и использую как тестовый инструмент для отладки разной математики. Она отлично выводит и таблицы и графики и псевдографики и я могу удобно просматривать любые промежуточные результаты в любом виде и формате. И всем рекомендую :) Например, для первого поста потребовалась псевдографика с хитрыми непечатными символами а-ля пробел, ибо пробелы с краев отрезаются. В 1С я это сделал за минуту. ЗЫ я понимаю что критики с претензиями предпочитают наверное матлаб или маткад, и я с ними согласен, но его надо ещё найти, поставить и освоить. Интересно, попробовать вести бухгалтерию в Матлабе... Что-то в этом есть... Насчет интерполяции - как тут уже отмечали, интерполяция - это нахождение непрерывной функции, желательно выраженной с помощью простых действий - умножения, деления, сложения вычитания, может быть еще извлечения корня, проходящей через заданные точки. Имея такую функцию, мы можем найти ее значения, а, следовательно, значения входного сигнала в промежуточных точках. Насколько значение функции будет соответствовать входному сигналу? Неизвестно. Теоретически возможно, что входной сигнал между отсчетами улетает до небес. Поэтому мы должны сделать предположение, что сигнал - физическая величина, следовательно обладает конечной энергией и конечным - и весьма нешироким, спектром. Иначе неуместно говорить об интерполяции сигнала, а надо говорить об математической абстракции - провести кривую через столько-то точек. Удобным методом интерполяции является полиномиальная интерполяция - нахождение полинома степени N-1, выражающего функцию, проходящую через N точек. Лагранж предложил метод нахождения таких полиномов, а Фарроу - способ построения интерполятора оптимально использующего вычислительные мощности. Но по сути - это полиномиальная интерполяция, дающая одинаковый результат независимо от способа вычисления полинома, так как такой полином существует один. Такая интерполяция хорошо подходит, в частности, к музыке, так как музыкальный сигнал - это некий набор гармонических составляющих - синусоид, параметры которых меняются относительно медленно. Эти синусоиды можно разложить в ряд Тейлора, сложить разложения, и получим, как раз, многочлен, причем невысокой степени. Есть случаи, когда полиномиальная интерполяция малопригодна - например, при попытке интерполировать изображение, оно может потерять четкость переходов... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба Я думаю, что максимально верной интерполяцией нужно считать интерполяцию синусную, когда для каждой существующей выборки создают функцию sin(x)/x, с вершиной в этой выборке (а для остальных выборок эта функция будет в нуле), и затем складывают все эти функции. Дальше по полученной кривой вычисляют значения в любых других точках. Но это слишком сложный алгоритм. Между выборками сигнал не должен меняться, как угодно, иначе частота дискретизации не будет удовлетворять теореме Котельникова. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба Я думаю, что максимально верной интерполяцией нужно считать любую. Даже аппроксимацию при бесконечном числе точек нельзя выбрать. Пока не выбран критерий близости функций. Вот попробуйте - (0, 0), (1, 1), (100, 0), (101, -1). Можете продлить... И.... главное - докажите, что Ваша интерполяция "максимально верная". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба Вот попробуйте - (0, 0), (1, 1), (100, 0), (101, -1). Можете продлить... И.... главное - докажите, что Ваша интерполяция "максимально верная". Имею в виду равномерную дискретизацию. Доказательство элементарное. Идеальный ФНЧ имеет именно такую импульсную характеристику. А вот, собственно, доказательство. Первая же формула. http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%...%86%D0%B8%D1%8F Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба А вот, собственно, доказательство. Первая же формула. Какое это доказательство? И чего? Ведь мы имеем некоторую функцию, заданную отсчетами в некоторых точках. Потом мы придумываем непрерывную функцию, которая проходит через эти точки. Вариантов придумки бесконечно много. И ни один не лучше другого. А почему Вы ограничиваете себя функцией заданной в точках, лежащих на равных расстояниях? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба Пока желающие общаются на сопутствующие темы, а я пытаюсь получить графики отклонений, для затравки 2 картинки сравнения методов. Красный - синус, желтый - отсчеты, зеленый - мой, синий - Фарроу: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться