利用Matlab filterDesigner 工具生成FIR滤波器函数,并调用实现低通滤波

article/2025/10/22 8:44:26

本文使用的开发环境为:Win10 Matlab2018a 版本。

  1. 在matlab命令窗口输入:filterDesigner命令,即可打开filterDesigner设计工具。
    命令行窗口

  2. 按照下图调整FIR低通滤波器的参数:

    我们设计的是采样频率100Hz,截止频率10Hz的8阶FIR低通数字滤波器。
    FIR低通滤波器参数设置

  3. 生成matlab函数代码:File—Generate MATLAB Code—Filter Design Function

    我在这里将生成的m文件保存为fir_8.m。
    生成matlab代码

  4. 在matlab中打开fir_8.m是这个样子的:

    代码如下:
    fir_8

    function Hd = fir_8%FIR_8 Returns a discrete-time filter object.% MATLAB Code% Generated by MATLAB(R) 9.4 and DSP System Toolbox 9.6.% Generated on: 09-Apr-2019 11:22:46% FIR Window Lowpass filter designed using the FIR1 function.% All frequency values are in Hz.Fs = 100;  % Sampling FrequencyN    = 7;        % OrderFc   = 10;       % Cutoff Frequencyflag = 'scale';  % Sampling Flag% Create the window vector for the design algorithm.win = hamming(N+1);% Calculate the coefficients using the FIR1 function.b  = fir1(N, Fc/(Fs/2), 'low', win, flag);Hd = dfilt.dffir(b);% [EOF]
  1. 接下来我们要设计一个带噪声的信号函数,然后通过这个滤波器,来测试滤波效果:

    在matlab中新建一个脚本,保存为signal.m,与fir_8.m保存在同一文件夹中。

    代码如下:

    signal.m

    x = 0:0.01:4;%定义400个取样点y = 0.1*sin(pi*x) +0.1*sin(2*pi*49*x);%设计含有高频信号与低频信号的输入信号figure(1);plot(x,y);%画出输入信号图形title('输入信号');Hd = fir_8;%引入滤波器,Hd包含了fir_8滤波器的各项参数d = filter(Hd,y);%通过filter函数将信号y送入参数为Hd的滤波器,输出信号dfigure(2);plot(x,d);%画出通过滤波器的信号d的波形title('输出信号');figure(3);plot(x,y,'r');%画出输入信号图形hold on;%保持画出的输入信号图形plot(x,d,'b');%画出输出信号波形title('输入/输出信号');legend('输出信号','输入信号');
  1. 运行signal.m(在matlab命令行窗口输入signal即可)

    输入信号

    输出信号

    输入/输出信号

PS: 本文主要参考惠飞《FPGA嵌入式系统开发与实例》第5.4.3节

代码文件下载


http://chatgpt.dhexx.cn/article/DFnqjjOi.shtml

相关文章

matlab由滤波的系数得到传输函数 设计带通滤波器 design fdatool设计IIR带通滤波器

写在前面的话: 由滤波器系数得到传输函数: 使用matlab fdatool设计滤波器,得到幅频响应,得到滤波器系数,由系数如何得到滤波器的参数? 我的方法是 使用:点击Filt-Export to simulink Model, …

带通滤波器的设计

一、滤波器:滤波器按照频带划分可以分为:低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BEF)。其中射频天线领域主要采用带通滤波器(BPF)。 二、带通滤波器(BPF): ①:RF BPF:从天线中取出期望频带的…

【matlab图像处理】理想低通滤波器

实验原理: 在一幅图像中,低频部分对应图像变化缓慢的部分即图像大致外观和轮廓,高频部分对应图像变化剧烈的部分即图像细节,图像噪声也属于高频部分。低通滤波器的功能是让低频率通过而滤掉或衰减高频,效果是图像去噪平…

Matlab滤波器的设计

在IIR滤波器设计过程中,通常利用模拟滤波器来设计数字滤波器,首先要根据滤波器的性能指标设计出相应的模拟滤波器的系统传递函数G(s),然后由传递函数G(s)经Z变换得到所需要的数字滤波器的离散型传递函数。常用的Z变换方法有冲激响应不变法和双…

[Matlab]巴特沃夫滤波器设计:低通、高通、带通和带阻(1)

[Matlab]巴特沃夫滤波器设计:低通、高通、带通和带阻-------(1) ​ 巴特沃斯滤波器(Butterworth filter)称作最大平坦滤波器。巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有纹波&#x…

基于MATLAB的Filter使用,低通、带通和高通滤波器的MATLAB程序分享

基于MATLAB的Filter使用,低通、带通和高通滤波器的MATLAB程序分享 完整程序如下: clear all close all clc %% Parameter Interface Frequence0 60; %单位:Hz Frequence1 130; %单位:Hz F…

MATLAB —— 低通滤波器设计与信号滤波

百度百科 - 简介: 低通滤波器是容许低于截止频率的信号通过, 但高于截止频率的信号不能通过的电子滤波装置。 (1)提取滤波器(系数矩阵) 打开工具: MATLAB - APP - Filter Designer 参数设置&am…

低通滤波-matlab低通滤波程序

本例程展示了信号处理中低通滤波的作用,首先生成一个高斯白噪声,然后对其进行低通滤波。低通滤波器的截止频率和Q值可以自己设定,得到低通滤波器的传输函数后,在经过双线性变换法得到其单位脉冲响应。滤波后对原始信号的频谱和滤波…

模拟和数字低通滤波器的MATLAB实现

转自:http://blog.sina.com.cn/s/blog_79ecf6980100vcrf.html 低通滤波器参数:Fs8000,fp2500,fs3500,Rp1dB,As30dB,其他滤波器可以通过与低通之间的映射关系实现。 %%模拟滤波器 %巴特沃斯——…

matlab低通滤波

低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频中的噪声。所以低通滤波的效果是图像去噪声平滑增强,但同时也抑制了图像的边界,造成图像不同程度上的模糊。 大于大小为MN的图像,频率点(u&…

基于MATLAB的filter的使用,低通、带通和高通滤波器设计

1、目的 学习MATLAB的filter函数的使用,通过设计低通、带通和高通滤波器对其进行仿真 2、用到的主要函数和工具 MATLAB、FDATOOL、filter、fft 3、设计 信号的产生 %% Parameter Interface Frequence0 60; %单位:Hz Frequenc…

Matlab中的滤波器

在matlab中我们需要生成滤波器时,可以使用matlab中自带的工具。 在matlab命令窗口中输入filterDesigner,出现下列窗口。 在这里根据需要设计自己所需要的滤波器即可。 设计完滤波器之后如果我们想要以函数的方式使用我们的滤波器,那么我们可…

【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻) 本章节讲解FIR滤波器的Matlab设计。主要是函数fir1和fir2的使用。 目录 36.1 窗函数 36…

1.巴特沃斯模拟滤波器(低通,高通,带通,带阻)设计-MATLAB实现

本文是模拟滤波器设计,如果需要了解数字滤波器的内容,可以按顺序看我写的另外两篇博客,如下: 2.MATLAB实现无限脉冲响应数字滤波器(IIR) 3.MATLAB实现有限脉冲响应数字滤波器(FIR)…

matlab设计模拟带通滤波器

简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。 代码如下: %设计带通滤波器 %巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型滤波器clear all;%wp和ws分别是通…

学习如何在matlab用带通滤波器进行滤波

如何在matlab用带通滤波器进行滤波? 主要内容是在知乎上看到的一篇文章 链接: https://zhuanlan.zhihu.com/p/152647067?from_voters_pagetrue.可以直接看这篇文章。 以带通滤波器——巴特沃斯滤波器为例 matlab给出的代码如下:[n,Wn] buttord(Wp,W…

matlab设计低通滤波器

matlab设计低通滤波器 文章目录 matlab设计低通滤波器 前言一、什么是滤波器?二、滤波器的技术指标三、滤波器的分类四、巴特沃斯低通滤波器设计1.输入信号设置2.设计滤波器3.滤波器输出信号 五、采用ADI公司的滤波器向导设计滤波器 前言 例如:随着人工…

matlab实现低通、高通、带通、带阻滤波

MATLAB滤波常用函数 模拟滤波器阶数选择函数 buttord 功能:计算butterworth模拟滤波器的阶数 调用格式: [n,Wn]buttord(Wp,Ws,Rp,Rs,s); % 参数中的n是求出模拟滤波器最小的阶数,Wn是等效低通滤波器的截止频率;Wp和Ws分别是通…

matlab制作数字滤波器(带通滤波器)

一、目的 使用matlab中自带的工具fdatool制作带通滤波器,对数据进行滤波。 二、过程 如图,使用该工具制作了一个带通滤波器,频率为130-180Hz,使用汉明窗截短,滤波器的阶数为250。 滤波器的冲击响应如下图 将生成的滤…

matlab实现带通滤波

以带通滤波器——巴特沃斯滤波器为例 matlab给出的代码如下:[n,Wn] buttord(Wp,Ws,Rp,Rs) 首先要先理解一个带通滤波器的幅频特性图中,分为通带、阻带、过渡带三大部分。 通带截止频率和阻带截止频率对这三部分进行划分,二者之间的部分即…