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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Дробная передискретизация полифазным фильтром
Alexey Lukin
сообщение Jul 18 2012, 22:55
Сообщение #16


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

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



Это одно и то же.
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 19 2012, 03:59
Сообщение #17


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

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



Цитата(_Ivana @ Jul 18 2012, 14:10) *
Пользуясь случаем, хочу спросить - почему в любезно выложенном fontp файле для ресемплинга используется алгоритм "повышение частоты в L раз - фильтрация - фильтрация - понижение частоты в M раз" вместо имхо простого варианта рассчитать на лету и применить полифазный фильтр с нужной фазой?

изменение частоты потока данных через интерполяцию/децимацию производиться без ошибок интерполяции, в отличии от использования различных интерполяторов.


--------------------
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 19 2012, 08:33
Сообщение #18


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (Alexey Lukin @ Jul 19 2012, 02:55) *
Это одно и то же.


Теоретически одно и то же. Но реализация фильтрами НЧ значительно проще при том же уровне качества, поскольку синк имеет хвосты нелокальные. Интерполяция "чем то похожим на синк" имеет смысл только когда фаза или частота отсчетов со временем меняется. На фиксированой периодической сетке отсчетов как правило используются полифазные фильтры, реализуемые как несколько фильтров НЧ.

QUOTE (_Ivana @ Jul 19 2012, 00:10) *
Пользуясь случаем, хочу спросить - почему в любезно выложенном fontp файле для ресемплинга используется алгоритм "повышение частоты в L раз - фильтрация - фильтрация - понижение частоты в M раз" вместо имхо простого варианта рассчитать на лету и применить полифазный фильтр с нужной фазой? В документе написано

Или "на лету" это займет больше машинного времени? А там DSP, поэтому это важно? А если на ПЛИС, где можно параллелить процессы, проще будет рассчитать коэффициенты честного полифазного интерполятора без апсемплинга/децимации?

Причем, на нули, обычно, никто и не умножает (хоть могут и быть варианты). Повышение частоты часто держим в уме для понимания. Поскольку офсеты повторяются периодически и их можно рассчитать заранее. Это же передискретизация "рациональная", а не какая попало. И хотя доказано, что дробью n/m можно приблизить любое число с точностью порядкка 1/(m*m), всё таки n и m используются только в разумных пределах

В статье речь идет о ресэмплинге очень высокого качества, необходимого для аудио, например уровень ошибки -100 дб. Им нужны очень хорошие фильтры. Поэтому они используют каскодную схему - с многократной фильтрацией и ресэмплингом в лоб. Один фильтр НЧ оказался бы слишком длинным или нереализуемым.
Хороший фильтр НЧ с полосой много меньшей чем частота Найквиста очень трудно реализовать без многократного сабсэмплинга, а с многократным сабсэмплингом - легко и эффективно
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 19 2012, 08:33
Сообщение #19


Местный
***

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



Цитата
Это одно и то же.

Где-то глубоко внутри я подозреваю что это так и есть, просто наверное сейчас я ещё не дошел до ясного и целостного понимания картины.
Цитата
изменение частоты потока данных через интерполяцию/децимацию производиться без ошибок интерполяции, в отличии от использования различных интерполяторов.

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

ЗЫ если я не ошибаюсь, частный случай отстаиваемого мной подхода называется "банк FIR фильтров" - если отношение частот у нас кратное и через N раз отсчеты выходного сигнала будут совпадать с входным, то нам надо хранить только N наборов коэффициентов, а точнее даже N/2 т.к. они симметричные. А если частоты некратные - тогда придется рассчитывать.

fontp, спасибо за некоторые разъяснения. Глупый вопрос:
мы разбавили сигнал нулями раз в 25, потом применяем НЧ фильтр на этой новой частоте. Дошли до определенного отсчета - "слева" у нас все бывшие нули стали нормальными отсчетами (ибо прошли фильтрацию) - и на них уже нужно домножать коэффициенты НЧ фильтра? Мы используем уже рассчитанные новые значения при фильтрации последующих? Если да, то здесь наверное может быть выигрыш по сравнению с "прямым чем-то похожим на синк".

Цитата
В статье речь идет о ресэмплинге очень высокого качества, необходимого для аудио. Им нужны очень хорошие фильтры.

Ну тут ещё вопрос, является ли аудио случаем самых жестких требований к качеству ресемплинга, но речь не об этом. Именно по причине реализации очень хорошего ресемплера (который ресемплит 16 бит даже точнее чем они заданы) интересно вникнуть в суть оптимизации метода. Хотя например при кратной сетке частот 24/25 я не понимаю почему сложнее хранить банк из 24 FIR фильтров. Хотя очевидно, что если исходный сигнал "грязен". т.е. имеет частоты от 20 до 22 кгц, к примеру, то вариант с НЧ фильтром его еще и вычистит параллельно с ресемплингом, а синк оставит эти составляющие.

Сообщение отредактировал _Ivana - Jul 19 2012, 09:00
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 19 2012, 08:59
Сообщение #20


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (_Ivana @ Jul 19 2012, 11:33) *
fontp, спасибо за некоторые разъяснения. Глупый вопрос:
мы разбавили сигнал нулями раз в 25, потом применяем НЧ фильтр на этой новой частоте. Дошли до определенного отсчета - "слева" у нас все бывшие нули стали нормальными отсчетами (ибо прошли фильтрацию) - и на них уже нужно домножать коэффициенты НЧ фильтра? Мы используем уже рассчитанные новые значения при фильтрации последующих? Если да, то здесь наверное может быть выигрыш по сравнению с "прямым чем-то похожим на синк".


Нет, входные отсчеты. Используются просто более короткие фильтры чем синк)), но с лучшей прямоугольностью, чем синк усеченный
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 19 2012, 09:00
Сообщение #21


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

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



Цитата(_Ivana @ Jul 19 2012, 03:33) *
На данном этапе своих заблуждений я не спешу согласиться с этим утверждением. Ибо в моем представлении оно противоречит всем физическим и юридическим законам и моему пониманию здравого смысла.

в вашем оно может быть и так, а вот в спектральном все четко. не придерешься.


--------------------
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 19 2012, 09:07
Сообщение #22


Местный
***

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



Цитата
Нет, входные отсчеты. Используются просто более короткие фильтры чем синк, но с лучшей прямоугольностью, чем синк усеченный

Тогда у меня ещё далеко не один глупый вопрос sm.gif "Бывшие нули" мы при фильтрации не используем, только входные отсчеты. Количество коэффициентов НЧ фильтров относительно малое, частота дискретизации тоже мала. А получаем хорошую прямоугольность?.... А про "синк усеченный" - я предлагаю не его, а "что-то похожее", что дает гораздо лучшее приближение при том же количестве коэффициентов.
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 19 2012, 09:10
Сообщение #23


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (_Ivana @ Jul 19 2012, 12:07) *
Тогда у меня ещё далеко не один глупый вопрос sm.gif "Бывшие нули" мы при фильтрации не используем, только входные отсчеты. Количество коэффициентов НЧ фильтров относительно малое, частота дискретизации тоже мала. А получаем хорошую прямоугольность?.... А про "синк усеченный" - я предлагаю не его, а "что-то похожее", что дает гораздо лучшее приближение при том же количестве коэффициентов.



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

Понимаете, обсуждать то, что у Вас что-то похожее на синк, лучше чем что-то непохожее это бессмысленно. Это означает только что Вы умеете синтезировать более лучшие фильтры НЧ. Это уже схоластика
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 19 2012, 09:20
Сообщение #24


Местный
***

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



fontp, давайте попробуем так: предложите условия задачи: исходная частота, новая частота, исходная частота Найквиста, необходимая точность при ресемплинге. Желательно из аудио-примеров. Для начала с рациональным отношением частот и не слишком большими n и m. Я рассчитаю банк FIR, определю количество их коэффициентов. Вы посмеетесь и скажете что полифазник гораздо меньше по вычислениям sm.gif
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 19 2012, 09:28
Сообщение #25


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (_Ivana @ Jul 19 2012, 12:20) *
fontp, давайте попробуем так: предложите условия задачи: исходная частота, новая частота, исходная частота Найквиста, необходимая точность при ресемплинге. Желательно из аудио-примеров. Для начала с рациональным отношением частот и не слишком большими n и m. Я рассчитаю банк FIR, определю количество их коэффициентов. Вы посмеетесь и скажете что полифазник гораздо меньше по вычислениям sm.gif


А чем Ваш "банк FIR" не будет тем же полифазником?
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 19 2012, 09:34
Сообщение #26


Местный
***

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



Цитата
А чем Ваш "банк FIR" не будет тем же полифазником?

Ещё немного и я обрету просветление и постигну слова "это одно и то же" sm.gif
Получается, что если я рассчитаю свой "банк FIR" как интерполяционный фильтр на исходной частоте сигнала, то это будет то же самое как если рассчитать НЧ фильтр на в 25 раз большей частоте и применять его к ненулевым исходным отсчетам сигнала, т.е. после расчета дальнейшая арифметика будет в точности та же самая? Просто вопрос в различии методов расчета самих фильтров - интерполяционный фильтр или НЧ на высокой частоте?
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Jul 19 2012, 16:40
Сообщение #27


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

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



Цитата(fontp @ Jul 19 2012, 12:33) *
В статье речь идет о ресэмплинге очень высокого качества, необходимого для аудио, например уровень ошибки -100 дб. Им нужны очень хорошие фильтры. Поэтому они используют каскодную схему - с многократной фильтрацией и ресэмплингом в лоб. Один фильтр НЧ оказался бы слишком длинным или нереализуемым.

Можно каскадно, а можно и "в лоб". Ничего, что фильтр длинный. Стандартные частоты в аудио требуют ↑ в пределах пары сотен раз (напр., 44100 → 96000). Умножаем это на типичную длину полифазной компоненты (20-30) и получаем всего десяток тысяч отсчётов. Умножаем синк на окно — фильтр готов.
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 19 2012, 17:00
Сообщение #28


Местный
***

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



Мне кажется имелось в виду что для "очень хорошего фильтра" недостаточно "типичной длины 20-30" а нужно побольше. Насколько - зависит от степени "хорошести" фильтра. И все это потом ещё умножить на количество различных фаз. Имхо вопрос из серии: насколько экономнее по вычислениям прогнать сигнал через 2 последовательных относительно коротких фильтра чем через один длинный, обеспечивающий такую же прямоугольность.
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 19 2012, 19:14
Сообщение #29


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

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



Цитата(_Ivana @ Jul 19 2012, 11:00) *
Мне кажется имелось в виду что для "очень хорошего фильтра" недостаточно "типичной длины 20-30" а нужно побольше. Насколько - зависит от степени "хорошести" фильтра. И все это потом ещё умножить на количество различных фаз. Имхо вопрос из серии: насколько экономнее по вычислениям прогнать сигнал через 2 последовательных относительно коротких фильтра чем через один длинный, обеспечивающий такую же прямоугольность.

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


--------------------
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 21 2012, 17:14
Сообщение #30


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (_Ivana @ Jul 19 2012, 21:00) *
Мне кажется имелось в виду что для "очень хорошего фильтра" недостаточно "типичной длины 20-30" а нужно побольше. Насколько - зависит от степени "хорошести" фильтра. И все это потом ещё умножить на количество различных фаз. Имхо вопрос из серии: насколько экономнее по вычислениям прогнать сигнал через 2 последовательных относительно коротких фильтра чем через один длинный, обеспечивающий такую же прямоугольность.


Да, результат интерполяции полностью определяется прямоугольностью фильтра. В интерполяционных теоремах важно чтобы не перекрывались и не искажались спектры, а то что для этого идеально подходит бесконечный синк - это частности. Вместо нереализуемого бесконечного синка лучше подойдет то конечное, что имеет более прямоугольные спектры. Относительно короткие фильтры можно с помощью алгоритма Ремеза построить лучшего качества, чем из синка с окном. Они просто оптимальны в смысле абсолютного отклонения от. Для очень длинного фильтра оптимизация в смысле наименьшего отклонения частотной характеристики от прямоугольности вычислительно невозможна, и тогда можно использовать, как Вы это делаете, не оптимальный, но хороший алгоритм синтеза фильтра из синка с окном. Что практичнее - зависит от конкретной задачи. Еще и накладываются эффекты разрядности. Очень длинный фильтр при конечной разрядности, не такой хороший как кажется в float. Например, для сабсэмплинга с очень большим прорежением каскадная фильтрация обычно получается экономней. Не забывайте, что после каждой фильтрации делается прорежение, и вычислительные затраты на следующей ступени многократно снижаются. Программа у MDS была потому и для этого и сделана.

Вообще-то это детали. Я эту статью привел, просто потому, что обсуждение по существу не велось, а там вначале описана теория полифазной передискретизации, но не потому что реализация фильтра должна быть именно такой.
Go to the top of the page
 
+Quote Post

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

 


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


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