thermit 1 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Fast: и каким же образом up-samp на полифазнике в N-раз (+Фарроу) нам поднимет качество больше чем up-samp на КИХ-фильтре в 2 раза (+Фарроу)? p.s. Могу представить только один вариант, если это Фарроу 3го порядка, с пологой АЧХ, для которого надо стабильно повышать в 4, а лучше в 8 раз сигнал. При Лагранже 8-порядка повышай хоть в 4, 8, 128 - качеству взяться неоткуда.. Вообще-то ошибка интерполяции лагранжа зависит только от шага сетки и порядка полинома. Как ни трудно догадаться, для понижения ошибки интерполяции достаточно повысить порядок, или уменьшить шаг сетки (повысить частоту дискретизации), или и то и другое. Берем, повышаем частоту дискретизации раз в 10 (фнч, реализация естественно полифазная, выж в 21 веке на нули не умножаете - вот и полифазная реализация), сетка становится в 10 раз чаще и на этой сетке получаем ошибку лагранжевой кубической интерполяции такую, до которой с начально сеткой запаритесь порядок полинома повышать. Так что качество тут ограничено исключительно вычислительными способностями устройства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Берем, повышаем частоту дискретизации раз в 10а чего не в 11, или в 500 ? хотелось понять сей великий сексуальный математический смысл =)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Стоит казалось бы банальная задача: Сигнал с опорной частотой 44.1 кГц преобразовать в сигнал с частотой 48 кГц. Алгоритмы с FFT по некоторым причинам не подходят, поэтому было решено использовать интерполяцию. Но коэффициент 1.088 и звуки вплоть до всеми любимых 20 кГц пока что ставят нас в тупик. Алгоритмы Lanczos, B-Spline, Mittchel, Sinc результат дают, но где-то гармоники зашкаливают, где-то частоты урезаются. В первую очередь интересуют минимальные гармонические искажения, задача вторая по степени важности - минимальный срез АЧХ. Может быть есть более подходящие для обработки звука алгоритмы? Подскажите, пожалуйста! Я не совсем понимаю, а что мешает Вам реализовать честный интерполятор в 48/44.1 = 160/147 раз? Честно повышаете частоту дискретизации в 160 раз, честно фильтруете наложения (тем самым полифазным фильтром, про который тут дискуссия возникла), потом честно оставляете только каждый 147-ой отсчет, остальное честно выкидываете нафиг:). Тем более что Вы сами говорили, что особых ограничений на ресурсы у Вас нет. Да и какие нафиг нужны ресурсы, когда все частоты "детские"??? Для справки, 160 = 2*2*2*2*2*5, т.е. частоту можно повышать постепенно, после каждого шага фильтруете наложения, первый фильтр навскидку 100...140-ого порядка (для подавления наложений в 100...120дБ), второй фильтр примерно 15-ый порядок, остальные фильтры на уровне нуля. Реализация фильтра 100-ого порядка на частоте 44кГц (та самая полифазность) требует 5-10MIPS, о чем тут вообще говорить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soolo 0 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Полифазные фильтры + интерполятор Farrow. Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения Да, еще два замечания: 1. Все фильтры для интерполяции в 2 раза можно сделать Halfband-ами, вычислительные ресурсы уменьшатся в 2 раза. 2. Если Вам нужны только стандартные частоты, то выкинуть нафиг Farrow, он в этом случае совсем не нужен. Lanczos, B-Spline, Mittchel туда же:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Задаетесь ошибкой интерполяции для гармонического сигнала верхней частоты спектра. Гуглом можно найти формулу погрешности интерполяции. На основании ее можно вычислить соотношение между порядком полинома и шагом сетки. Ничего особо хитрого тут нет. soolo: Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения Большие степеня полиномов и не требуются. Оверсемплинг побольше и фильтр покруче. Какие требования к преобразователю-то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искаженияфрагмент сигнала не могли бы прикрепить ? желательно PCM 16-бит line Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey Lukin 0 17 ноября, 2011 Опубликовано 17 ноября, 2011 · Жалоба soolo, наиболее распространённый для аудиосигналов метод интерполяции — полифазный НЧ-фильтр. В этом случае вы полностью контролируете затухание высоких частот, величину артефактов алиасинга, импульсную и фазовую характеристики. См. статью "Тест конвертеров частоты дискретизации". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soolo 0 18 ноября, 2011 Опубликовано 18 ноября, 2011 (изменено) · Жалоба фрагмент сигнала не могли бы прикрепить ? желательно PCM 16-бит line Да, конечно. Только какой сигнал интересует? До обработки интерполятором или после? Вообще, для тестов брался обычный тестовый сигнал из программы RMAA6, обрабатывался интерполятором и возвращался обратно в программу для анализа. Ну а звуковые файлы будут естественно с полным спектром. Изменено 18 ноября, 2011 пользователем soolo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба Попробовали. Результат неплох, но теряются высокие частоты. При больших степенях полинома - сильные искажения Плохо пробовали, любое заданное качество можно получить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soolo 0 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба Плохо пробовали, любое заданное качество можно получить. Расскажите, пожалуйста, подробнее. Видимо, то, что очевидно для вас - для меня пока что тайна за семью печатями. Знания по вопросу передискретизации начал приобретать недавно, поэтому могу упускать из виду простейшие вещи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба Да, конечно. Только какой сигнал интересует? До обработки интерполятором или после? Вообще, для тестов брался обычный тестовый сигнал из программы RMAA6, обрабатывался интерполятором и возвращался обратно в программу для анализа. Ну а звуковые файлы будут естественно с полным спектром. исходный файл, до, в том виде как есть. хочу просто глянуть на спектр его и прикинуть во что выльется сложность сохранения качества. RMAA не пользовал, только слышал об этом пакете. а вот по ссылке Alexey Lukin очень любопытные тесты ресемплеров http://src.infinitewave.ca/ мне понравилась картинка eac3to (SSRS), сайт разработчика http://madshi.net/eac3to.zip по ссылке есть исходники ресемплера, при беглом просмотре - это Фурье-интерполяция с окном Кайзера-Бесселя не агитирую, но можно задуматься Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soolo 0 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба исходный файл, до, в том виде как есть. хочу просто глянуть на спектр его и прикинуть во что выльется сложность сохранения качества. Честно говоря, не понимаю смысла выкладывать тестовый файл. Ведь реально интерполятор будет работать с обычными звуковыми файлами (а там спектр сигнала вплоть до 20Гц-20кГц). Но файлом поделюсь. http://dl.dropbox.com/u/23094927/Test%20si...2016-bit%29.wav при беглом просмотре - это Фурье-интерполяция с окном Кайзера-Бесселя Да, Фурье решил бы все проблемы. Но, как я написал в шапке топика - от него отказались = ( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба Расскажите, пожалуйста, подробнее. Видимо, то, что очевидно для вас - для меня пока что тайна за семью печатями. Знания по вопросу передискретизации начал приобретать недавно, поэтому могу упускать из виду простейшие вещи. Чего подробнее то? Выше уже писали. Фарроу работает тем лучше чем выше передискретизация. Увеличиваете частоту дискретизации в 2, 3, 4, 5, 6... раз с помощью КИХ ФНЧ полифазной структуры, фильтр можно рассчитать сколь угодно хороший, подавление, неравномерность, переходная полоса. Дальше интерполятор Фарроу 3 или 5 порядка. Смотрите искажения с различными параметрами передискретизации, фильтра, интерполятора. Да, Фурье решил бы все проблемы. Но, как я написал в шапке топика - от него отказались = ( Не обольщайтесь на счёт FFT, ничего так часто не встречается в ЦОС как его неправильное использование. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eger 0 18 ноября, 2011 Опубликовано 18 ноября, 2011 · Жалоба Я не совсем понимаю, а что мешает Вам реализовать честный интерполятор в 48/44.1 = 160/147 раз? Честно повышаете частоту дискретизации в 160 раз, честно фильтруете наложения (тем самым полифазным фильтром, про который тут дискуссия возникла), потом честно оставляете только каждый 147-ой отсчет, остальное честно выкидываете нафиг:). Тем более что Вы сами говорили, что особых ограничений на ресурсы у Вас нет. Да и какие нафиг нужны ресурсы, когда все частоты "детские"??? Для справки, 160 = 2*2*2*2*2*5, т.е. частоту можно повышать постепенно, после каждого шага фильтруете наложения, первый фильтр навскидку 100...140-ого порядка (для подавления наложений в 100...120дБ), второй фильтр примерно 15-ый порядок, остальные фильтры на уровне нуля. Реализация фильтра 100-ого порядка на частоте 44кГц (та самая полифазность) требует 5-10MIPS, о чем тут вообще говорить? скажите мне пожалуйста, не флуда для а пользы ради. Вот Вы хотите увеличить частоту дискретизации в 160 раз. При этом уровень сигнала уменьшается в 160 раз, т.е. 16 битный сигнал становится фактически 9 битным. Неужели качество звука не пострадает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться