thermit 1 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба _Ivana: В наш век Кали Юги на дворе не все всем все рассказывают Гы. Я буду первым, кто скомуниздит ваш супералгоритм и сказочно обогатится... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 (изменено) · Жалоба Шутки шутками, а вот если бы моя кривая прошла ниже Фарроу, тогда уже был бы совсем другой разговор :) Хотя, надо наверное ещё покрутить - поанализировать отклонения. Статистическими методами, например. Вдруг да окажется, что для какого-то класса задач и сигналов мой алгоритм будет иметь преимущество? :) Хотя имхо и так неплохие результаты, особенно учитывая разность в количестве операций :) Средняя ошибка. Тоже уступаю Фарроу.... Изменено 8 апреля, 2012 пользователем _Ivana Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 (изменено) · Жалоба В том-то и дело, что, если функция оцифрована в соответствии с теоремой Котельникова, это будет единственная функция, проходящая через все наши точки. Вот же ж идеалисты. Учебники прямо так и учат. Никаких нуансов. Физику процесса надо бы понимать чтоб так категорично заявлять. Если даже БПФ "затрудняется" точно посчитать амплитуду дробной частоты по _исходным сэмплам_. То уж дубовый интерполятор и подавно не сможет (идеально точно и однозначно). Не стоит забывать, что всегда кол-во сэмплов ограничено на практике. ...особенно учитывая разность в количестве операций Даже в общих чертах не проясните во сколько/насколько быстрее? Изменено 8 апреля, 2012 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба Даже в общих чертах не проясните во сколько/насколько быстрее? В общих чертах... Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3 :) ). Даже если есть аппаратное деление, то мой алгоритм быстрее ..... а вот не знаю насколько - но будет как раз протестировать! :) А уж если нет аппаратного деления - тогда за счет необходимости его эмуляции на асме получается ещё бОльшая разница. Кстати сказать, даже если бы Фарроу и не требовал этого пресловутого деления на 6, то мой алгоритм все равно бы был быстрее :) Но больше не выпытывайте пожалуйста :) Если получится - протестирую на железе и скажу реальную разницу в скорости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба В общих чертах... Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3 :) ) может открою вам глаза, но у меня сплошь и рядом в модемах на ПЛИС используется интерполяторы лагранжа, по структуре Фарроу. Так вот там нет ни одного делителя ;) совсем. И все прекрасно работает ;) так что математика у вас не той системы ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба _Ivana: Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3 sm.gif ). Деление на константу это умножение на константу. Так что в фарроу никаких деление нет в принципе. Есть умножение на константу и перемножение 2-х операндов. Сумма есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба В самом первом посте я написал, что перевел свой алгоритм в целочисленную математику. А если мы будем во флоатах умножать - это уже из другой оперы. Но мой и во флоатах быстрее :) Честно. Именно по количеству операций. Насчет ПЛИС и модемов глаза не открылись, я просто не знаю эту область. Но это не отменяет принципиального факта меньшего количества операций в моем алгоритме :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба Но это не отменяет принципиального факта меньшего количества операций в моем алгоритме :) т.е. вы делаете его быстрее чем 3 умножения и 4 сложения ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 (изменено) · Жалоба т.е. вы делаете его быстрее чем 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 сложений - если считать как я написал, не оптимизированно. Кто посчитает за меньшее? Прошу ваш вариант. Изменено 8 апреля, 2012 пользователем _Ivana Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба Кто посчитает за меньшее? Прошу ваш вариант. да весь интернет знает, только вы в неведении ;) На этом синтез фильтра Фарроу третьего порядка можно считать законченным и подведем некоторые итоги: ..... 2. Фильтр третьего порядка требует всего 3 операции умножения и может применяться в реальном времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NiceParty 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 (изменено) · Жалоба да весь интернет знает, только вы в неведении ;) Прошу прощения, что вмешиваюсь в беседу уважаемых метров DSP. На рисунке 7: "Модифицированный фильтр Фарроу третьего порядка" из приведенной Вами в пример статьи я насчитал 11 операций сложения и 6 операций умножения для итогового значения полинома в точке интерполяции. Если Вы знаете как сократить это число операций, то, пожалуйста, расскажите. Мне бы очень пригодилась данная информация. Заранее спасибо. P.S. Две операции умножения на 1/2, конечно, лучше заменить на арифметический сдвиг вправо (подразумевается целочисленная математика). Но умножение на 1/6 я пока не знаю чем заменить. Буду признателен, если подскажете. Изменено 8 апреля, 2012 пользователем NiceParty Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба да весь интернет знает, только вы в неведении ;) des00 вы просто верите цитатам из интернета, даже не пытаясь проанализировать их смысл? Если найдутся участники, понимающие о чем речь, а также понимающие разницу в количестве операций при умножении на 1/2 и 1/6 даже во флоатах, и при этом будут иметь желание продолжить дискуссию - я готов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба В том-то и дело, что, если функция оцифрована в соответствии с теоремой Котельникова, это будет единственная функция, проходящая через все наши точки. Какая-такая -"Эта"? Вы меня убиваете (без Котельникова). Функция номер раз - кусочно-линейная. Функция номер два - кусочно-квадратичная. Дальше сами... Единственность опровергнута? Ваша. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба P.S. Две операции умножения на 1/2, конечно, лучше заменить на арифметический сдвиг вправо (подразумевается целочисленная математика). Но умножение на 1/6 я пока не знаю чем заменить. Буду признателен, если подскажете. это же просто и уже обсуждаллсь на форуме, умножьте все коэффициенты на 6, в результате этого коэффициенты фильтра будут 1,2,3,6, за счет операции рекомбинации, аналогичной описанной в статье, все переходит к набору сумматоров + сдвиги. что просто реализуется на любой платформе. остается только рассчет полинома. как уже сказал 3 умножения. В кол-ве сложений ошибся, признаюсь. Считать, сколько их там, с учетом оптимальной рекомбинации лень. в результате такой "моидификации", коэффициент усиления преобразования интерполятора будет 6. легко переводиться в 6/8. И совсем привередливым, кому хочеться получить 1цу, приводиться простым делением через умножение. des00 вы просто верите цитатам из интернета, даже не пытаясь проанализировать их смысл? а вы слишком узко смотрите на реализацию :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 8 апреля, 2012 Опубликовано 8 апреля, 2012 · Жалоба а вы слишком узко смотрите на реализацию :) Вы правы, спасибо за демонстрацию оптимизации, я смотрел узко. Но даже при этом мой алгоритм быстрее на любых платформах :) Так что отвечая на ваш вопрос выше - да, я свое значение считаю быстрее Фарроу при любой оптимизации последнего и платформе :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться