文档

dsp。LowpassFilter

FIR或IIR低通滤波器

描述

dsp。LowpassFilter对象使用给定的设计规范随时间独立地过滤输入的每个通道。您可以设置FilterType的属性dsp。LowpassFilter“杉”“信息检索”将对象实现为FIR或IIR低通滤波器。

要过滤输入的每个通道:

  1. 创建dsp。LowpassFilter对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?(MATLAB)。

创建

描述

通滤波器= dsp。LowpassFilter返回一个最小阶FIR低通滤波器,通滤波器,使用默认筛选器设置。使用默认属性设置调用对象将过滤输入数据的通频带频率为8的阻带频率12的通带纹波0.1的阻带衰减80dB。

例子

通滤波器= dsp。LowpassFilter (名称,值返回一个低通过滤器,带有一个或多个指定的附加属性名称,值对参数。名字属性名称和价值对应的值。名字必须出现在单引号(' ')内。您可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计(MATLAB)。

输入采样率(以Hz为单位),由逗号分隔的对组成“SampleRate”这是一个正标量。

数据类型:|

过滤器类型,指定为以下选项之一:

  • “杉”-设计FIR低通滤波器。

  • “信息检索”—该对象设计了IIR低通(双方)滤波器。

最小阶滤波器设计,指定为由逗号分隔的对组成“DesignForMinimumOrder”和一个逻辑值。如果此属性为真正的,然后dsp。LowpassFilter设计满足通带频率、阻带频率、通带纹波和阻带衰减规格的最小阶数滤波器。使用相应的属性设置这些规范。如果此属性为对象中指定的顺序设计筛选器FilterOrder财产。此滤波器设计满足使用各自属性设置的通带频率、通带纹波和阻带衰减规范。

FIR或IIR滤波器的顺序,指定为由逗号分隔的对组成“FilterOrder”一个正整数标量。

依赖关系

的值时,指定筛选器顺序才有效“DesignForMinimumOrder”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

滤波器通带边频以Hz为单位,指定为以逗号分隔的对“PassbandFrequency”这是一个正标量。通带边频的值(以Hz为单位)必须小于一半SampleRate

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

滤波器阻带边频,以Hz为单位,由逗号分隔的对组成“StopbandFrequency”这是一个正标量。阻带边频率的值(以Hz为单位)必须小于一半SampleRate

依赖关系

只能在以下情况下指定阻带边频率“DesignForMinimumOrder”真正的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

通带中滤波器响应的最大纹波,以dB为单位,指定为逗号分隔的对,由“PassbandRipple”这是一个正标量。过滤器响应的最大纹波默认为0.1dB。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

阻带中的最小衰减,以dB为单位,由逗号分隔的对组成“StopbandAttenuation”这是一个正标量。最小衰减在阻带默认为80dB。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

定点属性

用于输出定点操作的舍入方法,指定为字符向量。有关舍入模式的详细信息,请参见精度和范围

系数的字和分数长度,指定为anumerictype对象。默认的,numerictype (16)对应于具有16位系数和基于系数值确定的分数长度的有符号数字类型对象,以提供尽可能高的精度。

此属性不可调。

输出的单词长度与输入的单词长度相同。计算输出的部分长度,以便输出的整个动态范围可以表示而不溢出。有关如何计算输出的分数长度的详细信息,请参见FIR滤波器中避免溢出的定点精度规则

使用

语法

描述

例子

y= LPF (x低通滤波输入信号,xy是低通滤波版的x

输入参数

全部展开

有噪声的数据输入,指定为向量或矩阵。如果输入信号是一个矩阵,矩阵的每一列都被视为一个独立的通道。输入信号中的行数表示通道长度。该对象接受可变大小的输入。对象锁定后,您可以更改每个输入通道的大小,但不能更改通道的数量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数支持:金宝app是的

输出参数

全部展开

过滤后的输出,作为向量或矩阵返回。输出具有与输入相同的大小、数据类型和复杂性特征。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|fi
复数支持:金宝app是的

对象的功能

要使用对象函数,请指定System对象™作为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

freqz 滤波器的频率响应
fvtool 可视化DSP滤波器的频率响应
impz 离散时间滤波器系统对象的脉冲响应
信息 filter系统对象信息
多项式系数 滤波器系数
成本 估计实现过滤器系统对象的成本
grpdelay 离散时间过滤器系统对象的组延迟响应
generatehdl 生成量化DSP滤波器的HDL代码(需要filter Design HDL Coder)
测量 测量滤波器系统对象的频响特性
一步 运行系统对象算法
释放 释放资源并允许更改System对象属性值和输入特征
重置 重置System对象的内部状态

例子

全部展开

为44.1 kHz采样数据创建最小阶FIR低通滤波器。指定8 kHz的通带频率,12 kHz的阻带频率,0.1 dB的通带纹波和80 dB的阻带衰减。

Fs = 44.11 e3;filtertype =“杉”;Fpass = 8e3;Fstop = 12e3;Rp = 0.1;stop = 80;FIRLPF = dsp。LowpassFilter (“SampleRate”Fs,...“FilterType”filtertype,...“PassbandFrequency”成就,...“StopbandFrequency”Fstop,...“PassbandRipple”Rp,...“StopbandAttenuation”, Astop);

设计一个具有与FIR低通滤波器相同特性的最小阶IIR低通滤波器。改变FilterType属性的克隆筛选器信息检索

IIRLPF =克隆(FIRLPF);IIRLPF。FilterType =“信息检索”

绘制FIR低通滤波器的脉冲响应。零阶系数被延迟19个样本,这等于滤波器的群延迟。FIR低通滤波器是因果FIR滤波器。

fvtool (FIRLPF“分析”“冲动”

绘制IIR低通滤波器的脉冲响应。

fvtool (IIRLPF“分析”“冲动”

绘制FIR低通滤波器的幅值和相位响应。

fvtool (FIRLPF“分析”“频率”

绘制IIR低通滤波器的幅值和相位响应。

fvtool (IIRLPF“分析”“频率”

计算实现FIR低通滤波器的成本。

成本(FIRLPF)
ans =带字段的结构:NumCoefficients: 39 NumStates: 38 MultiplicationsPerInputSample: 39 AdditionsPerInputSample: 38

计算实现IIR低通滤波器的成本。IIR滤波器比FIR滤波器的实现效率更高。

成本(IIRLPF)
ans =带字段的结构:NumCoefficients: 18 NumStates: 14 MultiplicationsPerInputSample: 18 AdditionsPerInputSample: 14

计算FIR低通滤波器的群时延。

grpdelay (FIRLPF)

计算IIR低通滤波器的群时延。FIR滤波器具有恒定的组延迟(线性相位),而IIR滤波器则没有。

grpdelay (IIRLPF)

创建一个具有默认属性的低通过滤器。

LPF = dsp.LowpassFilter;

创建频谱分析仪对象。

hSA = dsp。简介(“SampleRate”, 44.1 e3,...“PlotAsTwoSidedSpectrum”假的,“ShowLegend”,真的,“YLimits”...30 [-150],...“标题”...低通滤波器的输入信号和输出信号);保险公司。ChannelNames = {“输入”“输出”};

实现一步通滤波器对输入的高斯噪声白信号进行滤波。通过频谱分析仪查看输入输出信号。

k = 1:100 Input = randn(1024,1);输出=步长(LPF,输入);(输入、输出)步骤(hSA);结束

请注意:此示例仅在R2016b及以上版本运行。如果您正在使用较早的版本,请将对函数的每次调用替换为等效的调用一步语法。例如,myObject(x)变成step(myObject,x)。

设置IIR低通滤波器。高斯白噪声的采样率为44100 Hz。该滤波器的通带频率为8 kHz,阻带频率为12 kHz,通带纹波为0.1 dB,阻带衰减为80 dB。

Fs = 44.11 e3;filtertype =“信息检索”;Fpass = 8e3;Fstop = 12e3;Rp = 0.1;stop = 80;LPF = dsp。LowpassFilter (“SampleRate”Fs,...“FilterType”filtertype,...“PassbandFrequency”成就,...“StopbandFrequency”Fstop,...“PassbandRipple”Rp,...“StopbandAttenuation”, Astop);

查看低通滤波器的幅值响应。

fvtool (LPF)

创建频谱分析仪对象。

hSA = dsp。简介(“SampleRate”, 44.1 e3,...“PlotAsTwoSidedSpectrum”假的,“ShowLegend”,真的,“YLimits”...30 [-150],...“标题”...IIR低通滤波器的输入信号和输出信号);保险公司。ChannelNames = {“输入”“输出”};

对输入的白色高斯噪声信号进行滤波。通过频谱分析仪查看输入输出信号。

k = 1:100 Input = randn(1024,1);输出= LPF(输入);hSA((输入、输出));结束

测量低通滤波器的频率响应特性。创建一个dsp。LowpassFilter具有默认属性的系统对象。测量滤波器的频响特性。

LPF = dsp。LowpassFilter
LPF = dsp。LowpassFilter with properties: FilterType: 'FIR' DesignForMinimumOrder: true PassbandFrequency: 8000 StopbandFrequency: 12000 PassbandRipple: 0.1000 stopband衰减:80 SampleRate: 44100显示所有属性
LPFMeas =测量
LPFMeas =采样率:44.1 kHz通带边缘:8 kHz 3-dB点:9.1311 kHz 6-dB点:9.5723 kHz止带边缘:12 kHz通带纹波:0.08289 dB止带注意。: 81.6141 dB过渡宽度:4 kHz

算法

全部展开

参考文献

[1] Shpak, d.j.和A. Antoniou。一种用于FIR数字滤波器设计的广义Remez方法。IEEE®电路与系统汇刊.第37卷第2期,1990年2月,第161-174页。

[2]塞莱斯尼克,i.w.和c.s.伯勒斯。“交换算法补充了线性相位FIR滤波器设计的Parks-McClellan算法。”IEEE电路与系统汇刊.第44卷,第2期,1997年2月,第137-143页

扩展功能

定点转换
使用定点设计器设计和模拟定点系统。

在R2015a中引入