Визуализируйте частотную характеристику фильтров DSP
fvtool(
отображает ответ величины Системы фильтра 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 для данных, произведенных на уровне 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 показывает частотную характеристику фильтров в channelizer.
Типы данных: single
| double
Arithmetic
— Арифметический тип'double'
(значение по умолчанию) | 'single'
| 'Fixed'
Задайте арифметику, используемую во время анализа. Аналитический инструмент принимает фильтр с двойной точностью, когда арифметический вход не задан, и Системный объект фильтра разблокирован. 'Arithmetic'
набор свойств к 'Fixed'
применяется только, чтобы отфильтровать Системные объекты со свойствами фиксированной точки.
Когда 'Arithmetic'
свойство установлено в 'Fixed'
, инструмент показывает и ссылочный фильтр с двойной точностью и квантованную версию фильтра. CoefficientsDataType
свойство в соответствующем Системном объекте фильтра используется в создании квантованной версии фильтра для всех аналитических опций за исключением двух ниже:
'magestimate'
– Оценка ответа величины.
'noisepower'
– Спектр шумовой мощности округления
Для этих двух аналитических опций все настройки фиксированной точки используются в анализе квантованной версии фильтра.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.