|
|
  |
Придумал алгоритм интерполяции. Протестируем результаты?, вызов от дилетанта |
|
|
|
Apr 8 2012, 13:32
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата _Ivana: В наш век Кали Юги на дворе не все всем все рассказывают Гы. Я буду первым, кто скомуниздит ваш супералгоритм и сказочно обогатится...
|
|
|
|
|
Apr 8 2012, 13:37
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Шутки шутками, а вот если бы моя кривая прошла ниже Фарроу, тогда уже был бы совсем другой разговор  Хотя, надо наверное ещё покрутить - поанализировать отклонения. Статистическими методами, например. Вдруг да окажется, что для какого-то класса задач и сигналов мой алгоритм будет иметь преимущество?  Хотя имхо и так неплохие результаты, особенно учитывая разность в количестве операций  Средняя ошибка. Тоже уступаю Фарроу....
Сообщение отредактировал _Ivana - Apr 8 2012, 13:48
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 8 2012, 13:48
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(ViKo @ Apr 8 2012, 18:10)  В том-то и дело, что, если функция оцифрована в соответствии с теоремой Котельникова, это будет единственная функция, проходящая через все наши точки. Вот же ж идеалисты. Учебники прямо так и учат. Никаких нуансов. Физику процесса надо бы понимать чтоб так категорично заявлять. Если даже БПФ "затрудняется" точно посчитать амплитуду дробной частоты по _исходным сэмплам_. То уж дубовый интерполятор и подавно не сможет (идеально точно и однозначно). Не стоит забывать, что всегда кол-во сэмплов ограничено на практике. Цитата(_Ivana) ...особенно учитывая разность в количестве операций Даже в общих чертах не проясните во сколько/насколько быстрее?
Сообщение отредактировал GetSmart - Apr 8 2012, 13:54
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Apr 8 2012, 13:55
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата(GetSmart @ Apr 8 2012, 17:48)  Даже в общих чертах не проясните во сколько/насколько быстрее? В общих чертах... Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3  ). Даже если есть аппаратное деление, то мой алгоритм быстрее ..... а вот не знаю насколько - но будет как раз протестировать!  А уж если нет аппаратного деления - тогда за счет необходимости его эмуляции на асме получается ещё бОльшая разница. Кстати сказать, даже если бы Фарроу и не требовал этого пресловутого деления на 6, то мой алгоритм все равно бы был быстрее  Но больше не выпытывайте пожалуйста  Если получится - протестирую на железе и скажу реальную разницу в скорости.
|
|
|
|
|
Apr 8 2012, 14:07
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата _Ivana: Ну например, при расчете Фарроу используется деление на 6 (хорошо, уговорили - на 3 sm.gif ). Деление на константу это умножение на константу. Так что в фарроу никаких деление нет в принципе. Есть умножение на константу и перемножение 2-х операндов. Сумма есть.
|
|
|
|
|
Apr 8 2012, 14:21
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата(des00 @ Apr 8 2012, 18:15)  т.е. вы делаете его быстрее чем 3 умножения и 4 сложения ? Давайте разберемся. Вот Фарроу: CODE а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 - Apr 8 2012, 14:22
|
|
|
|
|
Apr 8 2012, 14:47
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(_Ivana @ Apr 8 2012, 08:21)  Кто посчитает за меньшее? Прошу ваш вариант. да весь интернет знает, только вы в неведении Цитата На этом синтез фильтра Фарроу третьего порядка можно считать законченным и подведем некоторые итоги: ..... 2. Фильтр третьего порядка требует всего 3 операции умножения и может применяться в реальном времени.
--------------------
|
|
|
|
|
Apr 8 2012, 14:56
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 357

|
Цитата(des00 @ Apr 8 2012, 18:47)  да весь интернет знает, только вы в неведении  Прошу прощения, что вмешиваюсь в беседу уважаемых метров DSP. На рисунке 7: "Модифицированный фильтр Фарроу третьего порядка" из приведенной Вами в пример статьи я насчитал 11 операций сложения и 6 операций умножения для итогового значения полинома в точке интерполяции. Если Вы знаете как сократить это число операций, то, пожалуйста, расскажите. Мне бы очень пригодилась данная информация. Заранее спасибо. P.S. Две операции умножения на 1/2, конечно, лучше заменить на арифметический сдвиг вправо (подразумевается целочисленная математика). Но умножение на 1/6 я пока не знаю чем заменить. Буду признателен, если подскажете.
Сообщение отредактировал NiceParty - Apr 8 2012, 15:05
|
|
|
|
|
Apr 8 2012, 14:57
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата(des00 @ Apr 8 2012, 18:47)  да весь интернет знает, только вы в неведении  des00 вы просто верите цитатам из интернета, даже не пытаясь проанализировать их смысл? Если найдутся участники, понимающие о чем речь, а также понимающие разницу в количестве операций при умножении на 1/2 и 1/6 даже во флоатах, и при этом будут иметь желание продолжить дискуссию - я готов.
|
|
|
|
|
Apr 8 2012, 14:59
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(ViKo @ Apr 8 2012, 17:10)  В том-то и дело, что, если функция оцифрована в соответствии с теоремой Котельникова, это будет единственная функция, проходящая через все наши точки. Какая-такая -"Эта"? Вы меня убиваете (без Котельникова). Функция номер раз - кусочно-линейная. Функция номер два - кусочно-квадратичная. Дальше сами... Единственность опровергнута? Ваша.
|
|
|
|
|
Apr 8 2012, 15:13
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(NiceParty @ Apr 8 2012, 08:56)  P.S. Две операции умножения на 1/2, конечно, лучше заменить на арифметический сдвиг вправо (подразумевается целочисленная математика). Но умножение на 1/6 я пока не знаю чем заменить. Буду признателен, если подскажете. это же просто и уже обсуждаллсь на форуме, умножьте все коэффициенты на 6, в результате этого коэффициенты фильтра будут 1,2,3,6, за счет операции рекомбинации, аналогичной описанной в статье, все переходит к набору сумматоров + сдвиги. что просто реализуется на любой платформе. остается только рассчет полинома. как уже сказал 3 умножения. В кол-ве сложений ошибся, признаюсь. Считать, сколько их там, с учетом оптимальной рекомбинации лень. в результате такой "моидификации", коэффициент усиления преобразования интерполятора будет 6. легко переводиться в 6/8. И совсем привередливым, кому хочеться получить 1цу, приводиться простым делением через умножение. Цитата(_Ivana @ Apr 8 2012, 08:57)  des00 вы просто верите цитатам из интернета, даже не пытаясь проанализировать их смысл? а вы слишком узко смотрите на реализацию
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|