_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба Пару дней назад пришлось вникнуть в азы ЦОС на примере ресемплинга. Почитал пару-тройку страничек в инете, про двойной апсемплинг, оконные функции, полиномы Лагранжа-Фарроу и т.п. И придумал свой алгоритм :) Без таблиц, на чистой математике. По объему операций существенно меньше Фарроу. Реализовал его, как обычно, сначала на 1С :) Посмотрел графики. Потом перевел в целочисленную математику и с помощью коллеги наваял программку - ресемплер wav файлов. С заданием частоты ресемплинга и выбором варианта - своего или Фарроу. Собственно, предлагаю: заинтересованные лица выкладывают вавки, я их ресемплю с нужной частотой двумя вариантами и выкладываю на всеобщее скачивание/заслушивание. Желающие делятся своими мнениями по поводу :) ЗЫ поскольку я совершенный дилетант в сабжевом вопросе, я вполне допускаю что этот алгоритм уже давно придуман до меня. Но навскидку я не нашел ничего похожего. Графические примеры работы алгоритмов: точки 50, 70, 20, края диапазона добиты нулями. График - ось абсцисс вниз, ординат - вправо. Фарроу: *--- 0 * * * * * * * * * *--- 0 * * * * * * * * * *--- 50 * * * * * * * * * *--- 70 * * * * * * * * * *--- 20 * * * * * * * * * *--- 0 * * * * * * * * * Мой алгоритм: *--- 0 * * * * * * * * * *--- 0 * * * * * * * * * *--- 50 * * * * * * * * * *--- 70 * * * * * * * * * *--- 20 * * * * * * * * * *--- 0 * * * * * * * * * За качество обоих графиков извиняйте - они в псевдографике с грубым "разрешением", на самом деле они более красивые :) Изменено 7 апреля, 2012 пользователем _Ivana Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба Не логичнее выложить сам алгоритм? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба Я бы не хотел его обнародовать. По крайней мере, пока не увижу его описание где-либо :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба заслушивание на слух это - для музыкантов. Вы возьмите спектр от Вашего примера( до и после ресемплирования) и от Фароу например . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба В моем слабеньком спектроанализаторе из программки GoldWave я на глаз не могу увидеть существенных отличий. К тому же, я предполагаю, что существуют и другие методы количественных оценок качества ресемплинга. Но поскольку я (повторюсь) дилетант в вопросе, я и решил самонадеянно выйти на суд знающей общественности :) Которая может подсунет сумму синусов некратных частот в вавке, проанализирует результаты ресемплинга разными суровыми методами и скажет - ээээ, батенька, не тянет ваш алгоритм :) Или наоборот. ОФФ - увидел "Воронеж" подписи и решил себе тоже написать :) Изменено 7 апреля, 2012 пользователем _Ivana Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба В моем слабеньком спектроанализаторе из программки GoldWave я на глаз не могу увидеть существенных отличий. ИМХО на глаз и на слух это субъективная оценка, надо сравнить системы (для интерполяторов лагранжа, в том числе по структуре Фарроу, накладываются определенные ограничения применения), построить частотные характеристики интерполятора при разных задержках, оценить ошибки интерполяции и т.д. Без алгоритма, по звуковому файлу это сделать крайне затруднительно. Да и фарроу в звуковой аппаратуре лучше заменить банком фир фильтров (если вычислительный ресурс позволяет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба des00 спасибо за задание направления дальнейшего анализа. Чувствую, придется самому разбираться с перечисленными вами методами анализа :) Я наивно полагал что вавка может дать информацию. Хотя если кого заинтересует - предложение о тестовом сравнительном ресемплинге в силе. И конечно Фарроу не самый лучший вариант. Я его беру только как сравнительный пример: мой алгоритм в принципе другой, но содержит меньше операций чем Фарроу. Если он окажется лучше последнего по результатам, мне будет приятно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба Чувствую, придется самому разбираться с перечисленными вами методами анализа :) найдите в сети документ " Maximally Flat FD FIR Filter: Lagrange Interpolation" (первая строка гугла ;)) по нему сможете понять какими характеристиками описывается интерполятор лагранжа. Если он окажется лучше последнего по результатам, мне будет приятно :) а частных случаях можно придумать много разных алгоритмов интерполяции, лагранж он как бы более общий. Кстати когда будете тестировать свой интерполятор, "покачайте" частотой на которую делаете ресамплинг. Ну и спектр при этом посмотрите ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба Спасибо. Если кому есть что добавить по методам оценки алгоритмов, буду только рад. Я разберусь с методами оценки и анализа интерполяторов, протестирую свой алгоритм и не буду скрывать результаты :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба _Ivana: По объему операций существенно меньше Фарроу. 1. Фарроу - структура интерполятора лагранжа с минимальным числом умножителей. 2. Интерполяция - большой раздел вычислительной математики. Интерполяция лагранжа - самый простой (со всех точек зрения) способ полиномиальной интерполяции. Придумать что-либо проще нее - это вряд-ли. Изменено 7 апреля, 2012 пользователем thermit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба Спасибо. Если кому есть что добавить по методам оценки алгоритмов, буду только рад. Я разберусь с методами оценки и анализа интерполяторов, протестирую свой алгоритм и не буду скрывать результаты :) Вот думаю-думаю, а понять не могу. Если есть N точек, то через них можно "провести" единственную кривую, описываемую полиномом N-1 порядка. В чем Ваша альтернативность? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба Я не знаю как прокомментировать последние реплики. Во-первых, я нигде не утверждал что моя интерполяция полиномиальна. Хотя и обратного я тоже не утверждал :) И таки да, по объему вычислений она проще Фарроу. К тому же, в первом посте я привел графики. Пусть и грубые, но там видно, что моя интерполяция не совпадает с Фарроу и не является ей, а значит и Лагранжем 3-го порядка как минимум. Если интересует проверка на других исходных данных - выложите ваши точки, покажу новые графики. Лучше подскажите нормальный спектроанализатор вавок (из файла на не со входа звуковухи), и чтобы весил не как СаундФордж. А если ещё и будет выдавать численные коэффициенты - вообще было бы хорошо. Сразу выложу вам цифры и спектры ресемплинга простых и не очень простых сигналов. Мой GoldWave не видит разницы при ресемплинге на +500Гц (в оцифровку 44600) как на синусе 500Гц (оцифровка 44100) так и на сумме синусов с биением частоты в 1%. Изменено 7 апреля, 2012 пользователем _Ivana Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sup-sup 0 7 апреля, 2012 Опубликовано 7 апреля, 2012 (изменено) · Жалоба Я не знаю как прокомментировать последние реплики. Во-первых, я нигде не утверждал что моя интерполяция полиномиальна. Хотя и обратного я тоже не утверждал :) И таки да, по объему вычислений она проще Фарроу. К тому же, в первом посте я привел графики. Пусть и грубые, но там видно, что моя интерполяция не совпадает с Фарроу и не является ей, а значит и Лагранжем 3-го порядка как минимум. Если интересует проверка на других исходных данных - выложите ваши точки, покажу новые графики. Лучше подскажите нормальный спектроанализатор вавок (из файла на не со входа звуковухи), и чтобы весил не как СаундФордж. А если ещё и будет выдавать численные коэффициенты - вообще было бы хорошо. Сразу выложу вам цифры и спектры ресемплинга простых и не очень простых сигналов. Мой GoldWave не видит разницы при ресемплинге на +500Гц (в оцифровку 44600) как на синусе 500Гц (оцифровка 44100) так и на сумме синусов с биением частоты в 1%. SpectraPlus. Действительно, спектр рассудит. Можно найти в 'радиосканнере' Изменено 7 апреля, 2012 пользователем sup-sup Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 7 апреля, 2012 Опубликовано 7 апреля, 2012 · Жалоба 1. Оценка погрешности интерполяции заключается в оценке характеристик разности между результатом интерполяции и истинными значениями функции. Все остальные спектралабы, саундфрджы и др суперанализаторы мегаспектров тут не годятся. 2. По вашим рисункам лично я вообще не сказал бы, что это результат какой-либо интерполяции. 3. Гениеф дофига. Нормальных инженеров не хватает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 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Гц). Первая - мой алгоритм, вторая - Фарроу: Принимаются пожелания какие ещё тестовые сигналы ресемплить и посмотреть, спектр, какие может показательные коэффициенты (сигнал/шум там или что ещё из имеющегося в СпектраПлюсе) :) Изменено 7 апреля, 2012 пользователем _Ivana Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться