0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简述滤波器设计规格对象函数fdesign的使用方法 1

jf_78858299 来源: Linux嵌入式技术开发 作者: Linux嵌入式技术开 2023-02-10 16:46 次阅读

1.1 滤波器设计流程

本文展示了如何使用Matlab中滤波器设计规格对象函数fdesign的使用方法。根据fdesign创建的滤波器规格对象,可以使用design函数直接设计滤波器。

滤波器的设计、分析以及在数据流上的应用的示意图如下所示:

图片

具体的步骤如下所示:

  • 步骤一: 创建一个fdesign.response规格对象用以表述滤波器设计参数;
  • 步骤二: 使用designmethods确定针对滤波器规格队形的滤波器设计方法;
  • 步骤三: 如果想要进一步修改滤波器的参数,可以查看designoptions函数的使用方法,进行具体的滤波器参数设置。
  • 步骤四: 使用design方法从滤波器规格对象设计一个滤波器,并以步骤二中的设计方法作为输入。如果需要修改设计选项值,需要指定名称-值对的方式向design函数中传递参数;另外,如果在调用design函数时,没有指定任何输出参数,则将默认启动滤波器可视化工具FVTool,并现实设计滤波器的幅值响应。
  • 步骤五: 至此,我们就可以进一步查看设计的滤波器分析结果包括:频率响应、损失函数、滤波器响应特征测量值等。具体的可以参考Analysis Methods for Filter System Objects。
  • 步骤六: 经过滤波器分析、设计后,我们就可以将滤波器对象应用于输入数据流。

1.2 滤波器设计规格对象函数fdesign的语法

fdesign函数的使用语法主要包括如下四种方式:

  • (1)designSpecs = fdesign.response:返回一个具有特定响应(response)的滤波器设计规格对象(design specification object)。
  • (2)designSpecs = fdesign.response(spec):指定用于定义滤波器设计的变量spec
  • (3)designSpecs = fdesign.response(___, Fs):指定设计滤波器的采样频率()。注意:Fs参数必须作为最后一个参数。
  • (4)designSpecs = fdesign.response(___, magunits):指定输入参数的幅值单位。

二、低通滤波器设计与性能分析

示例: 设计一个采样频率为的低通滤波器,低通滤波器的参数规格如下所示:

  • 通带频率为;
  • 阻带频率为;
  • 通带波动为;
  • 阻带衰减为。

低通滤波器的阶数可以根据参数规格自动的配置。

2.1 低通滤波器的设计

首先,使用fdesign.lowpass函数设置低通滤波器规格对象,Matlab代码如下所示:

Fs = 96e3;      % 采样频率
Fpass = 20e3;   % 通带频率
Fstop = 24e3;   % 阻带频率
Apass = 0.01;   % 通带波纹
Astop = 80;     % 阻带衰减

% 使用fdesign.lowpass函数得到滤波器规格对象filtSpecs
filtSpecs = fdesign.lowpass( ...
    Fpass, ...  % 通带频率
    Fstop, ...  % 阻带频率
    Apass, ...  % 通带波纹
    Astop, ...  % 阻带衰减
    Fs);        % 采样频率

然后,使用designmethods函数可以输出针对滤波器规格对象filtSpecs可用的滤波器设计方法,Matlab代码如下所示:

% 查看可用的滤波器设计方法
designmethods(filtSpecs, 'SystemObject', true)

该代码的执行结果如下图所示:

图片

下面,使用design函数设计两个满足规格的低通滤波器:

  • 等波纹FIR低通滤波器(equiripple);
  • 椭圆IIR低通滤波器。

!! ✨ 注意: design函数的返回值是一个dsp.FIRdecimator系统对象,Matlab代码如下所示:

等波纹FIR低通滤波器滤波器的实现代码如下所示:

lpFIR = design(filtSpecs, 'equiripple', 'SystemObject', true)

代码输出如下图所示:

图片

椭圆IIR低通滤波器的实现代码如下所示:

lpIIR = design(filtSpecs, 'ellip', 'SystemObject', true)

代码输出结果如下图所示:

图片

2.2 低通滤波器的分析

最后,我们可以使用如下函数对设计的滤波器进行分析与可视化:

  • measure函数:测量滤波器系统对象的频率响应特性,对于低通滤波器,该函数测量的滤波器指标如下表所示:
频率响应特性 描述
Sample Rate 滤波器采样频率
Passband Edge 通带进入过渡时的边缘位置
3-dB Point 响应曲线上-3dB点的位置
6-dB Point 响应曲线上-6dB点的位置
Stopband Edge 过渡带进入阻带时的边缘位置
Passband Ripple 通带波纹
Stopband Atten 阻带衰减
Transition Width 通带与阻带之间的过渡宽度
  • cost函数:评估滤波器系统对象的实现计算成本,并返回一个包含计算成本评估值的结构体,返回值包含的内容如下表所示:
计算成本评估值 描述
NumCoefficients 滤波器系数的数量,不包含
NumStates 滤波器状态的数量
MultiplicationsPerInputSample 每个输入样本执行乘法运算的数量
AdditionsPerInputSample 每个输入样本执行加法运算的数量
  • fvtool:对滤波器进行可视化并直观地比较不同滤波器的性能。

(1)滤波器频率响应特性测量

等波纹FIR低通滤波器滤波器的频率响应特性测量代码如下所示:

FIRmeas = measure(lpFIR)

等波纹FIR低通滤波器滤波器的频率响应特性测量结果如下图所示:

图片

椭圆IIR低通滤波器的频率响应特性测量代码如下所示:

IIRmeas = measure(lpIIR)

椭圆IIR低通滤波器的频率响应特性测量结果如下图所示:

图片

(2)滤波器计算成本评估

等波纹FIR低通滤波器滤波器的计算成本评估代码如下所示:

FIRcost = cost(lpFIR)

等波纹FIR低通滤波器滤波器的计算成本评估结果如下图所示:

图片

椭圆IIR低通滤波器的计算成本评估代码如下所示:

IIRcost = cost(lpIIR)

椭圆IIR低通滤波器的计算成本评估结果如下图所示:

图片

(3)滤波器频率响应可视化

下面使用fvtool对等波纹FIR低通滤波器滤波器与椭圆IIR低通滤波器进行可视化处理,代码如下所示:

hvft = fvtool(lpFIR, lpIIR, 'Fs', Fs);
legend(hvft, '等波纹FIR低通滤波器', '椭圆IIR低通滤波器')

两个滤波器的可视化结果如下图所示:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    181

    文章

    2960

    浏览量

    230014
  • 滤波器
    +关注

    关注

    160

    文章

    7703

    浏览量

    177422
  • 函数
    +关注

    关注

    3

    文章

    4276

    浏览量

    62317
收藏 人收藏

    评论

    相关推荐

    简述滤波器设计规格对象函数fdesign使用方法 2

    本文展示了如何使用Matlab中滤波器设计规格对象函数`fdesign`的使用方法。根据`
    的头像 发表于 02-10 16:46 3034次阅读
    <b class='flag-5'>简述</b><b class='flag-5'>滤波器</b>设计<b class='flag-5'>规格</b><b class='flag-5'>对象</b><b class='flag-5'>函数</b><b class='flag-5'>fdesign</b>的<b class='flag-5'>使用方法</b> 2

    有源滤波器的设计

    1) 学习有源滤波器的设计方法;2) 掌握有源滤波器的安装与调试方法;3) 了解电阻、电容和Q值对滤波
    发表于 12-01 11:41 76次下载

    用窗函数设计FIR滤波器

    用窗函数设计FIR滤波器一、实验目的1、熟悉FIR滤波器设计的基本方法。2、掌握用窗函数设计FI
    发表于 05-10 10:02 97次下载

    VCVS高通滤波器电路原理及函数

    VCVS高通滤波器电路原理及函数 将低通滤波器的低通网络中电阻和电容互换,即得高通滤波器,如
    发表于 05-23 12:47 5363次阅读
    VCVS高通<b class='flag-5'>滤波器</b>电路原理及<b class='flag-5'>函数</b>

    LC椭圆函数带通滤波器的设计及仿真

    摘要:椭圆滤波器在各种滤波器中具有其自身独特的优点,但设计过程往往比较复杂.本文 给出了一种简易的计算方法.这种方法需要的初始值数据较少,设计步骤简练,计算量小.并用 PSPICE仿真
    发表于 01-28 16:04 185次下载

    基于椭圆函数的LC带通滤波器设计与仿真

    为了掌握微波滤波器的制作原理及设计方法,实现一种UHF波段带通滤波器的设计和制作。该设计采用了既定指标确定滤波器的形式(椭圆函数LC带通
    发表于 12-06 11:15 2569次阅读
    基于椭圆<b class='flag-5'>函数</b>的LC带通<b class='flag-5'>滤波器</b>设计与仿真

    编写滤波器函数

    本文档内容介绍了基于编写滤波器函数,及源代码,供参考
    发表于 04-13 15:51 16次下载

    馈通滤波器使用方法有哪些

    由于电路的工作频率和周围环境中的电磁干扰频率越来越高,将滤波器安装在线路板上所暴露出的高频滤波不足的问题日益突出。解决高频滤波的根本方法是使用馈通型
    发表于 08-05 18:52 3次下载
    馈通<b class='flag-5'>滤波器</b>的<b class='flag-5'>使用方法</b>有哪些

    fir滤波器设计方法有哪些

    FIR滤波器设计方法主要有窗函数法、线性最小均方差法、最大似然法、自适应滤波法、线性预测法等。窗函数法是一种简单的设计
    发表于 02-15 14:58 1805次阅读

    fir滤波器设计方法有哪些

    FIR滤波器设计方法主要有窗函数法、线性最小均方差法、最大似然法、自适应滤波法、线性预测法等。窗函数法是一种简单的设计
    发表于 02-15 15:29 3175次阅读

    滤波器设计工具的使用方法

    在高频应用(>1MHz)时,滤波器一般都由无源元件构成,比如电感L、电阻R和电容C。因此,这些滤波器称为LRC滤波器。但是,在较低的频率区(1
    的头像 发表于 10-01 10:21 1225次阅读
    <b class='flag-5'>滤波器</b>设计工具的<b class='flag-5'>使用方法</b>

    电源滤波器如何正确使用?电源滤波器安装时的注意事项?

    电力设备内,如计算机、电视机、音响系统等,以保证设备能够正常工作,减少噪音和干扰。 本文将介绍电源滤波器使用方法和安装注意事项。 一、电源滤波器使用方法
    的头像 发表于 10-25 15:48 1640次阅读

    变频滤波器有哪些种类与选用?滤波器如何选择及使用方法

    变频滤波器有哪些种类与选用?滤波器如何选择及使用方法? 一、变频滤波器的种类 变频
    的头像 发表于 10-25 15:48 1119次阅读

    如何设计有源滤波器?有源滤波器如何选型?

    级联法和模拟法两大类。1、级联法根据技术指标要求,求出可以物理实现的转移函数(通常可由现成的有源滤波器资料和手册中查得),并将它分解为低阶函数(主要是二阶
    的头像 发表于 11-07 08:07 1224次阅读
    如何设计有源<b class='flag-5'>滤波器</b>?有源<b class='flag-5'>滤波器</b>如何选型?

    怎么由系统函数判断滤波器的类型

    在信号处理领域,滤波器是一种非常重要的工具,用于从信号中提取或抑制某些频率成分。滤波器的类型很多,包括低通滤波器、高通滤波器、带通滤波器、带
    的头像 发表于 08-15 10:30 1008次阅读