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

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

_Ivana:

В наш век Кали Юги на дворе не все всем все рассказывают

 

Гы. Я буду первым, кто скомуниздит ваш супералгоритм и сказочно обогатится...

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


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

Шутки шутками, а вот если бы моя кривая прошла ниже Фарроу, тогда уже был бы совсем другой разговор :)

 

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

 

Средняя ошибка. Тоже уступаю Фарроу....

post-66710-1333892920_thumb.jpg

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

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


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

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

Вот же ж идеалисты. Учебники прямо так и учат. Никаких нуансов.

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

Если даже БПФ "затрудняется" точно посчитать амплитуду дробной частоты по _исходным сэмплам_.

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

Не стоит забывать, что всегда кол-во сэмплов ограничено на практике.

 

 

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

Даже в общих чертах не проясните во сколько/насколько быстрее?

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

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


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

Даже в общих чертах не проясните во сколько/насколько быстрее?

В общих чертах... Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3 :) ). Даже если есть аппаратное деление, то мой алгоритм быстрее ..... а вот не знаю насколько - но будет как раз протестировать! :) А уж если нет аппаратного деления - тогда за счет необходимости его эмуляции на асме получается ещё бОльшая разница. Кстати сказать, даже если бы Фарроу и не требовал этого пресловутого деления на 6, то мой алгоритм все равно бы был быстрее :)

Но больше не выпытывайте пожалуйста :) Если получится - протестирую на железе и скажу реальную разницу в скорости.

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


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

В общих чертах... Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3 :) )

может открою вам глаза, но у меня сплошь и рядом в модемах на ПЛИС используется интерполяторы лагранжа, по структуре Фарроу. Так вот там нет ни одного делителя ;) совсем. И все прекрасно работает ;) так что математика у вас не той системы ;)

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


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

_Ivana:

Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3 sm.gif ).

 

Деление на константу это умножение на константу. Так что в фарроу никаких деление нет в принципе.

Есть умножение на константу и перемножение 2-х операндов. Сумма есть.

 

 

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


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

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

 

Насчет ПЛИС и модемов глаза не открылись, я просто не знаю эту область. Но это не отменяет принципиального факта меньшего количества операций в моем алгоритме :)

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


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

Но это не отменяет принципиального факта меньшего количества операций в моем алгоритме :)

т.е. вы делаете его быстрее чем 3 умножения и 4 сложения ?

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


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

т.е. вы делаете его быстрее чем 3 умножения и 4 сложения ?

Давайте разберемся. Вот Фарроу:

а3 = (1/6)*(у3 - у0) + (1/2)*(у1 - у2);
а1 = (1/2)*(у3 - у1) - а3;
а2 = у3 - у2 - а1 - а3;
а0 = у2;

х = т - 1;

у = а3*х;
у = (у + а2)*х;
у = (у + а1)*х;
у =  у + а0;

Ваша фраза про "3 умножения и 4 сложения" относится к чему? Даже если оставить в стороне вычисление итогового значения полинома (что ещё 3 умножения и 4 сложения - одно на приведение параметра допустим), то получается 3 умножения и 8 сложений. Хотя, я не оптимизировал, может и можно ужать. Но если говорить о полном цикле операций Фарроу - то это 6 умножений и 12 сложений - если считать как я написал, не оптимизированно. Кто посчитает за меньшее? Прошу ваш вариант.

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

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


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

Кто посчитает за меньшее? Прошу ваш вариант.

да весь интернет знает, только вы в неведении ;)

 

На этом синтез фильтра Фарроу третьего порядка можно считать законченным и подведем некоторые итоги:

.....

2. Фильтр третьего порядка требует всего 3 операции умножения и может применяться в реальном времени.

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


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

да весь интернет знает, только вы в неведении ;)

 

Прошу прощения, что вмешиваюсь в беседу уважаемых метров DSP.

На рисунке 7: "Модифицированный фильтр Фарроу третьего порядка" из приведенной Вами в пример статьи я насчитал 11 операций сложения и 6 операций умножения для итогового значения полинома в точке интерполяции.

 

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

Заранее спасибо.

 

P.S. Две операции умножения на 1/2, конечно, лучше заменить на арифметический сдвиг вправо (подразумевается целочисленная математика).

Но умножение на 1/6 я пока не знаю чем заменить. Буду признателен, если подскажете.

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

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


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

да весь интернет знает, только вы в неведении ;)

des00 вы просто верите цитатам из интернета, даже не пытаясь проанализировать их смысл?

Если найдутся участники, понимающие о чем речь, а также понимающие разницу в количестве операций при умножении на 1/2 и 1/6 даже во флоатах, и при этом будут иметь желание продолжить дискуссию - я готов.

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


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

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

Какая-такая -"Эта"?

Вы меня убиваете (без Котельникова).

Функция номер раз - кусочно-линейная.

Функция номер два - кусочно-квадратичная.

Дальше сами... Единственность опровергнута? Ваша.

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


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

P.S. Две операции умножения на 1/2, конечно, лучше заменить на арифметический сдвиг вправо (подразумевается целочисленная математика).

Но умножение на 1/6 я пока не знаю чем заменить. Буду признателен, если подскажете.

это же просто и уже обсуждаллсь на форуме, умножьте все коэффициенты на 6, в результате этого коэффициенты фильтра будут 1,2,3,6, за счет операции рекомбинации, аналогичной описанной в статье, все переходит к набору сумматоров + сдвиги. что просто реализуется на любой платформе. остается только рассчет полинома. как уже сказал 3 умножения. В кол-ве сложений ошибся, признаюсь. Считать, сколько их там, с учетом оптимальной рекомбинации лень.

 

в результате такой "моидификации", коэффициент усиления преобразования интерполятора будет 6. легко переводиться в 6/8. И совсем привередливым, кому хочеться получить 1цу, приводиться простым делением через умножение.

 

des00 вы просто верите цитатам из интернета, даже не пытаясь проанализировать их смысл?

а вы слишком узко смотрите на реализацию :)

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


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

а вы слишком узко смотрите на реализацию :)

Вы правы, спасибо за демонстрацию оптимизации, я смотрел узко. Но даже при этом мой алгоритм быстрее на любых платформах :)

Так что отвечая на ваш вопрос выше - да, я свое значение считаю быстрее Фарроу при любой оптимизации последнего и платформе :)

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


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

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

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

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

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

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

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

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

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

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