fvtool

Визуализируйте частотную характеристику фильтров DSP

Описание

fvtool(sysobj) отображает ответ величины Системы фильтра object™.

пример

fvtool(sysobj,options) отображает ответ, который задан опциями.

Например, чтобы визуализировать импульсную характеристику КИХ фильтруют Системный объект, устанавливают options к 'impulse'.

Fs = 96e3; filtSpecs = fdesign.lowpass(20e3,22.05e3,1,80,Fs);
    firlp2 = design(filtSpecs,'equiripple','SystemObject',true);
fvtool(firlp2,'impulse');

Для более входных опций смотрите fvtool.

fvtool(____,Name,Value) визуализирует ответ фильтра с каждым заданным набором свойств к заданному значению.

Для более входных опций смотрите fvtool.

Примеры

свернуть все

Создайте децимирующий фильтр полуполосы lowpass для данных, произведенных на уровне 44,1 кГц. Уровень выходных данных является 1/2 входной уровень выборки, или 22,05 кГц. Задайте порядка фильтра, чтобы быть 52 с шириной перехода 4,1 кГц.

Fs = 44.1e3; 
filterspec = 'Filter order and transition width';
Order = 52;
TW = 4.1e3; 
firhalfbanddecim =dsp.FIRHalfbandDecimator('Specification',filterspec, ...
                                              'FilterOrder',Order, ...
                                              'TransitionWidth',TW, ...
                                              'SampleRate',Fs);

Постройте импульсную характеристику. Коэффициент нулевого порядка задерживается 26 выборок, который равен групповой задержке фильтра. Это дает к причинному фильтру полуполосы.

fvtool(firhalfbanddecim,'Analysis','impulse')

Постройте величину и фазовый отклик.

fvtool(firhalfbanddecim,'Analysis','freq')

Создайте КИХ минимального порядка фильтр lowpass для данных, произведенных на уровне 44,1 кГц. Задайте частоту полосы пропускания 8 кГц, частоту полосы задерживания 12 кГц, неравномерность в полосе пропускания 0,1 дБ и затухание в полосе задерживания 80 дБ.

Fs = 44.1e3; 
filtertype = 'FIR';
Fpass = 8e3;
Fstop = 12e3; 
Rp = 0.1;
Astop = 80;
FIRLPF = dsp.LowpassFilter('SampleRate',Fs, ...
                             'FilterType',filtertype, ...
                             'PassbandFrequency',Fpass, ...
                             'StopbandFrequency',Fstop, ...
                             'PassbandRipple',Rp, ...
                             'StopbandAttenuation',Astop);

Спроектируйте БИХ минимального порядка фильтр lowpass с теми же свойствами как КИХ фильтр lowpass. Измените FilterType свойство клонированного фильтра к IIR.

IIRLPF = clone(FIRLPF);
IIRLPF.FilterType = 'IIR';

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

fvtool(FIRLPF,'Analysis','impulse')

Постройте импульсную характеристику БИХ фильтр lowpass.

fvtool(IIRLPF,'Analysis','impulse')

Постройте величину и фазовый отклик КИХ фильтр lowpass.

fvtool(FIRLPF,'Analysis','freq')

Постройте величину и фазовый отклик БИХ фильтр lowpass.

fvtool(IIRLPF,'Analysis','freq')

Вычислите стоимость реализации КИХ фильтр lowpass.

cost(FIRLPF)
ans = struct with fields:
                  NumCoefficients: 39
                        NumStates: 38
    MultiplicationsPerInputSample: 39
          AdditionsPerInputSample: 38

Вычислите стоимость реализации БИХ фильтр lowpass. БИХ-фильтр более эффективен, чтобы реализовать, чем КИХ-фильтр.

cost(IIRLPF)
ans = struct with fields:
                  NumCoefficients: 18
                        NumStates: 14
    MultiplicationsPerInputSample: 18
          AdditionsPerInputSample: 14

Вычислите групповую задержку КИХ фильтр lowpass.

grpdelay(FIRLPF)

Вычислите групповую задержку БИХ фильтр lowpass. КИХ-фильтр имеет постоянную групповую задержку (линейная фаза), в то время как ее БИХ-дубликат не делает.

grpdelay(IIRLPF)

Входные параметры

свернуть все

Отфильтруйте аналитические опции в виде одного из следующего:

  • 'magnitude' – Ответ величины

  • 'phase' – Фазовый отклик

  • 'freq' – Частотная характеристика

  • 'grpdelay' – Групповая задержка

  • 'phasedelay' – Задержка фазы

  • 'impulse' – Импульсная характеристика

  • 'step' – Переходной процесс

  • 'polezero' – Нулевой график полюса

  • 'coefficients' – Содействующий вектор

  • 'info' – Отфильтруйте информацию

  • 'magestimate' – Оценка ответа величины

  • 'noisepower' – Спектр мощности шума округления

Пример: fvtool(firFilt,'freq')

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: firFilt = dsp.FIRFilter('Numerator', fir1(130, 2000/(8000/2))); fvtool(firFilt,'Arithmetic','single')

Выборка уровня в виде скаляра. Это значение определяет интервал Найквиста [-Fs/2 Fs/2], в котором fvtool показывает частотную характеристику фильтров в channelizer.

Типы данных: single | double

Задайте арифметику, используемую во время анализа. Аналитический инструмент принимает фильтр с двойной точностью, когда арифметический вход не задан, и Системный объект фильтра разблокирован. 'Arithmetic' набор свойств к 'Fixed' применяется только, чтобы отфильтровать Системные объекты со свойствами фиксированной точки.

Когда 'Arithmetic' свойство установлено в 'Fixed', инструмент показывает и ссылочный фильтр с двойной точностью и квантованную версию фильтра. CoefficientsDataType свойство в соответствующем Системном объекте фильтра используется в создании квантованной версии фильтра для всех аналитических опций за исключением двух ниже:

  • 'magestimate' – Оценка ответа величины.

  • 'noisepower' – Спектр мощности шума округления

Для этих двух аналитических опций все настройки фиксированной точки используются в анализе квантованной версии фильтра.

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