Документация Engee

designMultirateFIR

Расчет мультискоростного КИХ-фильтра.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • B = designMultirateFIR(L, M) — выполняет расчет коэффициентов B многоскоростного КИХ-фильтра с коэффициентом интерполяции L и коэффициентом децимации M.

  • B = designMultirateFIR(L, M, P) — выполняет расчет коэффициентов многоскоростного КИХ-фильтра с полумногофазной длиной P. По умолчанию P=12. Если первый коэффициент равен нулю (B(1) = 0), то результирующая длина полифазы равна 2P, в противном случае длина полифазы равна 2P + 1.

  • B = designMultirateFIR(L, M, TW) — выполняет расчет коэффициентов многоскоростного КИХ-фильтра с нормализованной шириной перехода TW. Значение TW должно быть от 0 до 1.

  • B = designMultirateFIR(L, M, P, ASTOP) — выполняет расчет коэффициентов многоскоростного КИХ-фильтра с полумногофазной длиной P и коэффициентом затухания в полосе заграждения ASTOP в дБ. По умолчанию ASTOP=80 дБ.

  • B = designMultirateFIR(L, M, TW, ASTOP) — выполняет расчет коэффициентов многоскоростного КИХ-фильтра с нормализованной шириной перехода TW и коэффициентом затухания в полосе заграждения ASTOP в дБ. По умолчанию ASTOP=80 дБ.

Аргументы

Входные аргументы

# L — коэффициент интерполяции
скаляр

Details

Коэффициент интерполяции, заданный как положительный целый скаляр.

Чтобы спроектировать дециматор, установите L равным 1.

# M — коэффициент децимации
скаляр

Details

Коэффициент децимации, заданный как положительный целый скаляр.

Чтобы спроектировать интерполятор, установите M равным 1.

# P — полумногофазная длина
12 (по умолчанию) | скаляр

Details

Полумногофазная длина. По умолчанию P=12. Если первый коэффициент равен нулю (B(1) = 0), то результирующая длина полифазы равна 2P, в противном случае длина полифазы равна 2P + 1.

# TW — нормализованная ширина перехода
скаляр

Details

Нормализованная ширина перехода, заданная как скаляр от 0 до 1.

# ASTOP — коэффициент затухания в полосе заграждения в дБ
80 (по умолчанию) | скаляр

Details

Коэффициент затухания в полосе заграждения в дБ. По умолчанию ASTOP=80 дБ.

Выходные аргументы

# B — коэффициенты фильтра
вектор

Details

Коэффициенты многоскоростного КИХ-фильтра.

Примеры

Расчет КИХ-интерполятора

Details

Чтобы спроектировать КИХ-интерполятор с помощью функции designMultirateFIR, укажем коэффициент интерполяции (обычно больше 1) и установим коэффициент децимации равным 1. Можно использовать заданные по умолчанию длину полифазы и затухание в полосе задерживания или использовать значения, отличные от значений по умолчанию.

Спроектируем КИХ-интерполятор с коэффициентом интерполяции 5. Используем заданные по умолчанию полумногофазную длину и затухание в полосе заграждения.

import EngeeDSP.Functions: designMultirateFIR
import EngeeDSP.Functions: impz
using Plots

b = designMultirateFIR(5, 1)
response = impz(b)

plot(response[2], response[1],
     marker = :o, title = "Impulse Response",
     xlabel = "n (samples)", ylabel = "Amplitude")

designmultiratefir 1

Литература

  1. Orfanidis, Sophocles J. Introduction to Signal Processing. Upper Saddle River, NJ: Prentice-Hall, 1996.