资源简介
基于NLMS和LMS算法,用matlab实现了 对语音信号中的回声进行消除,完成了课程设计,其中NLMS的效果要优于LMS的效果.
代码片段和文件信息
clear all
close all
clc
hold off
sysorder=50; %抽头数
[inpsr]=audioread(‘recordlms_new.wav‘); %输入
inp=inp(:);
inp(225718:) = 0;
[dsr] = audioread(‘record01.wav‘);
d=d(:);
d(225718:) = 0;
totallength=size(d1); %步长
N=length(inp);
%k=0:1382493;
k=0:225717;
%算法开始
w=zeros(sysorder1); %初始化
w1=zeros(sysorder1); %初始化
error=zeros(N1); %初始化
EE=zeros(N1);
Loop=15000;
for n=sysorder:N
u=inp(n:-1:n-sysorder+1); %u的矩阵
%u=inp(n-sysorder+1:n);
%NLMS算法
y(n)=w‘*u; %系统输出
r(n)=u‘*u; %自相关矩阵
e(n)=d(n)-y(n); %误差
srr(n)=10*log10(d(n)/(inp(n)-d(n)));
srr1(n)=10*log10(d(n)/(y(n)-d(n)));
%e(n)=inp(n)-y(n); %误差
fai=1e-10; %修正参数,防止r(n)过小导致步长值太大
if n<2000
mu=0.32;
else
mu=0.15;
end
w=0.8*w+mu*u*e(n)/(r(n)+fai); %NLMS迭代方程
error(n)=error(n)+e(n)^2;
%LMS算法
y1(n)=w1‘*u;
e1(n)=d(n)-y1(n);
w1=0.8*w1+0.1*u*e1(n
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论