Перейти к содержанию
    

Придумал алгоритм интерполяции. Протестируем результаты?

А линейную интерполяцию можете забомбить, для сравнения?

Что-то много лишнего. Откуда взялись частоты 2 kHz и 3 kHz? Если частота дискретизации была 5 kHz, то будут только 1 kHz и 4 kHz, ну и т.д. 14, 16, 19, 21... После интерполяции в идеале должны были остаться только 1 kHz и 49 kHz.

А много ли точек в вашем кадре, по которому спектр вычисляете? А не увеличить ли количество раз в 250? И окна еще разные можно попробовать.

 

P.S. А линейный масштаб по частоте приятнее будет смотреться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По порядку - спектр исходного сигнала, после линейной интерполяции (:) ) и Лагранж 4-го порядка.

post-66710-1334077865_thumb.jpg

post-66710-1334077871_thumb.jpg

post-66710-1334077875_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где какой? А красный и синий что за спектры?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. А линейный масштаб по частоте приятнее будет смотреться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лагранж-4 из последних 3-х картинок самый зашумленный. Синий - мгновенный, красный - пиковый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, и как это понимать? Что линейная интерполяция более качественная???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подозреваю что на вашем примере - да. При ресемплировании того же синуса 1кГц из 44100 в те же 50000 будет совершенно другая картина, спектр линейного преобразования будет содержать больше ВЧ составляющих.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подозреваю что на вашем примере - да.

Странно...

То есть, имеем 5 точек на синусоиде. Забили внутри каждого промежутка между точками еще по 9 (увеличили частоту дискретизации в 10 раз). В первый раз тупо ровненько по прямой, во второй - по хитрому полиному Лагранжа. И оказалось, что первый вариант лучше?

Можно узнать ответы на все вопросы в сообщении 91?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Количество точек FFT = 16384. А на другие вопросы или ответил, или они риторические.

Впрочем, могу прислать вам вавки - сами проанализируете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Количество точек FFT = 16384. А на другие вопросы или ответил, или они риторические.

Впрочем, могу прислать вам вавки - сами проанализируете.

Тогда, если интерес у Вас не пропал, попробуйте интерполировать цифровыми фильтрами. Например, каскадным интегратором-гребенчатым фильтром, CIC. Похоже, интерполяция полиномами не даст качественного звука.

Та же ссылка, что уже давал, а от нее - дальше...

http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%...%86%D0%B8%D1%8F

 

Ну, и сами синусоиды покажите, что ли? По паре периодов. Может, на глаз что-то неправильное попадется?

А если разрядность увеличить? А если там ограничение возникает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас посмотрю синусоиды на глаз, и попробую ещё кое-что. Блин, мой косяк!!! Маза-фаза.... Предыдушим полиномиальным спектрам не верить! буду искать ошибку... :)

post-66710-1334082594_thumb.jpg

Изменено пользователем _Ivana

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Похоже, интерполяция полиномами не даст качественного звука...

Ну, во-первых, как мне кажется, топикстартер где-то накосячил со спектрами. Когда я строил подобные картинки, то у меня они были посимпатичней.

 

А во-вторых, смотря для чего эту интерполяцию использовать.

Для апсемплинга от 48кГц к 192кГц она не подходит. Поэтому используют стандартные sinc-и, но они требуют существенно большего объема вычислений.

Если же использовать интерполяцию для ресемплинга аудио, например от 44100 к 48000, то результат получается вполне сносным.

Я отслушивал результаты подобного ресемплинга. Для ряда применений этого может оказаться вполне достаточным.

 

Попросите топикстартера сделать спектрограммы ресемплинга 8кГц синуса из 44100 (чтобы соблюсти пропорцию частоты сигнала и дискретизации) в 48000 по разным вариантам полиномиальной интерполяции. Думаю, это будет интересным.

 

P.S. Пока писал, топикстартер уже нашел у себя ошибку :)

Изменено пользователем NiceParty

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде теперь на глаз все без выбросов (при попытке увеличить точность в интеджерах вылетал за их пределы).

Новые графики: Катмулл-Ром, Фарроу и линейка. Надеюсь, это будет больше похоже на правду :)

post-66710-1334084503_thumb.jpg

post-66710-1334084508_thumb.jpg

post-66710-1334084513_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А теперь сделайте, чтобы этих палок не было! :)

"вы знаете какое-нибудь другое мирное русло, в которое я мог бы направить свой избыток энергии, и которое было бы не менее интересно и увлекательно?" По-моему - очень достойное занятие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А теперь сделайте, чтобы этих палок не было! :)

Каких палок? :) Выбросов на синусоиде? Сделал уже. И спектры привел уже по интерполяции без выбросов. У меня алгоритм в целых числах считает, и до последнего времени я использовал 15бит точности задания времени, все было хорошо, но мне пожадничалось и захотелось 16, я добавил разрядов, а ваш пример как раз показал что надо оставить 15бит :) Спасибо Вам за такой тест на ошибку :) Теперь все красиво.

А насчет отсутствия палок в спектре, боюсь тут я бессилен :) Судя по картинкам синусоиды, интерполируется она настолько хорошо, насколько может по данным алгоритмам.

post-66710-1334086646_thumb.jpg

post-66710-1334086651_thumb.jpg

Изменено пользователем _Ivana

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...