реклама на сайте
подробности

 
 
11 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Придумал алгоритм интерполяции. Протестируем результаты?, вызов от дилетанта
_Ivana
сообщение Apr 7 2012, 12:23
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Пару дней назад пришлось вникнуть в азы ЦОС на примере ресемплинга. Почитал пару-тройку страничек в инете, про двойной апсемплинг, оконные функции, полиномы Лагранжа-Фарроу и т.п. И придумал свой алгоритм sm.gif Без таблиц, на чистой математике. По объему операций существенно меньше Фарроу. Реализовал его, как обычно, сначала на 1С sm.gif Посмотрел графики. Потом перевел в целочисленную математику и с помощью коллеги наваял программку - ресемплер wav файлов. С заданием частоты ресемплинга и выбором варианта - своего или Фарроу.

Собственно, предлагаю: заинтересованные лица выкладывают вавки, я их ресемплю с нужной частотой двумя вариантами и выкладываю на всеобщее скачивание/заслушивание. Желающие делятся своими мнениями по поводу sm.gif

ЗЫ поскольку я совершенный дилетант в сабжевом вопросе, я вполне допускаю что этот алгоритм уже давно придуман до меня. Но навскидку я не нашел ничего похожего.

Графические примеры работы алгоритмов: точки 50, 70, 20, края диапазона добиты нулями. График - ось абсцисс вниз, ординат - вправо.
Фарроу:
CODE

      *--- 0
     *
    *
   *
   *
  *
  *
   *
   *
    *
      *--- 0
          *
              *
                   *
                        *
                             *
                                   *
                                        *
                                             *
                                                   *
                                                        *--- 50
                                                            *
                                                               *
                                                                  *
                                                                     *
                                                                        *
                                                                          *
                                                                           *
                                                                            *
                                                                            *
                                                                            *--- 70
                                                                        *
                                                                    *
                                                               *
                                                          *
                                                     *
                                                *
                                          *
                                    *
                               *
                          *--- 20
                      *
                   *
                 *
              *
            *
           *
         *
        *
      *
      *--- 0
     *
     *
    *
    *
    *
    *
     *
     *
     *

Мой алгоритм:
CODE

      *--- 0
     *
     *
    *
   *
  *
  *
  *
  *
   *
      *--- 0
         *
             *
                  *
                       *
                             *
                                   *
                                         *
                                               *
                                                   *
                                                        *--- 50
                                                           *
                                                               *
                                                                  *
                                                                     *
                                                                        *
                                                                          *
                                                                            *
                                                                            *
                                                                            *
                                                                            *--- 70
                                                                         *
                                                                      *
                                                                 *
                                                           *
                                                     *
                                               *
                                         *
                                   *
                              *
                          *--- 20
                      *
                   *
                 *
              *
            *
           *
         *
        *
       *
      *--- 0
     *
    *
    *
    *
    *
     *
     *
     *
     *

За качество обоих графиков извиняйте - они в псевдографике с грубым "разрешением", на самом деле они более красивые sm.gif

Сообщение отредактировал _Ivana - Apr 7 2012, 12:31
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 7 2012, 13:11
Сообщение #2


Универсальный солдатик
******

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



Не логичнее выложить сам алгоритм?
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Apr 7 2012, 13:24
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Я бы не хотел его обнародовать. По крайней мере, пока не увижу его описание где-либо sm.gif
Go to the top of the page
 
+Quote Post
litv
сообщение Apr 7 2012, 13:27
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



заслушивание на слух это - для музыкантов. Вы возьмите спектр от Вашего примера( до и после ресемплирования) и от Фароу например .
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Apr 7 2012, 13:33
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



В моем слабеньком спектроанализаторе из программки GoldWave я на глаз не могу увидеть существенных отличий. К тому же, я предполагаю, что существуют и другие методы количественных оценок качества ресемплинга. Но поскольку я (повторюсь) дилетант в вопросе, я и решил самонадеянно выйти на суд знающей общественности sm.gif Которая может подсунет сумму синусов некратных частот в вавке, проанализирует результаты ресемплинга разными суровыми методами и скажет - ээээ, батенька, не тянет ваш алгоритм sm.gif Или наоборот.

ОФФ - увидел "Воронеж" подписи и решил себе тоже написать sm.gif

Сообщение отредактировал _Ivana - Apr 7 2012, 13:37
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 7 2012, 13:41
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(_Ivana @ Apr 7 2012, 08:33) *
В моем слабеньком спектроанализаторе из программки GoldWave я на глаз не могу увидеть существенных отличий.

ИМХО на глаз и на слух это субъективная оценка, надо сравнить системы (для интерполяторов лагранжа, в том числе по структуре Фарроу, накладываются определенные ограничения применения), построить частотные характеристики интерполятора при разных задержках, оценить ошибки интерполяции и т.д. Без алгоритма, по звуковому файлу это сделать крайне затруднительно.

Да и фарроу в звуковой аппаратуре лучше заменить банком фир фильтров (если вычислительный ресурс позволяет).


--------------------
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Apr 7 2012, 13:48
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



des00 спасибо за задание направления дальнейшего анализа. Чувствую, придется самому разбираться с перечисленными вами методами анализа sm.gif Я наивно полагал что вавка может дать информацию. Хотя если кого заинтересует - предложение о тестовом сравнительном ресемплинге в силе.

И конечно Фарроу не самый лучший вариант. Я его беру только как сравнительный пример: мой алгоритм в принципе другой, но содержит меньше операций чем Фарроу. Если он окажется лучше последнего по результатам, мне будет приятно sm.gif
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 7 2012, 13:59
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(_Ivana @ Apr 7 2012, 08:48) *
Чувствую, придется самому разбираться с перечисленными вами методами анализа sm.gif

найдите в сети документ " Maximally Flat FD FIR Filter: Lagrange Interpolation" (первая строка гугла wink.gif) по нему сможете понять какими характеристиками описывается интерполятор лагранжа.


Цитата(_Ivana @ Apr 7 2012, 08:48) *
Если он окажется лучше последнего по результатам, мне будет приятно sm.gif

а частных случаях можно придумать много разных алгоритмов интерполяции, лагранж он как бы более общий. Кстати когда будете тестировать свой интерполятор, "покачайте" частотой на которую делаете ресамплинг. Ну и спектр при этом посмотрите wink.gif


--------------------
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Apr 7 2012, 14:07
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Спасибо. Если кому есть что добавить по методам оценки алгоритмов, буду только рад. Я разберусь с методами оценки и анализа интерполяторов, протестирую свой алгоритм и не буду скрывать результаты sm.gif
Go to the top of the page
 
+Quote Post
thermit
сообщение Apr 7 2012, 15:18
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
_Ivana:
По объему операций существенно меньше Фарроу.



1. Фарроу - структура интерполятора лагранжа с минимальным числом умножителей.

2. Интерполяция - большой раздел вычислительной математики. Интерполяция лагранжа - самый простой (со всех
точек зрения) способ полиномиальной интерполяции. Придумать что-либо проще нее - это вряд-ли.

Сообщение отредактировал thermit - Apr 7 2012, 15:19
Go to the top of the page
 
+Quote Post
Tanya
сообщение Apr 7 2012, 17:00
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_Ivana @ Apr 7 2012, 18:07) *
Спасибо. Если кому есть что добавить по методам оценки алгоритмов, буду только рад. Я разберусь с методами оценки и анализа интерполяторов, протестирую свой алгоритм и не буду скрывать результаты sm.gif

Вот думаю-думаю, а понять не могу. Если есть N точек, то через них можно "провести" единственную кривую, описываемую полиномом N-1 порядка. В чем Ваша альтернативность?
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Apr 7 2012, 17:47
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Я не знаю как прокомментировать последние реплики. Во-первых, я нигде не утверждал что моя интерполяция полиномиальна. Хотя и обратного я тоже не утверждал sm.gif И таки да, по объему вычислений она проще Фарроу.
К тому же, в первом посте я привел графики. Пусть и грубые, но там видно, что моя интерполяция не совпадает с Фарроу и не является ей, а значит и Лагранжем 3-го порядка как минимум. Если интересует проверка на других исходных данных - выложите ваши точки, покажу новые графики.

Лучше подскажите нормальный спектроанализатор вавок (из файла на не со входа звуковухи), и чтобы весил не как СаундФордж. А если ещё и будет выдавать численные коэффициенты - вообще было бы хорошо. Сразу выложу вам цифры и спектры ресемплинга простых и не очень простых сигналов. Мой GoldWave не видит разницы при ресемплинге на +500Гц (в оцифровку 44600) как на синусе 500Гц (оцифровка 44100) так и на сумме синусов с биением частоты в 1%.

Сообщение отредактировал _Ivana - Apr 7 2012, 17:56
Go to the top of the page
 
+Quote Post
sup-sup
сообщение Apr 7 2012, 18:50
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997



Цитата(_Ivana @ Apr 7 2012, 20:47) *
Я не знаю как прокомментировать последние реплики. Во-первых, я нигде не утверждал что моя интерполяция полиномиальна. Хотя и обратного я тоже не утверждал sm.gif И таки да, по объему вычислений она проще Фарроу.
К тому же, в первом посте я привел графики. Пусть и грубые, но там видно, что моя интерполяция не совпадает с Фарроу и не является ей, а значит и Лагранжем 3-го порядка как минимум. Если интересует проверка на других исходных данных - выложите ваши точки, покажу новые графики.

Лучше подскажите нормальный спектроанализатор вавок (из файла на не со входа звуковухи), и чтобы весил не как СаундФордж. А если ещё и будет выдавать численные коэффициенты - вообще было бы хорошо. Сразу выложу вам цифры и спектры ресемплинга простых и не очень простых сигналов. Мой GoldWave не видит разницы при ресемплинге на +500Гц (в оцифровку 44600) как на синусе 500Гц (оцифровка 44100) так и на сумме синусов с биением частоты в 1%.

SpectraPlus.
Действительно, спектр рассудит.
Можно найти в 'радиосканнере'

Сообщение отредактировал sup-sup - Apr 7 2012, 18:59
Go to the top of the page
 
+Quote Post
thermit
сообщение Apr 7 2012, 19:06
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



1. Оценка погрешности интерполяции заключается в оценке характеристик разности между результатом интерполяции и истинными значениями функции. Все остальные спектралабы, саундфрджы и др суперанализаторы мегаспектров тут не годятся.

2. По вашим рисункам лично я вообще не сказал бы, что это результат какой-либо интерполяции.

3. Гениеф дофига. Нормальных инженеров не хватает.
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Apr 7 2012, 19:41
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Спасибо, скачал, поставил. Сгенерировать ключ не удалось, использую 30-дневную версию. Действительно много возможностей. Навскидку, что увидел:
Исходный синус 500Гц (44100) THD = 0.00063, IMD = 0.1798
ресемплится в 44600.
Мой алгоритм: THD = 0.00124, IMD = 0.2349
Фарроу: THD = 0.00109, IMD = 0.2349
Если ничего не напутал sm.gif

Биения 500Гц + 1%
Исходный сигнал THD = 0.00054, IMD = 0.6593
Мой алгоритм: THD = 0.00180, IMD = 0.6442
Фарроу: THD = 0.00125, IMD = 0.6443

Термит, если нечего сказать конструктивно (кроме очевидной методики проверки отклонения от целевого сигнала). то можно просто не писать в этот топик?

2 картинки спектра ресемплинга биений 500Гц+1% (ресемплинг на 500Гц). Первая - мой алгоритм, вторая - Фарроу:

Принимаются пожелания какие ещё тестовые сигналы ресемплить и посмотреть, спектр, какие может показательные коэффициенты (сигнал/шум там или что ещё из имеющегося в СпектраПлюсе) sm.gif

Сообщение отредактировал _Ivana - Apr 7 2012, 19:29
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

11 страниц V   1 2 3 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 00:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01503 секунд с 7
ELECTRONIX ©2004-2016