MATLAB 帮助中心
离散时间滤波器 System object 的冲激响应
[impResp,t] = impz(sysobj)
[impResp,t] = impz(sysobj,n)
[impResp,t] = impz(sysobj,n,fs)
[impResp,t] = impz(sysobj,[],fs)
[impResp,t] = impz(sysobj,Arithmetic=arithType)
impz(sysobj)
[impResp,t] = impz(sysobj) 计算滤波器 System object™ 的冲激响应,以列向量 impResp 形式返回响应,以 t 形式返回时间(或采样间隔)向量,其中 t = [0 1 2 ...k-1]'。k 是滤波器系数数目。
impResp
t
sysobj
t = [0 1 2 ...k-1]'
k
示例
[impResp,t] = impz(sysobj,n) 以一秒的间隔在 floor(n) 处计算冲激响应。时间向量 t 等于 (0:floor(n)-1)'。
n
floor(n)
(0:floor(n)-1)'
[impResp,t] = impz(sysobj,n,fs) 以 1/fs 秒的间隔在 floor(n) 处计算冲激响应。时间向量 t 等于 (0:floor(n)-1)'/fs。
fs
(0:floor(n)-1)'/fs
[impResp,t] = impz(sysobj,[],fs) 以 1/fs 秒的间隔在 k 处计算冲激响应。k 是滤波器系数数目。时间向量 t 等于 (0:k-1)'/fs。
(0:k-1)'/fs
[impResp,t] = impz(sysobj,Arithmetic=arithType) 基于 arithType 中指定的算术,使用上述任一语法计算冲激响应。
arithType
impz(sysobj) 绘制滤波器 System object 的冲激响应。
您可以对实数和复数滤波器都使用 impz。当您省略输出参量时,impz 仅绘制冲激响应的实部。
impz
有关更多输入选项,请参考 Signal Processing Toolbox™ 中的 impz。
全部折叠
为截止频率为奈奎斯特频率 0.4 倍的四阶低通椭圆滤波器创建一个离散时间滤波器。使用二阶节结构来抵抗量化误差。绘制冲激响应的前 50 个采样以及参考冲激响应。
d = fdesign.lowpass(.4,.5,1,80);
为原型滤波器创建一个设计对象。使用 ellip 设计一个最小阶离散时间 SOS 滤波器。
ellip
sosFilt = design(d,"ellip",Systemobject=true)
sosFilt = dsp.SOSFilter with properties: Structure: 'Direct form II' CoefficientSource: 'Property' Numerator: [4×3 double] Denominator: [4×3 double] HasScaleValues: true ScaleValues: [0.7277 0.8290 1.3494 0.0048 1] Show all properties
绘制冲激响应。
impz(sosFilt);
输入滤波器,指定为以下滤波器 System object 之一:
dsp.AllpassFilter
dsp.AllpoleFilter
dsp.CICCompensationDecimator
dsp.CICCompensationInterpolator
dsp.CICDecimator
dsp.CICInterpolator
dsp.CoupledAllpassFilter
dsp.DCBlocker (自 R2024b 起)
dsp.DCBlocker
dsp.Delay
dsp.Differentiator
dsp.FarrowRateConverter
dsp.FilterCascade
dsp.FIRDecimator
dsp.FIRFilter
dsp.FIRHalfbandDecimator
dsp.FIRHalfbandInterpolator
dsp.FIRInterpolator
dsp.FIRRateConverter
dsp.FourthOrderSectionFilter
dsp.HighpassFilter
dsp.IIRFilter
dsp.IIRHalfbandDecimator
dsp.IIRHalfbandInterpolator
dsp.LowpassFilter
dsp.NotchPeakFilter
dsp.ParallelFilter
dsp.SOSFilter
dsp.VariableBandwidthFIRFilter
dsp.VariableBandwidthIIRFilter
dsp.VariableFIRDecimator
dsp.VariableFIRInterpolator
冲激响应向量的长度,指定为正整数。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
1
用于计算冲激响应的采样频率,指定为正标量。
'double'
'single'
'Fixed'
滤波器分析中使用的算术,指定为 'double'、'single' 或 'Fixed'。当未指定算术输入且滤波器 System object 未锁定时,分析工具假定为双精度滤波器。当未指定算术输入且 System object 锁定时,该函数基于锁定输入的数据类型执行分析。
'Fixed' 值仅适用于具有定点属性的滤波器 System object。
当 'Arithmetic' 输入参量指定为 'Fixed' 且滤波器对象的系数数据类型设置为 'Same word length as input' 时,算术分析取决于 System object 是未锁定还是锁定。
'Arithmetic'
'Same word length as input'
未锁定 - 分析对象函数无法确定系数数据类型。该函数假定系数数据类型为有符号,具有 16 位字长,并且是自动定标的。该函数基于此假设执行定点分析。
锁定 - 当输入数据类型为 'double' 或 'single' 时,分析对象函数无法确定系数数据类型。该函数假定系数的数据类型为有符号,具有 16 位字长,并且是自动定标的。该函数基于此假设执行定点分析。
要检查 System object 是锁定还是未锁定,请使用 isLocked 函数。
isLocked
当算术输入指定为 'Fixed' 且滤波器对象的系数数据类型设置为自定义数值类型时,对象函数基于自定义数值数据类型执行定点分析。
冲激响应,以 n 元素向量形式返回。如果未指定 n,则冲激响应向量的长度等于滤波器中的系数数目。
数据类型: double
时间向量,长度为 n,单位为秒。t 由范围 (0:floor(n)-1)'/fs 内的 n 个等间隔点组成。如果未指定 n,函数使用滤波器的系数数目。
全部展开
从 R2024b 开始,impz 分析函数支持 dsp.VariableFIRDecimator 和 dsp.VariableFIRInterpolator 对象。
dsp.BiquadFilter
dsp.BiquadFilter 对象在使用时会发出警告,并将在以后的版本中删除。请改用 dsp.SOSFilter 对象。有关如何替换现有代码的信息,请参阅 dsp.BiquadFilter 参考页中的兼容性注意事项部分。
从 R2024b 开始,此函数支持 dsp.DCBlocker 对象。
当您调用不带输出参量的 impz 函数时,该函数不再使用滤波器可视化工具来绘制滤波器的冲激响应。从 R2024a 开始,该函数改用 MATLAB® 图。
您无需对代码进行任何更改。
从 R2023b 开始,impz 分析函数支持 dsp.ParallelFilter 和 dsp.Delay 对象。
dsp.BiquadFilter 对象将在以后的版本中删除。请改用 dsp.SOSFilter 对象。
filter
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处