Полифазная фильтрация
Добавлено: 05 авг 2019, 10:36
Сигнала input длины input_length фильтруется полифазным фильтром polyphase_filter
для передискретизации в up_rate/down_rate раз.
Добиваю input в начале и конце нулями по phase_length-1 штук (phase_length = polyphase_filter / up_rate).
Т.е получаю на выходе фильтра отсчеты с первого "ненулевого".
Хочу отбросить невалидные значения, но с подсчетом их количества трудности.
Считал, что отбрасывать надо задержку фильтра округленную вверх, но например при
up_rate = 14;
down_rate = 13;
явно какая-то ошибка.
При
up_rate = 1001;
down_rate = 1000;
отбрасывается один валидный отсчет, хотя при
up_rate = 1000;
down_rate = 1001;
все хорошо.
Как правильно отфильтровать сигнал?
Скрипт матлаба прикладываю.
для передискретизации в up_rate/down_rate раз.
Добиваю input в начале и конце нулями по phase_length-1 штук (phase_length = polyphase_filter / up_rate).
Т.е получаю на выходе фильтра отсчеты с первого "ненулевого".
Хочу отбросить невалидные значения, но с подсчетом их количества трудности.
Считал, что отбрасывать надо задержку фильтра округленную вверх, но например при
up_rate = 14;
down_rate = 13;
явно какая-то ошибка.
При
up_rate = 1001;
down_rate = 1000;
отбрасывается один валидный отсчет, хотя при
up_rate = 1000;
down_rate = 1001;
все хорошо.
Как правильно отфильтровать сигнал?
Скрипт матлаба прикладываю.