300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > matlab低通滤波器库函数代码_利用Matlab filterDesigner 工具生成FIR滤波器函数 并

matlab低通滤波器库函数代码_利用Matlab filterDesigner 工具生成FIR滤波器函数 并

时间:2023-07-24 12:46:53

相关推荐

matlab低通滤波器库函数代码_利用Matlab filterDesigner 工具生成FIR滤波器函数 并

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

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

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

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

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

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

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

代码如下:

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- 11:22:46

% FIR Window Lowpass filter designed using the FIR1 function.

% All frequency values are in Hz.

Fs = 100; % Sampling Frequency

N = 7; % Order

Fc = 10; % Cutoff Frequency

flag = '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]

接下来我们要设计一个带噪声的信号函数,然后通过这个滤波器,来测试滤波效果:

在matlab中新建一个脚本,保存为signal.m,与fir_8.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的滤波器,输出信号d

figure(2);

plot(x,d);%画出通过滤波器的信号d的波形

title('输出信号');

figure(3);

plot(x,y,'r');%画出输入信号图形

hold on;%保持画出的输入信号图形

plot(x,d,'b');%画出输出信号波形

title('输入/输出信号');

legend('输出信号','输入信号');

运行signal.m(在matlab命令行窗口输入signal即可)

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

代码文件下载

matlab低通滤波器库函数代码_利用Matlab filterDesigner 工具生成FIR滤波器函数 并调用实现低通滤波...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。