fircls1

Создание КИХ-фильтра линейной фазы наименьших квадратов  с ограничениями lowpass и highpass

Синтаксис

b = fircls1(n,wo,dp,ds)
b = fircls1(n,wo,dp,ds,'high')
b = fircls1(n,wo,dp,ds,wt)
b = fircls1(n,wo,dp,ds,wt,'high')
b = fircls1(n,wo,dp,ds,wp,ws,k)
b = fircls1(n,wo,dp,ds,wp,ws,k,'high')
b = fircls1(n,wo,dp,ds,...,'design_flag')

Описание

b = fircls1(n,wo,dp,ds) генерирует КИХ-фильтр lowpass b, где n+1 длина фильтра, wo нормированная частота среза в области значений между 0 и 1 (где 1 соответствует частоте Найквиста), dp максимальное отклонение полосы пропускания от 1 (неравномерность в полосе пропускания) и ds максимальное отклонение полосы задерживания от 0 (пульсация полосы задерживания).

b = fircls1(n,wo,dp,ds,'high') генерирует highpass КИХ-фильтр b. fircls1 всегда использует ровного порядка фильтра для highpass настройки. Это вызвано тем, что для нечетных порядков, частотная характеристика на частоте Найквиста обязательно 0. Если вы задаете n с нечетным знаком, fircls1 шаг это 1.

b = fircls1(n,wo,dp,ds,wt) и

b = fircls1(n,wo,dp,ds,wt,'high') задает частоту wt выше которого (для wt > wo) или ниже который (для wt < wo) фильтр, как гарантируют, будет соответствовать данному критерию полосы. Это поможет вам спроектировать фильтр, который соответствует полосе пропускания или требованию ребра полосы задерживания. Существует четыре случая:

  • Lowpass:

    • 0 < wt < wo< 1  : амплитуда фильтра в dp из 1 по частотному диапазону 0 < ω < wt.

    • 0 < wo < wt< 1  : амплитуда фильтра в ds из 0 по частотному диапазону wt< ω < 1    .

  • Highpass:

    • 0 < wt < wo< 1  : амплитуда фильтра в ds из 0 по частотному диапазону 0 < ω < wt.

    • 0 < wo < wt< 1  : амплитуда фильтра в dp из 1 по частотному диапазону wt< ω < 1    .

b = fircls1(n,wo,dp,ds,wp,ws,k) генерирует КИХ-фильтр lowpass b со взвешенной функцией, где n+1 длина фильтра, wo нормированная частота среза, dp максимальное отклонение полосы пропускания от 1 (неравномерность в полосе пропускания) и ds максимальное отклонение полосы задерживания от 0 (пульсация полосы задерживания). wp ребро полосы пропускания функции веса L2 и ws ребро полосы задерживания функции веса L2, где wp < wo < wsK отношение (полоса пропускания ошибка L2) / (полоса задерживания ошибка L2)

k=0wp|A(ω)D(ω)|2dωwzπ|A(ω)D(ω)|2dω

b = fircls1(n,wo,dp,ds,wp,ws,k,'high') генерирует highpass КИХ-фильтр b со взвешенной функцией, где ws < wo < wp.

b = fircls1(n,wo,dp,ds,...,'design_flag') позволяет вам контролировать создание фильтра, где 'design_flag' может быть

  • 'trace', для текстового отображения таблицы проекта, используемой в проекте

  • 'plots', для графиков величины фильтра, групповой задержки, и нулей и полюсов. Все графики обновляются на каждом шаге итерации. О на графике является предполагаемым extremals новой итерации, и X предполагаемый extremals предыдущей итерации, где extremals являются peaks (максимум и минимум) пульсаций фильтра. Только пульсации, которые имеют соответствующий O и X, сделаны равными.

  • 'both', и для текстового отображения и для графиков

Примечание

В проекте очень узкой полосы фильтрует с маленьким dp и ds, там может не существовать фильтр данной длины, которая выполняет техническим требованиям.

Примеры

свернуть все

Спроектируйте порядок 55 фильтр lowpass с нормированной частотой среза 0.3. Задайте неравномерность в полосе пропускания 0,02 и пульсацию полосы задерживания 0,008. Отобразите графики полос.

n = 55;
wo = 0.3;
dp = 0.02;
ds = 0.008;
b = fircls1(n,wo,dp,ds,'both');
    Bound Violation = 0.0870385343920  
    Bound Violation = 0.0149343456540  
    Bound Violation = 0.0056513587932  
    Bound Violation = 0.0001056264205  
    Bound Violation = 0.0000967624352  
    Bound Violation = 0.0000000226538  

Figure contains 3 axes objects. Axes object 1 contains 2 objects of type line. Axes object 2 contains 2 objects of type line. Axes object 3 contains 2 objects of type line.

    Bound Violation = 0.0000000000038  

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

fvtool(b)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes object and other objects of type uitoolbar, uimenu. The axes object with title Magnitude Response (dB) contains an object of type line.

Алгоритмы

fircls1 использует итеративный алгоритм наименьших квадратов, чтобы получить equiripple ответ. Алгоритм является кратным обменный алгоритм, который использует множители Лагранжа и условия Куна-Такера на каждой итерации.

Ссылки

[1] Selesnick, я. W. М. Ленг и К. С. Беррус. “Ограниченный Проект Наименьшего квадрата КИХ-Фильтров без Заданных Полос Перехода”. Продолжения 1 995 Международных конференций по вопросам Акустики, Речи и Обработки сигналов. Издание 2, 1995, стр 1260–1263.

[2] Selesnick, я. W. М. Ленг и К. С. Беррус. “Ограниченный проект наименьшего квадрата КИХ-фильтров без заданных полос перехода”. IEEE® Транзакции на Обработке сигналов. Издание 44, Номер 8, 1996, стр 1879–1892.

Расширенные возможности

Смотрите также

| |

Представлено до R2006a