DSPSYSTEM Теория и практика цифровой обработки сигналов

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Линейная интерполяция

Сообщений 1 страница 9 из 9

1

Как с минимумом вычислительных операций построить линейную интерполяцию по двум точкам?

0

2

2 суммы и одно умножение устроит ?

0

3

конечно устроит потому что это и есть минимум операций при линейной интерполяции  :yep:

0

4

Напишите пожалуйста формулу. У меня всегда получается два деления. (это всё равно что два умножения по моему, или я не прав?)

0

5

Franky написал(а):

Напишите пожалуйста формулу. У меня всегда получается два деления. (это всё равно что два умножения по моему, или я не прав?)

Y=(Y2-Y1)*dX+Y1,

где Y2,Y1 - ординаты функции
      dX - разница аргументов

0

6

всё же немного непонятно что здесь означает dX?

Допустим имеем X1 = 4;
                        X2 = 7;
                        Y1 = 2;
                        Y2 = 3;
      Нужно найти Y в точке X = 6;
по этой формуле Y = (Y2-Y1)*dX + Y1;

Есть формула лин. интерполяции http://ru.wikipedia.org/wiki/Линейная_интерполяция
здесь одно деление и одно умножение. Как уменьшить кол-во операций?

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

0

7

Franky написал(а):

всё же немного непонятно что здесь означает dX

dX = 1/ (X2-X1)

Franky написал(а):

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

Количество операций для линейной интерполяции не зависит от интервала разбиения. Посмотрите сплайн-аппроксимацию

0

8

По вашей формуле выходит Y = (Y2-Y1)/(X2-X1) + Y1;

что-то нето)))
  вы забыли кое что. Нужно так:  Y = ((Y2-Y1)/(X2-X1))*(X-X1) + Y1
но это тот же самый линейный Лагранж... видать уменьшить кол-во операций нельзя...

0

9

Franky написал(а):

вы забыли кое что. Нужно так:  Y = ((Y2-Y1)/(X2-X1))*(X-X1) + Y1

Да. забыл про смещение :)

0