【数字信号去噪】基于matlab低通滤波数字信号去噪【含Matlab源码 964期】

举报
海神之光 发表于 2022/05/29 01:33:32 2022/05/29
【摘要】 一、获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。 获取代码方式2: 完整代码已上传我的资源:【数字信号去噪】基于matlab低通滤波数字信号去噪【...

一、获取代码方式

获取代码方式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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。