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

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

_Anatoliy, спасибо. Скиньте ваш номер сотового в личку, положу на него 300р (если не ошибаюсь).

Спасибо,этого не нужно.Мне было бы гораздо интересней ознакомиться с Вашим алгоритмом.

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


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

Эта статья вроде была в открытом доступе где-то

http://ieeexplore.ieee.org/xpl/login.jsp?t...%2F01203780.pdf

так вот как оказывается называется реализация интерполятора которую реализовал давным давно %)

 

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


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

Обещанная банальная и наивная статья

Здоровая и конструктивная критика да и прочие впечатления приветствуются :)

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


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

Обещанная банальная и наивная статья

Здоровая и конструктивная критика да и прочие впечатления приветствуются :)

Посмотрел частотные характеристики фильтра Фарроу третьего порядка и сплайна вида [1/5, 1/5]. Привожу графики АЧХ и ГВЗ для временного сдвига 0.25 дискрета. Смотрел при разных значениях x и думаю, в этом что-то есть, интересно, что скажут Гуру.

 

UPD: Привожу группы характеристик АЧХ, ФЧХ, ГВЗ для Фарроу 3 и [1/5, 1/5] при изменении x от 0 до -1 для Фарроу и от 0 до 1 для сплайна.

post-58796-1336312013_thumb.png

post-58796-1336385806_thumb.png

post-58796-1336385821_thumb.png

post-58796-1336385836_thumb.png

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

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


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

ToR_TDA спасибо что подключились и проводите сравнительный анализ. Я пока правда с трудом понимаю связь АЧХ и ФЧХ с алгоритмами интерполяции, поэтому ничего дельного сказать не могу :) Только вижу что Фарроу чуть хуже по линейности АЧХ, существенно лучше по линейности ФЧХ и примерно так же по ГВЗ. Как интерпретировать эти данные? Это показатели некоего фильтра, которым становится интерполятор, при условии смещения сетки дискретизации без изменения её шага? И в идеале должна быть линейная АЧХ и ФЧХ, а "фильтр" не должен вносить изменений в сигнал?

ЗЫ в какой программе Вы анализируете и строите эти графики?

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


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

ToR_TDA спасибо что подключились и проводите сравнительный анализ. Я пока правда с трудом понимаю связь АЧХ и ФЧХ с алгоритмами интерполяции, поэтому ничего дельного сказать не могу :) Только вижу что Фарроу чуть хуже по линейности АЧХ, существенно лучше по линейности ФЧХ и примерно так же по ГВЗ. Как интерпретировать эти данные? Это показатели некоего фильтра, которым становится интерполятор, при условии смещения сетки дискретизации без изменения её шага? И в идеале должна быть линейная АЧХ и ФЧХ, а "фильтр" не должен вносить изменений в сигнал?

ЗЫ в какой программе Вы анализируете и строите эти графики?

Я то же не спец в этом, но представляю себе характеристику идеалного интерполятора в следующем виде: АЧХ - прямая линия (без наклонов и неравномерности), ФЧХ - линейна т. е. прямая линия с постоянным наклоном (если смотреть линейный масштаб по частоте), ГВЗ - это показатель (если можно так говорить) нелинейности ФЧХ и временного сдвига. Таким образом, чем лучше интерполятор, тем более его характеристики приближены к идеальным и все это должно выполняться при разных значениях x.

По поводу АЧХ - Фарроу хуже, что видно из графиков, на счет ФЧХ и ГВЗ (они напрямую и наглядно связаны) мне не совсем ясно, но вроде как Фарроу лучше.

Я использую программу MicroCAP и в ней собрал два фильтра Фарроу отсюда и сплайн по вашим формулам, меняя x получаю группы характеристик.

 

ToR_TDA

Как интерпретировать эти данные? Это показатели некоего фильтра, которым становится интерполятор, при условии смещения сетки дискретизации без изменения её шага?

UPD: Да, мы смещаем сетку на произвольное время меньшее, чем период дискретизации.

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

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


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

Прочитал по диагонали http://www.dsplib.ru/content/filters/linphase/linphase.html

Вообще, там есть что почитать :) Навскидку получается, что требование линейности ФЧХ важно для постоянства ГВЗ, как её производной, а угол наклона определяет только саму величину ГВЗ. Значит может и не так страшно, что у Фарроу меньше угол наклона ФЧХ, по линейности они примерно одинаковы.

 

ЗЫ да и вообще мне смутно кажется, что величина ГВЗ определяется количеством отсчетов, необходимым для получения значения :) значит у синка или после фильтра по БПФ она будет просто огромная, и это не страшно, главное чтобы постоянная от частоты входного сигнала. Тогда понятно почему у Фарроу ГВЗ меньше - он использует меньше точек :)

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

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


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

Прочитал по диагонали http://www.dsplib.ru/content/filters/linphase/linphase.html

Вообще, там есть что почитать :) Навскидку получается, что требование линейности ФЧХ важно для постоянства ГВЗ, как её производной, а угол наклона определяет только саму величину ГВЗ. Значит может и не так страшно, что у Фарроу меньше угол наклона ФЧХ, по линейности они примерно одинаковы.

 

ЗЫ да и вообще мне смутно кажется, что величина ГВЗ определяется количеством отсчетов, необходимым для получения значения :) значит у синка или после фильтра по БПФ она будет просто огромная, и это не страшно, главное чтобы постоянная от частоты входного сигнала. Тогда понятно почему у Фарроу ГВЗ меньше - он использует меньше точек :)

После Вашего комментария я то же это понял) Сам наклон ФЧХ (величина ГВЗ) не столь важен, это только задержка до получения результата на выходе. Важнее постоянство этого наклона в частотной области. Частотная область как 1/f связана с числом отсчетов на период интерполируемого (ресэмплируемого) сигнала. Если частота дискретизации равна 1, то при частоте 0.5 мы получим 2 отсчета на период, и искажения выхода будут определяться искажениями АЧХ и ФЧХ при этой частоте.

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

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


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

Подумал тут на досуге... Если мы будем строить сплайн Эрмита, при этом первые производные в краях интервала будем брать как первые производные интерполяционной кривой (допустим, Лагранжа, хотя можно и любой другой, например моих i-сплайнов) но при условии исключения одной или двух центральных точек интервала, то будет ли это тем мифическим сплайном Акимы который спасает от осцилляций в области выбросов (при наличии последних)? :rolleyes: Надо где-то найти почитать про сплайн Акимы, а то есть риск что я его тоже заново "изобрету" :)

 

ЗЫ забавно, в данной работе http://www.ncsystems.ru/user/files/Conference/Obuhov.pdf господин Обухов под видом сплайна Акимы подает нам сплайн Катмулла-Рома, причем делая это в рамках "Госконтракта № 14.740.11.0541 на проведение НИР в рамках ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009 – 2013 годы." :rolleyes: Либо это "нанотехнологии такие", либо одно из двух :) Где же правда в век Кали? Продолжаем искать....

 

ЗЗЫ вот здесь больше похоже на правду http://www.iue.tuwien.ac.at/phd/rottinger/node60.html и судя по всему не то что я подозревал а немного похитрее :)

А вот тут должно быть правдее некуда :) http://student.ndhu.edu.tw/~u9111023/akima.pdf

Пока искал, обнаружил немало забавных фамилий помимо Катмулла с Ромом: Кочанек-Бартельс, Fritsch–Carlson и несколько других необычных слов :) Судя по всему, много народу увлекалось этими игрушками...

 

А интересно Хироши Акима писал в 1970 году, например

Next we try to apply the osculatory interpolation method [1, 5]. It is, like our

method, based on a pieeewise function composed of a set of third-degree polynomials,

each applicable to successive intervals of the given points, with the slopes

at the given points locally determined. The only difference between this method and

ours is the manner of determining the slopes at the given points. In the osculatory

interpolation, the determination of the slope involves only three points, i.e. the

data point in question as a center point and two neighboring data points. It is

assumed that the slope of the desired curve at the data point is equal to the slope

at the same point of the curve of the second-degree polynomial passing through the

three points involved.

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

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


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

Придумал кубический сплайн с непрерывными первой и второй производной :) ....... Локальный :rolleyes: Решу математически, оформлю а-ля предыдущая статья для домохозяек и тоже могу выложить, если кому интересно.

 

Решил. Графики интерполяционной кривой и её 1 и 2 производных при 16 точках на период. Можно тригонометрию проверять на память, чему равна производная синуса и косинуса :)

UPD: да там и 3 производная оказывается тоже очень даже ничего :) (график справа) Хотя, некоторых это может ввести в понятное недоумение - как же это, кубический сплайн и такая 3-я производная? Отвечу - в Кали-Югу и не такое бывает :) Сам удивляюсь.

post-66710-1336679632_thumb.jpg

post-66710-1336680916_thumb.jpg

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

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


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

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

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


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

Ivana,

 

вы еще занимаетесь методами интерполяции или уже забросили это ?

 

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

 

сейчас (пока мне не понятно занимаетесь вы этим или нет) я не буду описывать задачу, но если вы сочтете возможным пообщаться то я буду рад

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


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

ВитГо, я не считаю себя большим специалистом, и не обещаю волшебный быстрый и точный алгоритм, но если хотите пообщаться - пишите в личку.

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


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

clf reset
N = 10; x = 1:N; y = rand(1, N); h = 0.01; d = 0;
plot(x, y, 'or', 'LineWidth', 2); hold on; grid on; axis on;
title(['Локальная интерполяция случайного набора точек', ...
' полиномом Лагранжа 3 степени, 2 алгоритма расчета.']);
plot(x(1), y(1), 'b-', x(1), y(1), 'g:');
legend('точки', 'мой алгоритм', 'Фарроу');
for k = 1:(N-2)
   % мой алгоритм: 1 умножение, 1 сдвиг, 6 сложений
   c = d; e = y(k+1) - y(k); d = y(k+2) - y(k+1) - e;
   b2 = c/2; b3 = (d - c)/6; b1 = e - b2 - b3;

   if (k == 1) continue; end
   t = 0:h:1; f = b3.*t.^3 + b2.*t.^2 + b1.*t + y(k);
   plot(t+x(k), f, 'b-')

   % Фарроу: 1 умножение, 2 сдвига, 8 сложений
   a3 = (y(k+2) - y(k-1))/6 + (y(k) - y(k+1))/2;
   a1 = (y(k+2) - y(k))/2 - a3;
   a2 =  y(k+2) - y(k+1) - a1 - a3;

   t = -1:h:0; f = a3.*t.^3 + a2.*t.^2 + a1.*t + y(k+1);
   plot(t+1+x(k), f, 'g:')
end

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


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

Ага,у меня тоже меньше 6-ти сложений не получилось,видимо предел.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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