一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、LMS简介

最小均方(LMS, Least Mean Squares)种最基本的自适应滤波算法。LMS算法是自适应滤波器中常用的一种算法与维纳算法不同的是其系统的系数随输入序列而改变。维纳算法中截取输入序列自相关函数的一段构造系统的最佳系数。而LMS算法则是对初始化的滤波器系数依据最小均方误差准则进行不断修正来实现的。因此理论上讲LMS算法的性能在同等条件下要优于维纳。但是LMS是在初始值下逐步调整的,因此在系统稳定前,会有一段调整时间,调整时间受步长因子的控制,一定范围内,步长因子越大,调整时间越小,步长因子的最大取值为R的迹。LMS采用平方误差最小的原则代替均方误差最小的原则,信号基本关系如下:

三、部分源代码

%该程序实现时域LMS算法,并用统计的方法仿真得出不同步长下的收敛曲线
clear                     %   清空变量空间
close allg=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):NXN=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

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.

【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】相关推荐

  1. 【Matlab语音隐写】DWT音频数字水印【含GUI源码 712期】

    一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DWT音频数字水印[含GUI源码 712期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  2. 【Matlab语音处理】汉宁窗FIR陷波滤波器语音信号加噪去噪【含GUI源码 1711期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]汉宁窗FIR陷波滤波器语音信号加噪去噪[含GUI源码 1711期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  3. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  4. 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】

    一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...

  5. 【Matlab语音隐写】DCT+DWT音频数字水印嵌入提取【含GUI源码 836期】

    一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DCT+DWT音频数字水印嵌入提取[含GUI源码 836期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

  6. 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  7. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  8. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  9. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  10. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

最新文章

  1. java swing 架构_Java Swing1 基本框架
  2. 笔记本电脑双显卡的切换技巧
  3. editor修改样式 vue_vue-quill-editor的使用及个性化定制操作
  4. Visual C#创建Windows服务程序
  5. android--创建自己的内容提供器
  6. lsb_release查看当前系统的发行版信息
  7. 一分钟理清Mysql的锁类型——《深究Mysql锁》
  8. Python Socket通信黏包问题分析及解决方法
  9. php对象转换为字符串,php – 类的对象..无法转换为字符串
  10. 服务器物理槽位和逻辑对应,如何查看Linux服务器的物理CPU逻辑CPU和CPU核数
  11. 游戏中MD5加密的一些作用
  12. 如何在PS中为图片添加塑料布效果
  13. 病急乱投医的周杰和小气的汪峰
  14. 上海怎样查询最近三年社保明细
  15. C++学习(二六六)LINK_DIRECTORIES
  16. H1B工作签证紧俏 “中签率”低对中国留学生影响大-中新网
  17. 如何使用扫码实现收派件?
  18. 全球最好的大学各专业排名
  19. [Unity 3D] DOTween 常用函数
  20. Android 6.0 Gallery2 eclispe编译

热门文章

  1. 再起航,我的学习笔记之JavaScript设计模式13(装饰者模式)
  2. Qt QT_BEGIN_NAMESPACE
  3. 生成[1,2,,3,4,5,6,7,8,9]的随机数组?
  4. 使用Mat分析大堆信息
  5. 淘宝PK京东:哥刷的不是广告,刷的是存在
  6. 使用xml和java代码混合控制UI界面
  7. vs2010无法添加dll引用
  8. 作为一名运维工程师我们需要哪些技术
  9. Mojoportal 的用户系统
  10. 神经网络drop out