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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Передискретизация звука методом интерполяции, подскажите качественный алгоритм
thermit
сообщение Nov 17 2011, 18:11
Сообщение #16


Знающий
****

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



Цитата
Fast:
и каким же образом up-samp на полифазнике в N-раз (+Фарроу) нам поднимет качество больше чем up-samp на КИХ-фильтре в 2 раза (+Фарроу)?

p.s. Могу представить только один вариант, если это Фарроу 3го порядка, с пологой АЧХ, для которого надо стабильно повышать в 4, а лучше в 8 раз сигнал. При Лагранже 8-порядка повышай хоть в 4, 8, 128 - качеству взяться неоткуда..


Вообще-то ошибка интерполяции лагранжа зависит только от шага сетки и порядка полинома. Как ни трудно догадаться, для понижения ошибки интерполяции достаточно повысить порядок, или уменьшить шаг сетки (повысить частоту дискретизации), или и то и другое. Берем, повышаем частоту дискретизации раз в 10 (фнч, реализация естественно полифазная, выж в 21 веке на нули не умножаете - вот и полифазная реализация), сетка становится в 10 раз чаще и на этой сетке получаем ошибку лагранжевой кубической интерполяции такую, до которой с начально сеткой запаритесь порядок полинома повышать. Так что качество тут ограничено исключительно вычислительными способностями устройства.


Go to the top of the page
 
+Quote Post
Fast
сообщение Nov 17 2011, 18:31
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(thermit @ Nov 17 2011, 22:11) *
Берем, повышаем частоту дискретизации раз в 10
а чего не в 11, или в 500 ? хотелось понять сей великий сексуальный математический смысл =))
Go to the top of the page
 
+Quote Post
Самурай
сообщение Nov 17 2011, 18:45
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(soolo @ Nov 17 2011, 14:35) *
Стоит казалось бы банальная задача: Сигнал с опорной частотой 44.1 кГц преобразовать в сигнал с частотой 48 кГц. Алгоритмы с FFT по некоторым причинам не подходят, поэтому было решено использовать интерполяцию. Но коэффициент 1.088 и звуки вплоть до всеми любимых 20 кГц пока что ставят нас в тупик. Алгоритмы Lanczos, B-Spline, Mittchel, Sinc результат дают, но где-то гармоники зашкаливают, где-то частоты урезаются.
В первую очередь интересуют минимальные гармонические искажения, задача вторая по степени важности - минимальный срез АЧХ. Может быть есть более подходящие для обработки звука алгоритмы? Подскажите, пожалуйста!


Я не совсем понимаю, а что мешает Вам реализовать честный интерполятор в 48/44.1 = 160/147 раз? Честно повышаете частоту дискретизации в 160 раз, честно фильтруете наложения (тем самым полифазным фильтром, про который тут дискуссия возникла), потом честно оставляете только каждый 147-ой отсчет, остальное честно выкидываете нафигsm.gif. Тем более что Вы сами говорили, что особых ограничений на ресурсы у Вас нет. Да и какие нафиг нужны ресурсы, когда все частоты "детские"??? Для справки, 160 = 2*2*2*2*2*5, т.е. частоту можно повышать постепенно, после каждого шага фильтруете наложения, первый фильтр навскидку 100...140-ого порядка (для подавления наложений в 100...120дБ), второй фильтр примерно 15-ый порядок, остальные фильтры на уровне нуля. Реализация фильтра 100-ого порядка на частоте 44кГц (та самая полифазность) требует 5-10MIPS, о чем тут вообще говорить?
Go to the top of the page
 
+Quote Post
soolo
сообщение Nov 17 2011, 18:53
Сообщение #19





Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362



Цитата(petrov @ Nov 17 2011, 14:39) *
Полифазные фильтры + интерполятор Farrow.

Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения
Go to the top of the page
 
+Quote Post
Самурай
сообщение Nov 17 2011, 19:02
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(soolo @ Nov 17 2011, 21:53) *
Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения


Да, еще два замечания:

1. Все фильтры для интерполяции в 2 раза можно сделать Halfband-ами, вычислительные ресурсы уменьшатся в 2 раза.
2. Если Вам нужны только стандартные частоты, то выкинуть нафиг Farrow, он в этом случае совсем не нужен. Lanczos, B-Spline, Mittchel туда жеsm.gif
Go to the top of the page
 
+Quote Post
thermit
сообщение Nov 17 2011, 19:07
Сообщение #21


Знающий
****

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



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

Цитата
soolo:
Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения


Большие степеня полиномов и не требуются. Оверсемплинг побольше и фильтр покруче. Какие требования к преобразователю-то?
Go to the top of the page
 
+Quote Post
Fast
сообщение Nov 17 2011, 19:08
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(soolo @ Nov 17 2011, 22:53) *
Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения
фрагмент сигнала не могли бы прикрепить ? желательно PCM 16-бит line
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Nov 17 2011, 19:42
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



soolo, наиболее распространённый для аудиосигналов метод интерполяции — полифазный НЧ-фильтр. В этом случае вы полностью контролируете затухание высоких частот, величину артефактов алиасинга, импульсную и фазовую характеристики. См. статью "Тест конвертеров частоты дискретизации".
Go to the top of the page
 
+Quote Post
soolo
сообщение Nov 18 2011, 07:19
Сообщение #24





Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362



Цитата(Fast @ Nov 17 2011, 22:08) *
фрагмент сигнала не могли бы прикрепить ? желательно PCM 16-бит line

Да, конечно. Только какой сигнал интересует? До обработки интерполятором или после?
Вообще, для тестов брался обычный тестовый сигнал из программы RMAA6, обрабатывался интерполятором и возвращался обратно в программу для анализа. Ну а звуковые файлы будут естественно с полным спектром.

Сообщение отредактировал soolo - Nov 18 2011, 07:23
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 18 2011, 07:39
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(soolo @ Nov 17 2011, 22:53) *
Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения


Плохо пробовали, любое заданное качество можно получить.
Go to the top of the page
 
+Quote Post
soolo
сообщение Nov 18 2011, 08:24
Сообщение #26





Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362



Цитата(petrov @ Nov 18 2011, 10:39) *
Плохо пробовали, любое заданное качество можно получить.

Расскажите, пожалуйста, подробнее. Видимо, то, что очевидно для вас - для меня пока что тайна за семью печатями. Знания по вопросу передискретизации начал приобретать недавно, поэтому могу упускать из виду простейшие вещи.
Go to the top of the page
 
+Quote Post
Fast
сообщение Nov 18 2011, 08:31
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(soolo @ Nov 18 2011, 11:19) *
Да, конечно. Только какой сигнал интересует? До обработки интерполятором или после?
Вообще, для тестов брался обычный тестовый сигнал из программы RMAA6, обрабатывался интерполятором и возвращался обратно в программу для анализа. Ну а звуковые файлы будут естественно с полным спектром.
исходный файл, до, в том виде как есть. хочу просто глянуть на спектр его и прикинуть во что выльется сложность сохранения качества.

RMAA не пользовал, только слышал об этом пакете.
а вот по ссылке Alexey Lukin очень любопытные тесты ресемплеров http://src.infinitewave.ca/
мне понравилась картинка eac3to (SSRS), сайт разработчика http://madshi.net/eac3to.zip
по ссылке есть исходники ресемплера, при беглом просмотре - это Фурье-интерполяция с окном Кайзера-Бесселя

не агитирую, но можно задуматься
Go to the top of the page
 
+Quote Post
soolo
сообщение Nov 18 2011, 08:48
Сообщение #28





Группа: Участник
Сообщений: 14
Регистрация: 17-11-11
Пользователь №: 68 362



Цитата(Fast @ Nov 18 2011, 11:31) *
исходный файл, до, в том виде как есть. хочу просто глянуть на спектр его и прикинуть во что выльется сложность сохранения качества.

Честно говоря, не понимаю смысла выкладывать тестовый файл. Ведь реально интерполятор будет работать с обычными звуковыми файлами (а там спектр сигнала вплоть до 20Гц-20кГц). Но файлом поделюсь. http://dl.dropbox.com/u/23094927/Test%20si...2016-bit%29.wav
Цитата(Fast @ Nov 18 2011, 11:31) *
при беглом просмотре - это Фурье-интерполяция с окном Кайзера-Бесселя

Да, Фурье решил бы все проблемы. Но, как я написал в шапке топика - от него отказались = (
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 18 2011, 08:57
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(soolo @ Nov 18 2011, 12:24) *
Расскажите, пожалуйста, подробнее. Видимо, то, что очевидно для вас - для меня пока что тайна за семью печатями. Знания по вопросу передискретизации начал приобретать недавно, поэтому могу упускать из виду простейшие вещи.


Чего подробнее то? Выше уже писали. Фарроу работает тем лучше чем выше передискретизация. Увеличиваете частоту дискретизации в 2, 3, 4, 5, 6... раз с помощью КИХ ФНЧ полифазной структуры, фильтр можно рассчитать сколь угодно хороший, подавление, неравномерность, переходная полоса. Дальше интерполятор Фарроу 3 или 5 порядка. Смотрите искажения с различными параметрами передискретизации, фильтра, интерполятора.


Цитата(soolo @ Nov 18 2011, 12:48) *
Да, Фурье решил бы все проблемы. Но, как я написал в шапке топика - от него отказались = (


Не обольщайтесь на счёт FFT, ничего так часто не встречается в ЦОС как его неправильное использование.
Go to the top of the page
 
+Quote Post
Eger
сообщение Nov 18 2011, 10:12
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 16-05-07
Пользователь №: 27 774



Цитата(Самурай @ Nov 17 2011, 21:45) *
Я не совсем понимаю, а что мешает Вам реализовать честный интерполятор в 48/44.1 = 160/147 раз? Честно повышаете частоту дискретизации в 160 раз, честно фильтруете наложения (тем самым полифазным фильтром, про который тут дискуссия возникла), потом честно оставляете только каждый 147-ой отсчет, остальное честно выкидываете нафигsm.gif. Тем более что Вы сами говорили, что особых ограничений на ресурсы у Вас нет. Да и какие нафиг нужны ресурсы, когда все частоты "детские"??? Для справки, 160 = 2*2*2*2*2*5, т.е. частоту можно повышать постепенно, после каждого шага фильтруете наложения, первый фильтр навскидку 100...140-ого порядка (для подавления наложений в 100...120дБ), второй фильтр примерно 15-ый порядок, остальные фильтры на уровне нуля. Реализация фильтра 100-ого порядка на частоте 44кГц (та самая полифазность) требует 5-10MIPS, о чем тут вообще говорить?

скажите мне пожалуйста, не флуда для а пользы ради.
Вот Вы хотите увеличить частоту дискретизации в 160 раз. При этом уровень сигнала уменьшается в 160 раз, т.е. 16 битный сигнал становится фактически 9 битным. Неужели качество звука не пострадает?


--------------------
с polisoftlab.info
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:58
Рейтинг@Mail.ru


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