资源简介
对语音信号添加高斯白噪声,分别采用维纳、卡尔曼、谱减法、自适应滤波算法,进行去噪处理,文件中含有语音文件
代码片段和文件信息
clear
close all
clc
a1=-1.6;
a2=0.8;
[xfs1]=audioread(‘handel.wav‘);
[dnfs2]=audioread(‘handel_echo.wav‘);
figure;
subplot(211);
plot(x);
title(‘spk参考信号‘);
subplot(212);
plot(dn);
title(‘MICin-期望信号‘);
n=max(size(x)); % 信号中的时间点个数
P=5; % LMS算法重复运算5次,用于评估五次运算产生的误差的平均水平
e=zeros(1n); % 用于存放误差
ep=zeros(1n); % 用于存放五次运算累积的误差
ee=zeros(1n); % 用于存放平方差
%算法
h=waitbar(0‘计算进度‘);
steps = P;
for p=1:P
L=100; % 滤波器阶数,考虑到两个信号之间没有延时,且这里只是用来分离出输入的x信号,而且误差不做要求,因此不需要设置太高的阶数
u=0.0022; % 增益常数
wL=zeros(Ln); % 产生一个权向量矩阵
for i=(L+1):n % 计算权向量矩阵中第三组权向量到最后一组权向量相关的变量,根据x和e=x-y求下一个y没有d(n)
X=x(i-L:1:(i-1)); % 更新滤波器的参考矢量X(n)
y(i)=X‘*wL(:i); % 根据x计算i时刻输出信号
e(i)=dn(i)-y(i); % 计算i时刻误差信号
wL(:(i+1))=wL(:i)+2*u*e(i)*X; % 更新i时刻滤波器的权向量
ee(i)=e(i)^2; % 更新平方差
end
ep=ep+ee; % 平方差累积
waitbar(p/steps);
end
close(h);
eq=ep/P; % 五十次重复计算平方差求均值
a1L=-wL(21:n); % a1在LMS算法下值的变化,wL矩阵中第一行的1到n个数,权向量矩阵第一行
a2L=-wL(11:n); % a2在LMS算法下值的变化 ,wL矩阵中第二行的1到n个数,权向量矩阵第二行
%画图
figure;
subplot(321);
plot(x);
title(‘需要采集的声音Voice‘); % 根据w产生的随机信号x
subplot(322);
plot(dn);
title(‘被回声污染的了Voice,就是MICin‘); % 五十次运算误差求均值
subplot(323);
plot(y);
title(‘合成回声信号‘); % 根据w产生的随机信号x
subplot(324);
plot(e);
title(‘误差‘); % 五十次运算误差求均值
subplot(325);
plot(a1L‘r-‘); % 权向量矩阵第一行
hold on;
plot(a2L‘k-‘); % 权向量矩阵第二行
title(‘权向量参数的学习过程‘);
legend(‘a1L‘‘a2L‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-21 13:27 demo4\
文件 1862 2018-12-21 12:53 demo4\AdaFilter.m
文件 427 2018-12-21 13:28 demo4\AdaFilter2.m
文件 325 2018-05-13 22:22 demo4\add_noise.m
文件 146270 2018-12-21 12:01 demo4\handel.wav
文件 146270 2018-12-21 12:01 demo4\handel_echo.wav
文件 2491 2018-12-21 11:53 demo4\kalman.m
文件 729 2018-05-13 20:52 demo4\Kfr
文件 45100 2018-12-21 13:26 demo4\signalnoisy.wav
文件 107294 2000-03-28 23:16 demo4\six.wav
文件 253 2018-12-21 11:22 demo4\SNR_singlech.m
文件 45102 2005-07-12 08:58 demo4\sp01.wav
文件 1978 2018-05-13 22:22 demo4\spectruesub.m
文件 2849 2018-12-21 11:28 demo4\SpeechEnhancement.asv
文件 2706 2018-12-21 11:53 demo4\SpeechEnhancement.m
文件 1002 2018-05-13 22:23 demo4\stationary_noise_evaluate.m
文件 1874 2018-05-13 22:23 demo4\wienerfilter.m
相关资源
- 卡尔曼、粒子滤波工具箱
- 开源飞控卡尔曼EKF3笔记干货
- Kalman 滤波经典论文
- 基于FPGA实现的自适应卡尔曼滤波器的
- 谱减法代码
- kalman filtering in R(R语言实现卡尔曼滤
- Boll的语音增强的经典论文-谱减法
- 自平衡小车arduino+mpu6050+卡尔曼滤波
- mpu6050卡尔曼滤波器程序
- 一种强跟踪扩展卡尔曼滤波器的改进
- 运动模糊图像复原毕业论文
- 基于FPGA的卡尔曼滤波
- 维纳滤波算法c代码
- 无迹卡尔曼滤波UKF
- 基于方向和距离的扩展卡尔曼状态估
- 机动目标跟踪的自适应卡尔曼滤波算
- 卡尔曼滤波源代码.rar
- 基于卡尔曼滤波的定位跟踪算法仿真
- 惯性导航卡尔曼滤波仿真
- 双卡尔曼SOC估计
- 扩展卡尔曼滤波器(EKF):一个面向
- 卡尔曼模板跟踪
- 基于扩展卡尔曼滤波器的永磁同步电
- 基于扩展卡尔曼神经网络算法估计电
- 卡尔曼滤波labview程序.vi
- 扩展卡尔曼滤波(EKF)仿真演示
- 卡尔曼滤波算法流程
- 强跟踪滤波程序强跟踪UKF滤波主程序
- 数字式自适应均衡器基于卡尔曼算法
- 抗差卡尔曼滤波
评论
共有 条评论