Перейти к содержанию
    

Придумал алгоритм интерполяции. Протестируем результаты?

Я думаю, что максимально верной интерполяцией нужно считать интерполяцию синусную, когда для каждой существующей выборки создают функцию sin(x)/x, с вершиной в этой выборке (а для остальных выборок эта функция будет в нуле), и затем складывают все эти функции. Дальше по полученной кривой вычисляют значения в любых других точках. Но это слишком сложный алгоритм.

 

Он вообще не реализуемый, а вот обрезанный синк является ли самым лучшим ФНЧ из возможных?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

_Ivana:

Пока желающие общаются на сопутствующие темы, а я пытаюсь получить графики отклонений, для затравки 2 картинки сравнения методов. Красный - синус, желтый - отсчеты, зеленый - мой, синий - Фарроу:

 

Ну, это уже лучше. Теперь огласите число операций на выходной отсчет вашего интерполятора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно что лучше :)

Число операций на отсчет оглашу чуть позже. Картинки с графиками максимального и среднего отклонений тоже уже получил - вышло немного забавно :) Сейчас формирую полные графики отклонений с учетом любой возможной фазы интерполируемого синуса на любой частоте (сдвиг по фазе от 0 до 2пи внутри любой частоты). Графики опять же чуть позже.

А пока ТИПИЧНЫЕ (НЕ СЛУЧАЙНЫЕ) картинки сравнения интерполяций (мой зеленый, Фарроу синий):

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

 

Собственно, искомые графики :) Красный - мой, зеленый - Фароу

По оси абсцисс - отношение частоты дискретизации к частоте исходного синуса. Ссылаясь на Котельникова, я эту величину не брал меньше 2 :) Начинается с 2 и возрастает до.... можете на графике посмотреть.

Первый график - максимальный модуль отклонения (в абсолютных единицах, при синусе от -1 до +1). Второй - средний модуль отклонения.

 

ЗЫ собственно, недавно кто-то говорил, что "Интерполяция - большой раздел вычислительной математики" (С). Вот видимо эта умная математика и привела в итоге к таким результатам сравнения алгоритмов :)

post-66710-1333884566_thumb.jpg

post-66710-1333884576_thumb.jpg

post-66710-1333885719_thumb.jpg

post-66710-1333885821_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

_Ivana:

собственно, недавно кто-то говорил, что "Интерполяция - большой раздел вычислительной математики" (С). Вот видимо эта умная математика и привела в итоге к таким результатам сравнения алгоритмов

 

 

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

Задайте хотя бы 6 т/период, а лучше 8. А еще лучше выполнить измерение максимальной погрешности интерполяции для ряда частот 1/64 1/32 1/16 1/8 и выложить тут график.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

thermit, странная ситуация :)

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

ПОСЛЕДНИЕ ГРАФИКИ - это И ЕСТЬ максимальная и средняя погрешности ОТ ОТНОШЕНИЯ ЧАСТОТЫ ДИСКРЕТИЗАЦИИ К САМОЙ ЧАСТОТЕ СИНУСА - Вашими словами, количества точек на период синуса!

 

Разберитесь в графиках пожалуйста. Это именно то, что Вы просили (насколько я понял). Масштаб оси абсцисс правда обратно-логарифмический, но мне так удобнее, да и нагляднее так.

Изменено пользователем _Ivana

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

_Ivana, для начала не нужно выбирать предельную дискретизацию. Мне видится на графиках 2 точки на период, то бишь почти по пределу Котельникова. Фарроу на такой частоте реально плохо работает. Синк, кстати, неплохо, обрезанный естественно.

 

Хотите чем-то возгордиться, покажите графики с 3-мя или 4-мя точками на период синуса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Картинки при 2 точках на период (предел по Котельникову) я показал ТОЛЬКО с целью наглядной демонстрации различия алгоритмов. И сам график отклонений логично строить от значения 2 - предела по Котельникову,я уже об этом писал.

Вот картинки при повышении частоты дискретизации, по 2 - с разным фазовым сдвигом. Они не такие наглядные, поэтому я их и не показывал. При дальнейшем повышении частоты дискретизации будет еще ненагляднее :)

post-66710-1333889415_thumb.jpg

post-66710-1333889428_thumb.jpg

post-66710-1333889441_thumb.jpg

post-66710-1333889452_thumb.jpg

Изменено пользователем _Ivana

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разберитесь в графиках пожалуйста. Это именно то, что Вы просили (насколько я понял). Масштаб оси абсцисс правда обратно-логарифмический, но мне так удобнее, да и нагляднее так.

 

 

Ошибка при 2-4 точках на период маскирует ошибки для меньших частот. Поэтому ваши картинки по-прежнему малоинформативны.

 

Пора огласить число операций.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Картинки при 2 точках на период (предел по Котельникову) я показал ТОЛЬКО с целью наглядной демонстрации различия алгоритмов. И сам график отклонений логично строить от значения 2 - предела по Котельникову,я уже об этом писал.

НЕ ЛОГИЧНО, поверьте. Это крайний случай, который информативно ущербен. Иногда, очень редко, он может иметь значение. Обычно разумный проектировщик системы к нему (пределу) не приближается.

 

Поэтому демонстрируйте свой алгоритм во всей красе в широком диапазоне дискретизаций. Цифры в ранних постах пока никакой заметной относительно фэрроу точности не показали. По поводу кол-ва вычислений до сих пор загадка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибка при 2-4 точках на период маскирует ошибки для меньших частот. Поэтому ваши картинки по-прежнему малоинформативны.

Пора огласить число операций.

Хотите, построю этот же график но не с 2 а с 5 или 6 точек на период? Это будет тот же график, только отрезанный и отмасштибированный. Со скольки точек построить?

 

А число операций - штука тонкая, как я надеюсь, Вы понимаете. Где-то есть аппаратное умножение, где-то нет. И с делением тоже. Но в любом случае меньше Фарроу - это точно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотите, построю этот же график но не с 2 а с 5 или 6 точек на период? Это будет тот же график, только отрезанный и отмасштибированный. Со скольки точек построить?

 

C 8-ми точек на период. Естественно, растянутый по оси y.

 

А число операций - штука тонкая, как я надеюсь, Вы понимаете. Где-то есть аппаратное умножение, где-то нет. И с делением тоже. Но в любом случае меньше Фарроу - это точно

 

Не надо туман напускать. Умножение, сложение, деление, извлечение корня - операции.

Сколько и каких именно подобных операций на 1 выходной отсчет требует ваш интерполятор?

Изменено пользователем thermit

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

C 8-ми точек на период. Естественно, растянутый по оси y.

Наконец-то разумные пожелания. Сейчас построю, прикреплю.

 

Не надо туман напускать. Умножение, сложение, деление, извлечение корня - операции.

Сколько подобных операций на 1 выходной отсчет требует ваш интерполятор?

А почему бы мне не напустить тумана в этом вопросе? Я ведь пока не хочу обнародовать алгоритм :) Но повторяю в 100500-й раз - гарантированно меньше Фарроу при любых аппаратных возможностях :) При усеченных возможностях - ощутимо меньше :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какое это доказательство? И чего? Ведь мы имеем некоторую функцию, заданную отсчетами в некоторых точках.

Потом мы придумываем непрерывную функцию, которая проходит через эти точки. Вариантов придумки бесконечно много. И ни один не лучше другого.

В том-то и дело, что, если функция оцифрована в соответствии с теоремой Котельникова, это будет единственная функция, проходящая через все наши точки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему бы мне не напустить тумана в этом вопросе? Я ведь пока не хочу обнародовать алгоритм sm.gif Но повторяю в 100500-й раз - гарантированно меньше Фарроу при любых аппаратных возможностях sm.gif При усеченных возможностях - ощутимо меньше

 

У нас есть такие приборы... Но мы вам про них не расскажем (цэ)

Зачем было тогда сюда писать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Термит, Вы были правы - маскирует. Мой- красный, Фарроу - зеленый. И по моему (если я нигде ничего не напутал), это действительные показатели алгоритмов, а не накопленная ошибка округления или что-то ещё. Ну чтож - результат таков каков он есть :) Хотя я оставляю ещё шанс что я ошибся при построении графиков, но он честно говоря невелик :)

Спасибо вам за помощь в анализе (несмотря на остальные моменты) :)

 

У нас есть такие приборы... Но мы вам про них не расскажем (цэ)

Зачем было тогда сюда писать?

А вы не обижайтесь. В наш век Кали Юги на дворе не все всем все рассказывают :)

К тому же, в самом заголовке темы я предложил протестировать РЕЗУЛЬТАТЫ, а не говорил что буду обнародовать алгоритм :)

post-66710-1333891205_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...