MatLab中滤波器(filterDesigner)的设计和使用(附代码)

您所在的位置:网站首页 滤波器程序设计实验报告 MatLab中滤波器(filterDesigner)的设计和使用(附代码)

MatLab中滤波器(filterDesigner)的设计和使用(附代码)

2023-08-23 01:21| 来源: 网络整理| 查看: 265

本文章只作为本人学习笔记使用

matlab具有非常使用的滤波器设计工具,关于如何找到这个小工具有两种方法。

1、我们可以在命令行输入filterDesigner(不同版本命令可能会有所不同)

 

2、在APP页面中找到filterDesigner

 两者都可以打开同样的滤波器调整页面。

在之前的内容中我们分析了信号的频谱,在这里我们再生成一个叠加信号。

 可以看到我们这里生成了一个50hz+70hz+100hz的叠加信号,如果我们要将70以上的高频成分滤掉应该怎么设计呢(fft函数的代码会放在下面)?

 选择低通就可以点设计滤波器了,需要注意的是采样频率fs跟外面的信号要一致

点设计滤波器之后在响应图中就可以看到了,那么我们如何才能在设计中使用呢,在文件里点击导出到工作区,导出为对象。

 

可以看到变量区已经有Hd这个对象,简单的利用filter这个函数就可以调用了;

 

 可以看到高频成分已经滤掉。

还有一种导出方法是导出为系数只需要利用filter(Num,1,c)就可以了。

function fft_deal(fs,t,f) %%函数需要传入三个参数 1是fs采样频率 t时间轴 f需要变换的信号 subplot(311); plot(t,f); %%fft部分 f_fft=fft(f); L=length(f_fft);%获取序列长度; %%绘制双边谱 y_d=fftshift(f_fft); %搬移fft结果到双边%双边谱时 L/2+1点算是负值的最后一点例0 1 2 3 4 5 = 3 4 5 0 1 2 3 y_d_amp=abs(y_d)/L; df_d=fs/L; f_d=(-L/2:L/2-1)*df_d; subplot(312); plot(f_d,y_d_amp); %%绘制单边谱 y_s=f_fft(1:L/2+1)%%单边谱时501点算正 y_s(2:end-1)=y_s(2:end-1)*2;%除了0点也就是直流和501点其余点两倍 y_s_amp=abs(y_s)/L;%获取幅度 df_s=fs/L; f_s=(0:1:L/2)*df_s;%绘制频率轴 subplot(313) plot(f_s,y_s_amp); end



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3