【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】
2021/6/28 14:22:33
本文主要是介绍【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、简介
二、源代码
%该程序实现时域LMS算法,并用统计的方法仿真得出不同步长下的收敛曲线 clear % 清空变量空间 close all g=100; % 统计仿真次数为g N=1024; % 输入信号抽样点数N k=128; % 时域抽头LMS算法滤波器阶数 pp=zeros(g,N-k); % 将每次独立循环的误差结果存于矩阵pp中,以便后面对其平均 u=0.001; for q=1:g t=1:N; a=1; s=a*sin(0.05*pi*t); % 输入单频信号s figure(1); subplot(311) plot(t,real(s)); % 信号s时域波形 title('信号s时域波形'); xlabel('n'); ylabel('s'); axis([0,N,-a-1,a+1]); xn=awgn(s,3); % 加入均值为零的高斯白噪声,信噪比为3dB % 设置初值 y=zeros(1,N); % 输出信号y y(1:k)=xn(1:k); % 将输入信号xn的前k个值作为输出y的前k个值 w=zeros(1,k); % 设置抽头加权初值 e=zeros(1,N); % 误差信号 % 用LMS算法迭代滤波 for i=(k+1):N XN=xn((i-k+1):i); y(i)=w*XN'; e(i)=s(i)-y(i); w=w+u*e(i)*XN; end pp(q,:)=(e(k+1:N)).^2; end subplot(312) plot(t,real(xn)); % 信号s时域波形 plot(t,real(y)); % 信号s时域波形 title('自适应滤波后的输出时域波形'); for b=1:N-k bi(b)=sum(pp(:,b))/g; % 求误差的统计平均 end
三、运行结果
四、备注
版本:2014a
完整代码或代写加1564658423
这篇关于【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南