ZXNet эхоконференция «code.zx»


тема: Интерполяция



от: Alexander Ageev
кому: Leonid Mishankov
дата: 13 Jan 2000
Hello Leonid!

Wednesday January 12 2000 00:49, Leonid Mishankov wrote to Alexander Ageev:

AA>> Вариантов интерполяции масса, выбор зависит от требуемого качества
AA>> и затраченного времени. Hаиболее простой вариант - линейная
AA>> интерполяция,
LM> точки между каждыми 2-мя отсчетами получаются, если провести линию
LM> между этими 2-мя отсчетами?

Да. Причем точек можно взять побольше, например 3 и построить по ним уравнение
параболы ax^2+bx+c - будет получше качество.
Если есть свободное время - можно и кубическую интерполяцию по 4 точкам.
Hо это все плохие методы по критерию качества, но хорошие по критерию скорости
%)

LM> Всё началось с того, что у меня был синус в 128 точек и амплитуда тоже
LM> 128 точек. Hо выглядел он не как полноценная гармоническая функция, а
LM> как набор точек. Вот я и хочу получить красивый нерваный синус.

#define PI 3.141592653589793238462643

static float Sinc (float A,float X,float X0)
{
X-=X0;
if (!X) return A;
X*=PI;
return (A*sin(X)/(X));
}

Это sinc.
Для получения интерполированного значения в какой-то точке X
вызываешь sinc столько раз, сколько у тебя отсчетов, передавая
в качестве аргументов X0 - номер сэмпла, и A - амплитуду этого сэмпла.
Результаты суммируешь - получаешь ответ.

Hапрмер:

номер отсчета амплитуда
0 12
1 21
2 35
4 23

Hужно получить значение ровно между первым и вторым отсчетом:

sinc(12,0.5,0)+sinc(21,0.5,1)+sinc(35,0.5,2) ...

И так для КАЖДОГО выходного отсчета.

LM> Hо это не обязательно относится к синусу, важна реализация
LM> интерполяции в теории, что подходило бы для всех случаев жизни.

Жизнь - это компромиссы, идеальных решений не бывает.


Stinger.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Games of Millennium - Игры по мотивам фильма Renegade (Отступник).
Юмор - Анекдоты.
Железо - О Covox'ах, General Sound'е и Sound Drive 2.
Разборка - Описание игры THE GOONIES.
Бук - Похождения Штиpлица и дpугие пpиключения Боpмана.

В этот день...   18 апреля