|
Придумал алгоритм интерполяции. Протестируем результаты?, вызов от дилетанта |
|
|
|
Apr 7 2012, 12:23
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Пару дней назад пришлось вникнуть в азы ЦОС на примере ресемплинга. Почитал пару-тройку страничек в инете, про двойной апсемплинг, оконные функции, полиномы Лагранжа-Фарроу и т.п. И придумал свой алгоритм  Без таблиц, на чистой математике. По объему операций существенно меньше Фарроу. Реализовал его, как обычно, сначала на 1С  Посмотрел графики. Потом перевел в целочисленную математику и с помощью коллеги наваял программку - ресемплер wav файлов. С заданием частоты ресемплинга и выбором варианта - своего или Фарроу. Собственно, предлагаю: заинтересованные лица выкладывают вавки, я их ресемплю с нужной частотой двумя вариантами и выкладываю на всеобщее скачивание/заслушивание. Желающие делятся своими мнениями по поводу  ЗЫ поскольку я совершенный дилетант в сабжевом вопросе, я вполне допускаю что этот алгоритм уже давно придуман до меня. Но навскидку я не нашел ничего похожего. Графические примеры работы алгоритмов: точки 50, 70, 20, края диапазона добиты нулями. График - ось абсцисс вниз, ординат - вправо. Фарроу: CODE *--- 0 * * * * * * * * * *--- 0 * * * * * * * * * *--- 50 * * * * * * * * * *--- 70 * * * * * * * * * *--- 20 * * * * * * * * * *--- 0 * * * * * * * * *
Мой алгоритм: CODE *--- 0 * * * * * * * * * *--- 0 * * * * * * * * * *--- 50 * * * * * * * * * *--- 70 * * * * * * * * * *--- 20 * * * * * * * * * *--- 0 * * * * * * * * *
За качество обоих графиков извиняйте - они в псевдографике с грубым "разрешением", на самом деле они более красивые
Сообщение отредактировал _Ivana - Apr 7 2012, 12:31
|
|
|
|
|
 |
Ответов
(105 - 119)
|
Apr 10 2012, 19:52
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(_Ivana @ Apr 10 2012, 22:45)  Ну насчет палок в спектре и кривоты синуса - повторюсь, кажется это уже не ко мне. По 4 точкам при 5 отсчетах на период что Катмулл-Ром что Фарроу интерполируют именно так. Это же вам не синк 64-точечный в конце концов!  5 отсчетов на период здесь не при чем. Как уже говорил, они однозначно определяют функцию. Насчет кривого синуса - очень сомнительно, что это лучшее, на что способна полиномиальная интерполяция. А насчет палок - если вам достаточно такого звука, то можно успокоиться. Гармоники... все равно ухом не расслышать. Ну, будет чуть звонче с гармониками... Но мне, кажется, вы не захотите остановиться на сделанном. При вашей-то энергии.  upd. Посмотрел на линейную интерполяцию. Да, пожалуй полиномами не вытянуть синус по пяти точкам.
|
|
|
|
|
Apr 10 2012, 19:58
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата(ViKo @ Apr 10 2012, 23:52)  5 отсчетов на период здесь не при чем. Как уже говорил, они однозначно определяют функцию. Насчет кривого синуса - очень сомнительно, что это лучшее, на что способна полиномиальная интерполяция. А вот тут вы и становитесь заложником собственных убеждений!  ОНИ однозначно определяют функцию, только если эти ОНИ - ВСЕ точки выборки! И причем тут как раз именно то. что при полиномиальной интерполяции мы считаем значение только по N окрестным - в данном случае всего 4-м точкам  Можно посчитать полином хоть по 20 точкам. но во первых это сложнее. а во вторых - ХУЖЕ по результатам - в силу математики осцилляций и потери точности при расчетах больших степеней. А насчет звука - повторю предложенное 7 страниц назад - присылайте вавку, ресемплю вам её и послушаете на какой хотите аудиофильской аппаратуре  Смею предположить, что результат "кривого синуса" вас может сильно удивить
|
|
|
|
|
Apr 10 2012, 20:05
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(_Ivana @ Apr 10 2012, 22:58)  Можно посчитать полином хоть по 20 точкам. но во первых это сложнее. а во вторых - ХУЖЕ по результатам - в силу математики осцилляций и потери точности при расчетах больших степеней. А по скольким будет НЕ хуже, а ЛУЧШЕ? Как насчет восьми? Цитата А насчет звука - повторю предложенное 7 страниц назад - присылайте вавку, ресемплю вам её и послушаете на какой хотите аудиофильской аппаратуре  Смею предположить, что результат "кривого синуса" вас может сильно удивить  Нечему там удивляться, с учетом только что сказанного мной. Хорошо, если вы отличите на слух пилу от прямоугольника.  (Скажу по секрету, что мне результат интерполяции нужно не слушать, а смотреть) P.S. "Даю установку" - CIC, CIC, CIC!
|
|
|
|
|
Apr 10 2012, 20:10
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата ViKo: Как уже говорил, они однозначно определяют функцию. Вам уже писали, что через эти 5 точек можно провести бесконечное множество функций. Так что никакой однозначности тут нет.
|
|
|
|
|
Apr 10 2012, 20:11
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата(ViKo @ Apr 11 2012, 00:05)  А по скольким будет НЕ хуже, а ЛУЧШЕ? Как насчет восьми? Нечему там удивляться, с учетом только что сказанного мной. Хорошо, если вы отличите на слух пилу от прямоугольника.  (Скажу по секрету, что мне результат интерполяции нужно не слушать, а смотреть) Цитата Поэтому на практике часто используют интерполянты степени не выше 5-6. http://www.exponenta.ru/educat/systemat/ch...shin/theory.aspА насчет пилы и прямоугольника - тестирование на аппаратуре высокого класса показывает явно недостатки линейной интерполяции, Фарроу и Катмулл-Ром я не отличаю от оригинала, хотя знакомый аудиофил говорит только что-то про "размытость сцены"  , а Лагранжем 4-го порядка и он доволен
|
|
|
|
|
Apr 10 2012, 20:19
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата(ViKo @ Apr 11 2012, 00:15)  "Понтовался" ваш аудиофил. Откуда в монозвуке "сцена" и ее размытость? Главное Вы не понтуйтесь  С чего вы взяли что я ресемплю только монозвук?  Откуда такие неверные предположения? И почитайте мою ссылку - там кратко и доступно про полиномиальную интерполяцию, хотя и далеко не все.
|
|
|
|
|
Apr 10 2012, 21:43
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Для верности я бы порекомендовал убедиться что ваш кубический интерполятор считается правильно и без ошибок. Говорю по собственному опыту, а то сами знаете как бывает - показываешь графики а потом оказывается что в расчете ошибка  А если все правильно но результат вас не устраивает, можно спросить у тех кто проходил подобный путь поиска, я вроде видел здесь темы про выбор алгоритма интерполяции изображений. А по поводу интерполяции полиномами больших степеней - вспомнил былое  ... Как году так в 92-м, во время обучения в универе, развлекался следующим образом - написал программу на Паскале, с выводом графиков (решение системы 10*10 конечно вызывал библиотеку  ). Задаю 10 точек - точно по прямой линии. итоговый полином - прямая линия. Чуть-чуть смещаю одну из точек вверх или вниз, буквально на немножко - и начинается такое, что просто было страшно. Реально на самом деле страшно становилось - от осознания того факта, к каким ужасным последствиям может приводить одна малейшая неточность.
|
|
|
|
|
Apr 10 2012, 22:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(_Ivana @ Apr 11 2012, 00:35)  А насчет отсутствия палок в спектре, боюсь тут я бессилен  Судя по картинкам синусоиды, интерполируется она настолько хорошо, насколько может по данным алгоритмам. Если речь о ВЧ-палках, то из любопытства синком попробуйте. Ширину синка возьмите в районе точек 20-100, в зависимости от точек на период синуса (при 2.5 - 100, чем больше точек в синусе, тем уже синк). Это так, для понимания "бессилен". По поводу боольшого кол-ва вычислений, ясен пень
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|