GinGreen
Участник-
Постов
11 -
Зарегистрирован
-
Посещение
Репутация
0 Обычный-
Оптимальная реализация КИХ фильтра на x86
GinGreen ответил chan тема в Алгоритмы ЦОС (DSP)
К сожалению, у меня нет доступа к этому источнику, не мог бы ты мне перекинуть эту статью. например, на мыло: [email protected] -
Оптимальная реализация КИХ фильтра на x86
GinGreen ответил chan тема в Алгоритмы ЦОС (DSP)
# Используйте DCT. Он быстрее.. # Может и быстрее, но при этом должны выполняться условия для N - точечной входной последовательности: 1. последовательность вещественная 2. x(n) = x(N - n) -
Оптимальная реализация КИХ фильтра на x86
GinGreen ответил chan тема в Алгоритмы ЦОС (DSP)
В основе фильтрации КИХ - фильтром лежит свёртка. вы скорее всего используете секционную. попробуйте использовать тот факт, что после фильтрации выходной сигнал имеет длину L = M + N - 1 тогда выбрав L кратной степени двух, и зная длину фильтра вы можете найти оптимальную длину секции, - это может помочь вам избавиться от лишних действий. L - длна полученной секции M - длина секции, подающейся на вход. N - длина фильтра. -
Расчет БИХ фильтра
GinGreen ответил ChipMicro тема в Алгоритмы ЦОС (DSP)
Давайте возьмём для аппроксимации нашего звена, например, функцию Чебышева(нормированную). F(W) = 1 / ( 1 + E * T(2,W/W0)) Для этого используем T(2, W/W0) - полином Чебышева второго порядка. E - некоторая константа положительная, < 1. Очевидно, что F(W) - принадлежит отрезку [1 / (1 + E), 1] при W из [0, W0] и стремится к нулю при W > W0. Случай W < 0 нас не интересует. функция Баттерворта F(W) = 1 / ( 1 + E*( (W/W0) ^2)) H(W) = П F(W) - аппроксимация квадрата АЧХ при последовательном соединении одинаковых звеньев . (Здесь П - это произведение) Кстати от сюда следует, что при бесконечном числе одинаковых звеньев АЧХ Чебышевского фильтра превращается в конечную последовательность единиц (не ступенька !), а АЧХ фильтр Баттерворта во что- то похожее на дельта функцию. При каждом добавлении звена у нас будут уменьшатся (в направлении нуля) значения H(W) отличные от единицы. Смысл, сказанного выше в том, что функции аппроксимации БИХ фильтров не превосходят единицы. И при последовательном соединении звеньев, АЧХ, вам будет сложнее контролировать характеристики (например, с помощью параметра E). Полученный фильтр, скорее всего, будет иметь более высокий порядок и неудобные для вычислений значения коэффициентов по сравнению с обычным фильтром (если взять одинаковые точности аппроксимации в полосе пропускания). При этом скорость затухания в полосе задержки будет такая же, как и у обычного фильтра того же типа и того же порядка. Параллельное соединение звеньев тоже ничего хорошего не обещает. А цель ЛДС(в данном случае фильтра), определяется поставленной задачей. -
Помогите с БИХ фильтром Чебышева
GinGreen ответил GinGreen тема в Алгоритмы ЦОС (DSP)
Я нашёл, с чем была связана моя ошибка.И в приведённых листингах действительно отсутствует важный множитель. Спасибо всем кто принимал участие в обсуждении, и пытался помочь. Тему можно закрывать. -
БПФ по основанию 4
GinGreen ответил Fair тема в Алгоритмы ЦОС (DSP)
Добрый день. Для начала замечу, что прореживание по времени и прорежевание по частоте отличаются, по сути, только порядком прохода по схеме(например если прореживание по времени - прямой проход по схеме , то прореживание по частоте - обратный по той же самой схеме; вход меняется с выходом и стрелка бабочки изменяет направление на противоположное). Гораздо важнее применяете Вы двоично инверсные перестановки или нет(здесь разница существенная). Используйте обычные бабочки(два входа два выхода). Здесь всё просто. -
Помогите с БИХ фильтром Чебышева
GinGreen ответил GinGreen тема в Алгоритмы ЦОС (DSP)
Виноват, забыл 4. частота дискретизации Без нее не рассчитать частоту среза цифрового фильтра. Я рад, что Вы нашли сходство с курсовой работой, но , к сожалению, Вы не ответили на мой вопрос. На настоящий момент я уже перечитал массу литературы по синтезу БИХ фильтров, но проблему пока решить не смог. Если бы Вы , mdmitry, перекинули мне разработку к вашей курсовой, я былбы Вам благодарен. -
Помогите с БИХ фильтром Чебышева
GinGreen ответил GinGreen тема в Алгоритмы ЦОС (DSP)
Вот ещё кое что не ясное. Если взять фильтр прототип Чебышева первого типа второго порядка и построить его АЧХ то она будет в два раза больше положенной. Полюсы вычислены верно(по крайней мере, совпвдают с приведёнными в книге Д.В.Незлин "Основы цифровой обработки сигналов") Ниже приводится матлабовский скрипт, который строит такую АЧХ % % фильтр - прототип нижних частот Чебышева первого рода %второй порядок % FOrder = 2;% не изменять DeltaP = 1 - 10 ^ (- 3 /20);%0.01; DeltaS = 0.01; %находим неравномерность NUniformity = sqrt( 1 /((1 - DeltaP) ^ 2) - 1 ) %находим полюсы нижнечастотного прототипа PoleRe0 = -sin(3* pi / (2 * FOrder) ) * sinh(1 / FOrder * asinh(1 / NUniformity)) PoleIm0 = cos( 3 * pi / (2 * FOrder)) * cosh(1 / FOrder * asinh(1 / NUniformity)) %полюса сопряжены и это просто формальность %PoleRe1 = - sin(3 * pi / (2 * FOrder) * sinh(1 / FOrder * asinh(1 / NUniformity)) %PoleIm1 = cos(3 * pi / (2 * FOrder)) * cosh(1 / FOrder * asinh(1 / NUniformity)) Modul = PoleRe0 ^ 2 + PoleIm0 ^ 2; %Знаменатель - полином второй степени Denom = [1 (-2 * PoleRe0) Modul] %числитель - полином второй степени Numen = [0 0 1] w = 0: 0.1: 5; %задаём отрезок частот h = freqs(Numen, Denom, w);% КЧХ plot(w , abs(h)) % строим АЧХ %%% -
Помогите с БИХ фильтром Чебышева
GinGreen ответил GinGreen тема в Алгоритмы ЦОС (DSP)
Да проблема в том, что надо реализовать програмный генератор бих фильтров Чебышева. -
Помогите с БИХ фильтром Чебышева
GinGreen ответил GinGreen тема в Алгоритмы ЦОС (DSP)
Забыл написать, что фильтр генерируется методом билинейного преобразования. -
Помогите с БИХ фильтром Чебышева
GinGreen опубликовал тема в Алгоритмы ЦОС (DSP)
Здравствуйте. Помогите с БИХ фильтром Чебышева. Никак не могу сообразить, в чём дело. Я в матлабе написал програмный аналог цифрового фильтра Чебышева второго порядка. но его АЧХ в полосе пропускания не удовлетворяет задаваемым требованиям. Она либо значительно больше 1 либо менише половины. function ChebyshevBiPart_Prorotip % % Бих фильтр нижних частот Чебышева первого рода % FP = 500;%граничная частота полосы пропускания FS = 2000;%граничная частота полосы задерживания FD = 8000;%частота дискретизаци FOrder = 2;%порядок фильтра DeltaP = 1 - 10 ^ (- 3 /20);%0.01;% точность аппроксимации в полосе пропускания DeltaS = 0.01; %пересчитываем частоты WPA = tan(pi * FP / FD ) WSA = tan(pi * FS / FD ) %находим неравномерность NUniformity = sqrt( 1 /((1 - DeltaP) ^ 2) - 1 ); %находим полюсы нижнечастотного прототипа PoleRe0 = - sin(1 * pi / (2 * FOrder)) * sinh(1 / FOrder * asinh(1 / NUniformity)) PoleIm0 = cos(1 * pi / (2 * FOrder)) * cosh(1 / FOrder * asinh(1 / NUniformity)) %полюса сопряжены и это просто формальность PoleRe1 = - sin(3 * pi / (2 * FOrder) * sinh(1 / FOrder * asinh(1 / NUniformity)) PoleIm1 = cos(3 * pi / (2 * FOrder)) * cosh(1 / FOrder * asinh(1 / NUniformity)) %Находим коэффециенты полинома знаменателя в Z - плоскости A* Z^2 + B * Z + C Modul = PoleRe0 ^ 2 + PoleIm0 ^ 2; A = (1 - 2 * PoleRe0 * WPA + Modul * WPA * WPA) B = 2 * (Modul * WPA* WPA - 1) C = (1 + 2 * PoleRe0 * WPA + Modul * WPA * WPA) Numen = [1 2 1] .* WPA .* WPA ./ A %находим числитель передаточной функции Denom = [1 (B/A) (C/A)] %находим знаменатель передаточной функции [W, A] = AFC(Numen ,Denom);%Функция вычисления АЧХ plot(W, A) %Заранее спасибо.