【数字信号去噪】基于matlab低通滤波数字信号去噪【含Matlab源码 964期】
一、获取代码方式
获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
获取代码方式2:
完整代码已上传我的资源:【数字信号去噪】基于matlab低通滤波数字信号去噪【含Matlab源码 964期】
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、低通滤波器简介
滤波器的用途:滤波器主要用来滤除信号中的无用频率成分,让符合频率要求的信号通过,抑制不需要的信号。
滤波器的分类:低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BEF)。下边介绍的滤波器均为无源的。
1 无源低通滤波器
允许信号中较低频率成分通过滤波器时,这种滤波器叫做低通滤波器。
2 二阶低通滤波
下图为二阶低通滤波器电路和具体bode图,可以发现其下降部分相较于一阶低通滤波更加陡峭。
3 RL电感低通滤波电路
RL电感低通滤波电路和RC低通滤波电路的功能基本一致,通低频,阻高频,此外还能实现积分电路。
三、部分源代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%设定初始参数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs=2048; %采样频率
N=512; %采样点数
n=0:N-1;
t=n/fs; %时间
f1=100;
f2=300; %低频
f3=800; %高频
s=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);%假定信号
subplot(121);plot(t,s);
title('输入信号');xlabel('t/s');ylabel('幅度');%未滤波时 时域波形
sfft=fft(s); %傅里叶变换
subplot(122);
plot((1:length(sfft)/2)*fs/length(sfft),2*abs(sfft(1:length(sfft)/2))/length(sfft));
title('信号频谱');xlabel('频率/Hz');ylabel('幅度'); %未滤波时 频域波形
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%设计巴特沃斯低通滤波器%%%%%%%%%%%%%%%%%%%%%%%%
Wp=900/fs;Ws=1000/fs;
[n,Wn]=buttord(Wp,Ws,1,50); %阻带衰减大于50db,通带纹波小于1db
%估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wn
[a,b]=butter(n,Wn);
[h,f]=freqz(a,b,'whole',fs); %求数字低通滤波器的频率响应
f=(0:length(f)-1)*fs/length(f); %进行对应的频率转换
figure(2);
plot(f(1:length(f)/2),abs(h(1:length(f)/2))); %绘制巴特沃斯幅频响应图
title('巴特沃斯低通滤波器');xlabel('频率/Hz');ylabel('幅度');
grid;
sF=filter(a,b,s); %叠加函数s经过低通滤波器以后的新函数
figure(3);
subplot(121);
plot(t,sF); %绘制叠加函数s经过低通后时域图形
title('输出信号');xlabel('t/s');ylabel('幅度');
SF=fft(sF);
subplot(122);
plot((1:length(SF)/2)*fs/length(SF),2*abs(SF(1:length(SF)/2))/length(SF));
title('低通滤波后频谱');xlabel('频率/Hz');ylabel('幅度');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%时域特征值计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
iemg1=sum(abs(sF))/length(sF);
rms1=sqrt(sum(sF.^2)/length(sF));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%频域特征值计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L1=length(sF);
cx1=xcorr(sF,'unbiased');
cxk1=fft(cx1,L1);
px1=abs(cxk1); %求功率谱密度
pxx1=10*log10(px1);
figure(4)
f1=(0:L1-1)*fs/L1;
plot(f1(1:L1/2),pxx1(1:L1/2))
figure(4)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/117465947
- 点赞
- 收藏
- 关注作者
评论(0)