当前位置: 首页 > news >正文

MATLAB语音去噪系统

目录

一、背景      

二、GUI页面

三、程序

3.1 LMS滤波程序

3.2 GUI程序

四、附录


一、背景      

  本文介绍了一种最佳的自适应滤波器结构,该结构采用最小均方差(LMS)作为判据,通过不断迭代自适应结构来调整得到最佳滤波器系数。并且,本文基于MATLAB的图形化语音去噪仿真系统。本文具体的研究内容如下:

(1)首先介绍了语音信号去噪的基本理论,并对常见的去噪算法进行了介绍,如傅里叶算法、短时傅里叶算法、小波算法。

(2)深入分析了自适应滤波的基本理论,并重点研究了LMS自适应滤波的语音信号去噪模型。

(3)设计了一个基于MATLAB的图形化语音去噪仿真系统,支持IIR、FIR、LMS自适应滤波等多种语音去噪算法。通过对比各类语音去噪算法的实验结果,本文发现LMS自适应滤波算法具有最好的去噪效果。

二、GUI页面

三、程序

3.1 LMS滤波程序
function [yn,W,en]=filter_LMS(xn,dn,M,mu)
% 输入参数:
%     xn   输入的信号序列      (列向量)
%     dn   所期望的响应序列    (列向量)
%     M    滤波器的阶数        (标量)
%     mu   收敛因子(步长)      (标量)     要求大于0,小于xn的相关矩阵最大特征值的倒数    
%     itr  迭代次数            (标量)     默认为xn的长度,M<itr<length(xn)
% 输出参数:
%     W    滤波器的权值矩阵     (矩阵)
%          大小为M x itr,
%     en   误差序列(itr x 1)    (列向量)  
%     yn   实际输出序列             (列向量)itr = length(xn);
en = zeros(itr,1);             % 误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差
W  = zeros(M,itr);             % 每一行代表一个加权参量,每一列代表-次迭代,初始为0
% 迭代计算
for k = M:itr                  % 第k次迭代x = xn(k:-1:k-M+1);        % 滤波器M个抽头的输入y = W(:,k-1).' * x;        % 滤波器的输出en(k) = dn(k) - y ;        % 第k次迭代的误差% 滤波器权值计算的迭代式W(:,k) = W(:,k-1) + 2*mu*en(k)*x;
end
% 求最优时滤波器的输出序列
yn = inf * ones(size(xn));
for k = M:length(xn)x = xn(k:-1:k-M+1);yn(k) = W(:,end).'* x;
end
3.2 GUI程序
function pushbutton1_Callback(hObject,eventdata,handles)
[y,fs]=audioread('su.wav');
sound(y,fs);
n = length(y);
t = (0:n-1)/fs;
Y=fft(y,n);
subplot(2,2,2);plot(t,y);title('原始信号波形');
xlabel('时间/s');ylabel('幅值');
subplot(2,2,4);plot(abs(Y));title('原始信号频谱');
xlabel('采样点');ylabel('幅值');
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)等等,篇幅所限

四、附录

写作不易,感谢点赞,完整程序可留言。

代做领域包括:开关电源、最大功率点跟踪(恒电压法、电导增量法、爬山法、智能算法等)、并网逆变器控制、多目标优化算法(灰狼算法、粒子群、麻雀、哈里斯鹰、布谷鸟等等)、图像处理算法(MATLAB GUI等)、嵌入式、配电网无功优化(IEEE33、21、44节点等)等。

需要的同学私聊我~

相关文章:

  • Stable Diffusion 模型下载:RealCartoon-Realistic - V13
  • spring boot(2.4.x之前版本)和spring cloud项目中配置文件的作用
  • 【证书管理】实验报告
  • 数据结构第十五天(树的存储/孩子表示法)
  • C语言中在main函数之后运行的函数
  • Acwing 5468. 最有价值字符串【挖掘性质+分类讨论】
  • CVE-2018-19518 漏洞复现
  • 搜索二维矩阵[中等]
  • 【Linux】Linux下的基本指令
  • Android AOSP源码研究之万事开头难----经验教训记录
  • C++学习Day03之new和delete使用
  • 如何实现视线(目光)的检测与实时跟踪
  • JavaGuide
  • Huggingface上传模型
  • C# CAD交互界面-自定义面板集-添加快捷命令(五)
  • 《深入 React 技术栈》
  • 77. Combinations
  • es的写入过程
  • express如何解决request entity too large问题
  • golang 发送GET和POST示例
  • HashMap剖析之内部结构
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • MySQL用户中的%到底包不包括localhost?
  • RxJS: 简单入门
  • Web设计流程优化:网页效果图设计新思路
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 反思总结然后整装待发
  • 搞机器学习要哪些技能
  • 关于字符编码你应该知道的事情
  • 简单实现一个textarea自适应高度
  • 将回调地狱按在地上摩擦的Promise
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前嗅ForeSpider教程:创建模板
  • 区块链分支循环
  • 设计模式 开闭原则
  • ​ArcGIS Pro 如何批量删除字段
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #define 用法
  • #图像处理
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (10)STL算法之搜索(二) 二分查找
  • (BFS)hdoj2377-Bus Pass
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (转)平衡树
  • (转)人的集合论——移山之道
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET 常见的偏门问题
  • .NET与 java通用的3DES加密解密方法
  • @NestedConfigurationProperty 注解用法
  • [04] Android逐帧动画(一)
  • [17]JAVAEE-HTTP协议
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步