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

|
По порядку - спектр исходного сигнала, после линейной интерполяции (  ) и Лагранж 4-го порядка.
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 10 2012, 18:10
|

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

|
Цитата(_Ivana @ Apr 10 2012, 21:01)  Количество точек FFT = 16384. А на другие вопросы или ответил, или они риторические. Впрочем, могу прислать вам вавки - сами проанализируете. Тогда, если интерес у Вас не пропал, попробуйте интерполировать цифровыми фильтрами. Например, каскадным интегратором-гребенчатым фильтром, CIC. Похоже, интерполяция полиномами не даст качественного звука. Та же ссылка, что уже давал, а от нее - дальше... http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%...%86%D0%B8%D1%8FНу, и сами синусоиды покажите, что ли? По паре периодов. Может, на глаз что-то неправильное попадется? А если разрядность увеличить? А если там ограничение возникает?
|
|
|
|
|
Apr 10 2012, 18:37
|
Участник

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

|
Цитата(ViKo @ Apr 10 2012, 22:10)  ...Похоже, интерполяция полиномами не даст качественного звука... Ну, во-первых, как мне кажется, топикстартер где-то накосячил со спектрами. Когда я строил подобные картинки, то у меня они были посимпатичней. А во-вторых, смотря для чего эту интерполяцию использовать. Для апсемплинга от 48кГц к 192кГц она не подходит. Поэтому используют стандартные sinc-и, но они требуют существенно большего объема вычислений. Если же использовать интерполяцию для ресемплинга аудио, например от 44100 к 48000, то результат получается вполне сносным. Я отслушивал результаты подобного ресемплинга. Для ряда применений этого может оказаться вполне достаточным. Попросите топикстартера сделать спектрограммы ресемплинга 8кГц синуса из 44100 (чтобы соблюсти пропорцию частоты сигнала и дискретизации) в 48000 по разным вариантам полиномиальной интерполяции. Думаю, это будет интересным. P.S. Пока писал, топикстартер уже нашел у себя ошибку
Сообщение отредактировал NiceParty - Apr 10 2012, 18:40
|
|
|
|
|
Apr 10 2012, 19:02
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

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

|
Цитата(ViKo @ Apr 10 2012, 23:29)  А теперь сделайте, чтобы этих палок не было!  Каких палок?  Выбросов на синусоиде? Сделал уже. И спектры привел уже по интерполяции без выбросов. У меня алгоритм в целых числах считает, и до последнего времени я использовал 15бит точности задания времени, все было хорошо, но мне пожадничалось и захотелось 16, я добавил разрядов, а ваш пример как раз показал что надо оставить 15бит  Спасибо Вам за такой тест на ошибку  Теперь все красиво. А насчет отсутствия палок в спектре, боюсь тут я бессилен  Судя по картинкам синусоиды, интерполируется она настолько хорошо, насколько может по данным алгоритмам.
Сообщение отредактировал _Ivana - Apr 10 2012, 19:40
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|