Перейти к содержанию
    

GinGreen

Участник
  • Постов

    11
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. К сожалению, у меня нет доступа к этому источнику, не мог бы ты мне перекинуть эту статью. например, на мыло: [email protected]
  2. # Используйте DCT. Он быстрее.. # Может и быстрее, но при этом должны выполняться условия для N - точечной входной последовательности: 1. последовательность вещественная 2. x(n) = x(N - n)
  3. В основе фильтрации КИХ - фильтром лежит свёртка. вы скорее всего используете секционную. попробуйте использовать тот факт, что после фильтрации выходной сигнал имеет длину L = M + N - 1 тогда выбрав L кратной степени двух, и зная длину фильтра вы можете найти оптимальную длину секции, - это может помочь вам избавиться от лишних действий. L - длна полученной секции M - длина секции, подающейся на вход. N - длина фильтра.
  4. Давайте возьмём для аппроксимации нашего звена, например, функцию Чебышева(нормированную). 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). Полученный фильтр, скорее всего, будет иметь более высокий порядок и неудобные для вычислений значения коэффициентов по сравнению с обычным фильтром (если взять одинаковые точности аппроксимации в полосе пропускания). При этом скорость затухания в полосе задержки будет такая же, как и у обычного фильтра того же типа и того же порядка. Параллельное соединение звеньев тоже ничего хорошего не обещает. А цель ЛДС(в данном случае фильтра), определяется поставленной задачей.
  5. Я нашёл, с чем была связана моя ошибка.И в приведённых листингах действительно отсутствует важный множитель. Спасибо всем кто принимал участие в обсуждении, и пытался помочь. Тему можно закрывать.
  6. Добрый день. Для начала замечу, что прореживание по времени и прорежевание по частоте отличаются, по сути, только порядком прохода по схеме(например если прореживание по времени - прямой проход по схеме , то прореживание по частоте - обратный по той же самой схеме; вход меняется с выходом и стрелка бабочки изменяет направление на противоположное). Гораздо важнее применяете Вы двоично инверсные перестановки или нет(здесь разница существенная). Используйте обычные бабочки(два входа два выхода). Здесь всё просто.
  7. Виноват, забыл 4. частота дискретизации Без нее не рассчитать частоту среза цифрового фильтра. Я рад, что Вы нашли сходство с курсовой работой, но , к сожалению, Вы не ответили на мой вопрос. На настоящий момент я уже перечитал массу литературы по синтезу БИХ фильтров, но проблему пока решить не смог. Если бы Вы , mdmitry, перекинули мне разработку к вашей курсовой, я былбы Вам благодарен.
  8. Вот ещё кое что не ясное. Если взять фильтр прототип Чебышева первого типа второго порядка и построить его АЧХ то она будет в два раза больше положенной. Полюсы вычислены верно(по крайней мере, совпвдают с приведёнными в книге Д.В.Незлин "Основы цифровой обработки сигналов") Ниже приводится матлабовский скрипт, который строит такую АЧХ % % фильтр - прототип нижних частот Чебышева первого рода %второй порядок % 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)) % строим АЧХ %%%
  9. Да проблема в том, что надо реализовать програмный генератор бих фильтров Чебышева.
  10. Забыл написать, что фильтр генерируется методом билинейного преобразования.
  11. Здравствуйте. Помогите с БИХ фильтром Чебышева. Никак не могу сообразить, в чём дело. Я в матлабе написал програмный аналог цифрового фильтра Чебышева второго порядка. но его АЧХ в полосе пропускания не удовлетворяет задаваемым требованиям. Она либо значительно больше 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) %Заранее спасибо.
×
×
  • Создать...