Визуализация частотной характеристики фильтров DSP
fvtool(
отображает величину ответ фильтра System object™.sysobj
)
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(____,
визуализирует ответ фильтра с каждым заданным набором свойств на заданное значение.Name,Value
)
Для получения дополнительных опций входа см. fvtool
в Signal Processing Toolbox™.
Создайте lowpass halfband децимирующий фильтр для данных, выбранных с частотой 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)
sysobj
- Входной фильтрВход фильтр, заданный как один из следующих Системных объектов фильтра:
Пример: firFilt = dsp.FIRFilter('Numerator', fir1(130, 2000/(8000/2))); fvtool(firFilt)
options
- Опции анализа фильтра'magnitude'
(по умолчанию) | 'phase'
| 'freq'
| 'grpdelay'
| 'phasedelay'
| 'impulse'
| 'step'
| 'polezero'
| 'coefficients'
| 'info'
| 'magestimate'
| 'noisepower'
Опции анализа фильтра, заданные как один из следующих:
'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'
- Частота дискретизацииЧастота дискретизации, заданная как скаляр. Это значение определяет интервал Найквиста [- Fs/2 Fs/2], в котором fvtool показывает частотную характеристику фильтров в канализаторе.
Типы данных: single
| double
'Arithmetic'
- Арифметический тип'double'
(по умолчанию) | 'single'
| 'Fixed'
Задайте арифметику, используемую во время анализа. Инструмент анализа принимает фильтр двойной точности, когда вход арифметики не задан и Системного объекта фильтра разблокирован. The 'Arithmetic'
значение свойства установлено в 'Fixed'
применяется только к фильтрации системных объектов со свойствами с фиксированной точкой.
Когда 'Arithmetic'
для свойства задано значение 'Fixed'
инструмент показывает как фильтр ссылки двойной точности, так и квантованную версию фильтра. The CoefficientsDataType
свойство в соответствующем фильтре Системного объекта используется при создании квантованной версии фильтра для всех опций анализа, за исключением двух ниже:
'magestimate'
- Оценка величины отклика.
'noisepower'
- Округление шум степени спектр
Для этих двух опций анализа все настройки с фиксированной точкой используются при анализе квантованной версии фильтра.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.