本文章只作为本人学习笔记使用
matlab具有非常使用的滤波器设计工具,关于如何找到这个小工具有两种方法。
1、我们可以在命令行输入filterDesigner(不同版本命令可能会有所不同)
2、在APP页面中找到filterDesigner
两者都可以打开同样的滤波器调整页面。
在之前的内容中我们分析了信号的频谱,在这里我们再生成一个叠加信号。
可以看到我们这里生成了一个50hz+70hz+100hz的叠加信号,如果我们要将70以上的高频成分滤掉应该怎么设计呢(fft函数的代码会放在下面)?
选择低通就可以点设计滤波器了,需要注意的是采样频率fs跟外面的信号要一致
点设计滤波器之后在响应图中就可以看到了,那么我们如何才能在设计中使用呢,在文件里点击导出到工作区,导出为对象。
可以看到变量区已经有Hd这个对象,简单的利用filter这个函数就可以调用了;
可以看到高频成分已经滤掉。文章来源:https://www.toymoban.com/news/detail-779179.html
还有一种导出方法是导出为系数只需要利用filter(Num,1,c)就可以了。文章来源地址https://www.toymoban.com/news/detail-779179.html
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
到了这里,关于MatLab中滤波器(filterDesigner)的设计和使用(附代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!