基于RLS算法的多麦克风降噪MATLAB实现课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
题目基于RLS 算法的多麦克风降噪学院信息工程学院
专业
班级
姓名
指导教师
《信息处理课群综合训练与设计》任务书题目: 基于RLS 算法的多麦克风降噪
初始条件:
Matlab软件、信号与系统、通信处理等
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰
写等具体要求)
设计任务:
给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。
设计的要求:
(1)阅读参考资料和文献,明晰算法的计算过程,理解RLS算法基本过程;(2)主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;
(3)根据算法编写相应的MATLAB程序;
(4)算法仿真收敛以后,得到增强的语音信号;
(5)用matlab指令回放增强后的语音信号;
(6)分别对增强前后的语音信号作频谱分析。
时间安排:
1、理论讲解,老师布置课程设计题目,学生根据选题开始查找资料;
2、课程设计时间为2周。
(1)理解相关技术原理,确定技术方案,时间2天;
(2)选择仿真工具,进行仿真设计与分析,时间6天;
(3)总结结果,完成课程设计报告,时间2天。
指导教师签名:年月日
系主任(或责任教师)签名:年月日
目录
摘要 (I)
Abstract (II)
1 绪论 (1)
2 自适应信号处理基本原理 (2)
2.1自适应滤波器组成 (2)
2.2自适应干扰抵消原理 (2)
2.3自适应滤波原理 (3)
2.3 RLS算法基本原理 (4)
3 RLS算法方案设计 (6)
3.1最小二乘算法RLS算法实现 (6)
3.2 RLS算法程序程序设计 (8)
4 RLS算法自适应滤波方案实现与仿真 (10)
4.1信号的获取 (10)
4.2读取语音文件 (10)
4.3算法实现 (10)
4.4提取语音信号 (11)
4.5仿真结果分析 (13)
4.5.1增强前后语音信号波形分析 (13)
4.5.2增强前后语音信号频谱分析 (14)
5总结 (16)
6参考文献 (17)
附录 (18)
摘要
本次课程设计要求使用具有强大运算能力的MATLAB软件,运用自适应滤波中的RLS算法实现麦克风降噪。
旨在培养我们使用计算机处理庞大的数据的能力和熟悉MATLAB在信息技术中的应用。
在了解RLS算法的原理后,我选择了一段音频文件,并利用它产生随机噪声,将噪声和源文件叠加作为受噪声污染的语音信号,而随机噪声则作为参考麦克风语音信号,通过MATLAB编程实现语音增强的目标,利用RLS算法对语音信号进行降噪,得到清晰的语音信号。
经调试编译,得到降噪后的语音信号以及增强前后语音信号波形及频谱,最终成功实现基于RLS的语音降噪。
关键词:MATLAB,自适应滤波,RLS算法,麦克风降噪
Abstract
This course design is to use the powerful computing power of MATLAB software, the use of the RLS adaptive filtering algorithm microphone noise reduction. Aims to develop the way we use computers to handle large data, familiarity with MATLAB count information.
Having understood the principle of RLS algorithm, an audio file was selected to generate the random noise. Then add the noise to the source as the phonetic, which was polluted by noise.The random noise was used to be reference microphone signal. By using MATLAB programming, The goal to enhance speech was achieved. Noise reduction of speech signals based on the RLS algorithm, and we get clear speech signal.
After debugging the compiler, we get the speech signal after denoising and speech signal waveform and spectrum before and after speech enhancement. Finally the speech denoising based on RLS was finished successfully.
Keywords:MATLAB, adaptive filter, RLS algorithm, microphone noise reduction
1 绪论
自适应噪声滤波是指从信号被噪声干扰所淹没的环境中检测和提取有用信号,而自适应抵消是以噪声干扰为处理对象,将它们抑制掉或进行非常大的衰减,以提高信号传递和接收的信噪比质量。
自适应滤波处理技术可以用来检测平稳的和非平稳的随机信号。
自适应数字系统具有很强的自学习、自跟踪能力和算法的简单易实现性,它在噪声信号的检测增强,噪声干扰的抵消,波形编码的线性预测,雷达声纳系统的阵列处理和波束形成,通信系统的自适应分割,以及未知系统的自适应参数辨识等方面获得了广泛的应用。
例如,在工业生产过程中,由于生产环境的影响,许多静电或电磁场会对控制器输入给定信号造成干扰,产生信号噪声,导致操作精度下降甚至输入错误信号,加快执行机构的磨损,严重时造成生产事故,后果不堪设想,这就需要设计一个自适应信号处理系统来过滤噪声干扰。
再如水下侦察系统中发射器与接收器靠得很近,但为了探测水下远程潜艇等目标,发射信号的功率很强,就会串扰到接收器中,因此所接收的远程目标的反射波就淹没在串扰信号中,大大妨碍了对目标定位距离的测量,这时也必须采用干扰抵消措施。
所以,自适应噪声干扰抵消技术有着重要的应用。
通过本次课程设计,我们可以加强对信号处理的理解,学会查寻资料﹑方案比较,以及设计算法等。
灵活运用所学信号与系统、数字信号处理等信息处理知识,分析和解决工程技术问题,将理论知识与应用实际结合起来。
本次课程设计的题目为基于RLS的多麦克风语音降噪,主要是对给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。
2 自适应信号处理基本原理
2.1自适应滤波器组成
自适应滤波器通常由两部分组成,其一是滤波子系统,根据它所要处理的功
能而往往有不同的结构形式。
另一是自适应算法部分,用来调整滤波子系统结构
的参数,或滤波系数。
在自适应调整滤波系数的过程中,有不同的准则和算法。
算法是指调节自适应滤波系数的步骤,以达到在所描述准则下的误差最小化。
自
适应滤波器含有两个过程,即自适应过程与滤波过程。
前一过程的基本目标是调
节滤波系数θ(k),使有意义的目标函数或代价函数F(·)最小化,滤波器输出信号
y(n)逐步逼近所期望的参考信号d(n),由两者之间的估计误差e(n)驱动某种算法
对滤波(权)系数进行调整,使滤波器处于最佳工作状态以实现滤波过程。
但是,
由于目标函数F(·)是输入信号x(k)、参考信号d(k)及输出信号y(k)的函数,即
F(·)=F[x(k),d(k),y(k)],因此目标函数必须具有以下两个性质:
(1)非负性
()()()[]()()()k d k x k y k y k d k x F ,,,
0,,∀≥
(2)最佳性 ()()()[]()()时当k d k y k y k d k x F ==,0,,
2.2自适应干扰抵消原理
图2-1自适应干扰抵消原理图
自适应滤波器在实际应用中,由于没有充足的信息来设计固定系数的数字滤
波器,或者设计规则会在滤波器正常运行时改变,因此我们需要研究自适应滤波
器。
凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号
时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常
方法设计的固定滤波器。
此外,自适应滤波器还能提供非自适应方法所不可能提
供的新的信号处理能力。
自适应噪声抵消技术是自适应信号处理的一个应用分支,其主要理论和框架
在1975年提出,经过三十多年的丰富和扩充,现在已经应用到了很多领域,比
如车载免提通话设备,房间或无线通讯中的回声抵消在母体上检测胎儿心音,机
载电子干扰机收发隔离等,都是用自适应干扰抵消的办法消除混入接收信号中的
其他声音信号。
如图所示的是自适应干扰抵消器的基本结构,它有着很广泛的应
用。
期望响应)(n d 是信号和噪声之和,即)()()(n N n x n d +=,自适应处理器的输
入是与)(n N 相关的另一个噪声)(n N '。
当)(n x 与)(n N 不相关时,自适应处理器
将调整自己的参数,以力图使()y n 成为()N n 的最佳估计()N n ∧。
这样,()e n 将逼
近信号()x n ,且其均方值2()E e n ⎡⎤⎣⎦为最小。
噪声()N n 就得到了一定程度的抵消。
2.3自适应滤波原理
图2-2 自适应滤波原理图 自适应滤波器由递归计算最小二乘估计(RLS)应用自适应权值控制机制来进
行(图3-2)。
自适应滤波机制在估计滤波器的权重或者系数时,需要将输入信号
转换成所需的信号,通过滤波器的信号输入端口进行连接。
该输入信号可以是基
于采样的标量或一个单位信道的基于帧的信号。
将所需端口的信号必须具有相同
的数据类型、帧状态、复杂性,才能作为所需的信号作为输入信号,输出端口输
出滤波后的输入信号,它可以是基于样品或帧输入信号。
使用递归最小二乘(RLS )
算法,从输入信号中减去噪声得到输出信号。
RLS 自适应线性自适应滤波器使用
的输入端口上的参考信号与输出的期望信号端口自动匹配,滤波过程在噪声滤波
器内进行去噪。
由于通过滤滤器的输入信号进行收敛,过滤的噪声应完全从“信
号加噪声”的信号中减去,继而使得输出信号应该只包含原始信号。
这样完成一
次去噪滤波,可以减少噪声对信道的影响,更有利于进行信道估计。
通过上面的
分析讨论,将带有噪声的原始信号输入到系统中,通过将线性自适应滤波器与
RLS 算法相结合进行信道估计,来改进RLS 估计算法,减小噪声对信道的影响,
这样就能有效的较少信道干扰和载波间干扰,从而优化信道的估计算法。
2.3 RLS 算法基本原理
所谓自适应实现是指利用前一时刻获得的滤波器参数,根据估计误差自动调
节现时刻的参数,使得某个代价函数达到最小,从而实现最优滤波。
22(){|()|}{|()()|}H J n E n E d n w u n ε==- (公式1) 下降算法:最广泛使用的自适应算法包括自适应梯度算法(LMS)、自适应高
斯-牛顿算法(RLS)。
RLS 算法:(Recursive Least-Squares ),递归最小二乘算法。
它是利用在已知
n-1时滤波器抽头权系数的情况下,通过简单的更新,求出n 时刻的滤波器抽头
权系数。
代价函数:使用指数加权的误差平方和
2()|()|n i J n i λε-=∑ (公式2)
(0<λ<1,称为遗忘因子)引入遗忘因子作用是离n 时刻近的误差附较大权重,
离n 时刻远的误差赋较小权重,确保在过去某一段时间的观测数据被“遗忘”,从
而使滤波器可以工作在非平稳状态下。
估计误差定义:
i ()y()d i i ε=-() (公式3)
i ()(n)()H d i w u i ε=-() (公式4)
可取滤波器的实际输入d*(i)作为期望响应d(i)。
将误差代入代价函数得到加
权误差平方和的完整表达式:
20(n)|()()*()|n
n i H i J d i w n u i λ-==∑- (公式5) 抽头权向量取的是n 时刻的w(n)而不是i 时刻的w(i)。
i<=n 时刻,
2200(n)()|()()()|n n
n i n i H i i J e i d i w i u i λλ--===∑=∑- (公式6)
2
200(n)()|()()()|n n n i n i H i i J i d i w n u i λελ--===∑=∑- (公式7) 故代价函数(n)J 比(n)J 更合理。
为了使代价函数取得最小值,可通过对权向量求导: ()0J n w
∂=∂ (公式8) 解得 1()()()()(n)()R n w n r n w n R r n -=⇒=
其中 n 0
()()()n i H i R n u i u i λ-==∑ (公式9) *0
()()()n n i i r n u i d i λ-==∑ (公式10) 由此可见指数加权最小二乘法的解转化为Wiener 滤波器的形式:1r opt w R -= 下面研究它的自适应更新过程:
由公式9可得
n 0()()()n i H
i R n u i u i λ-==∑n-1
-10()()u ()()n i H H i u i u i n u n λλ-==∑+(n-1)(n)u()H R u n λ=+ 令(n)A R =、1(1)B R n λ-=-、()C u n =、1D =
原式可化为 11H A B CD C --=+
由矩阵求逆引理得 11()H H A B BC D C BC C B --=-+
211111
11(1)()()(1)()(1)1()(n 1)()H H R n u n u n R n R n R n u n R u n λλλ----------=--+- 令1()(n)P n R -=,则1()[(n 1)()(n)(1)]H P n P k n u P n λ-=---,其中k(n)为增益向量。
(n 1)()()(n)(n-1)()
H P u n k n u P u n λ-=+ (公式11) 1()()[(n-1)()()()(n-1)u()]H P n u n P u n k n u n P n λ-=-()k n =
又由11***()()r()P()r()
(1)(1)()[(1)()
()()(1)()]()()(1)(1)(1)()()()()(1)
()w(n-1)k(n)e (n)
H H H w n R n n n n P n r n d n P n u n k n u n P n u n k n u n P n r n w n d n k n k n u n w n w n λ--===--+------=-+--=+化简得:
式中
()()(1)()H e n d n w n u n =--
3 RLS算法方案设计
3.1最小二乘算法RLS算法实现
图3-1自适应横向滤波器结构框图
自适应横向滤波器有两路输入,一为输入信号{x(n)},含有样本{x(1),x(2),……x(N)};另一为期望信号序列为{d(n)},含有样本{d(1),d(2),……d(N)}如图2所示。
滤波器滤波系数是对延迟线抽头信号加权的系数{w1(n),w2(n),w3(n),…Wm (n)},实质上,这也是滤波器的冲激响应序列。
这里滤波器长度M 必须低于或等于信号数据长度n。
滤波器输出信号y(n)等于输入信号x(n)与冲激响应序列Wi (n)的卷积和,如式①。
)
(
)
(
)1
(
)
(
)
(
1
n
x
n
w
i
n
x
n
w
n
y T
M
i
i
=
+
-
=∑
=
①误差信号为)
(
)
(
)
(n
y
n
d
n
e-
=,由此得到自适应横向滤波器按最小平方准则设计的代价函数:
[]
∑
∑
=
=
-
=
=
N
i
N
i
i
y
i
d
i
e
n
J
1
2
1
2)(
)(
)(
)
(②将①代入式②中,展开得:
)1
(
)1
(
)
(
)
(
)1
(
)(
)
(
2
)(
)
(
1
1
1
11
1
2
+
-
+
-
+
⎥
⎦
⎤
⎢
⎣
⎡
+
-
-
=
∑
∑
∑
∑∑
∑
=
=
=
==
=
m
i x
k
i x
n
w
n
w
k
i x
i
d
n
w
i
d
n
J
N
i
M
m
m
k
M
k
M
m
N
i
k
N
n
式中,M≤N 。
简短的表示滤波器的代价函数,将上式有关项定义为以下参数:
(1)确定性相关函数表示输入信号在抽头k 与抽头m 之间两信号的相关性, .1,,1,0,;
)()(),,(1-=--=Φ∑=M m k m i x k i x m k N N
i
(2)确定性互相关函数表示期望响应与在抽头k 输入型号之间的互相关性: ∑=-=-=N
i M k k i x i d k N 1.1,,1,0);
()(),( θ
(3)期望响应序列的能量为: ∑==N
i d i d n E 12)()(
将上述定义的三个参数代入式③中,得:
∑∑∑===--Φ+--=M
k M
k M
m m k k d m k N n w n w k N n w n E n J 1
11
)1,1;()()()1;()(2)()(θ ④
为了估算滤波器的最佳滤波系数,把式④对滤波系数(权系数))(n w k 微分一次,并令其导数等于0:
.,,2,1;
0)1,1;()(2)1;(2)()
(1
M k m k N n w k N n w n J M
m m k ==--+--=∂∂∑-φθ ⑤
得:
.,,2,1;)1;()1,1;()(1
M k k N m k N n w
M
m m
=-=--∑=θφ ⑥
这是最小二乘法自适应滤波的正则方程。
RLS 递推计算公式为:
)()()1(ˆ)]1(ˆ)()()[()1(ˆ)(ˆn n K n w n w n x n d n K n w n w
T η+-=--+-= 式中)(n K 为增益矢量,它等于相关矩阵)(n Φ的逆矩阵与延迟线抽头输入阵
)(n X 的乘积。
)(n η是真正的估计误差,它等于:
)1(ˆ)()()(--=n w
n x n d n T η 自适应递归最小二乘算法的信号流程图如图3:
图3-2 RLS算法信号流程图
RLS算法的计算步序如图4:
图3-3 RLS算法步序
3.2 RLS算法程序程序设计
在理解RLS算法的基本原理后,我决定自行编写RLS算法程序块,RLS算法可以理解为将输出反馈给滤波器来调整相关参数,达到校正误差的目的。
算法实现模块代码如下所示:
Worder=32; %滤波器阶数
lambda=1 ; % 设置遗忘因子
Delta=0.001 ;
p=(1/Delta) * eye ( Worder,Worder ) ;
w=zeros(Worder,1);
output=primary; %主语音输出
loopsize=max(size(primary));
for i=1+Worder:loopsize %写RLS算法公式
z=primary(i)-w'*(fref(i-Worder+1:i))'; n2=fref(i-Worder+1:i)';
k=(1/lambda)*p*n2;
K=k/(1+n2'*k);
w = w + K*z;
p0=K*n2';
p= (p-p0*p)/lambda;
output(i-Worder)=z;
disp(i);
end;
4 RLS算法自适应滤波方案实现与仿真
4.1信号的获取
本次课程设计对我们自行处理和灵活运用的能力提出了很高的要求。
首先,老师没有给我们提供设计中所需要用到的语音信号;其次,怎样录制噪声和被噪声污染的语音信号也是一个很现实的问题。
最开始我选择自己录制语音信号以及噪音信号,我打算选用的噪声信号是风扇转动时所发出的声音信号,而语音信号怎是自己用windows自带的录音设备录下的声音信号。
由于这些信号特别容易受到外界环境的影响,最后可能影响主语音信号的去噪提取,最后在老师的指导下,我决定使用电脑自带的一段.wav格式的音乐作为主语音,然后用randn(length(source),1)函数将其打乱作为噪声,记做RLSrefns.wav。
将这两段语音信号叠加并保存下来记做RLSprimsp.wav。
4.2读取语音文件
主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,都是.wav格式,用waveread指令读取音频信号;
指令写为如下:
primary = wavread('RLSprimsp.wav');
primary = primary';
ref = wavread('RLSrefns.wav');
fref = fref';
4.3算法实现
RLS算法的收敛特性较LMS算法优越,但相应的复杂度也要高许多,考虑到收敛时间的影响,从起始时间到收敛时间经滤波器处理得到到输出误差依然很大,故直接将前32项去掉,先通过两输入作差得到预期值,再将所有预期值与对应时刻的实际输出值作差求平方,将这些平方值相加可以得到一个变量为W 的函数,取W是函数的值最小。
另外,显然距离n最近的量与Y(n)最接近,引入遗忘因子使得从n-1到0,相关程度逐渐减小。
最后求得相关偏差,反馈给滤波器以矫正输出,达到减小误差的目的。
% 初始化
Worder=32; %滤波器阶数
Delta=0.001 ;
p=(1/Delta) * eye ( Worder,Worder ) ;
w=zeros(Worder,1);
output=primary; %主语音输出
loopsize=max(size(primary));
for i=1+Worder:loopsize %写RLS算法公式
z=primary(i)-w'*(fref(i-Worder+1:i))';
n2=fref(i-Worder+1:i)';
k=p*n2;
K=k/(1+n2'*k);
w = w + K*z;
p0=K*n2';
p = (p-p0*p);
output(i-Worder)=z;
disp(i);
end;
4.4提取语音信号
用MATLAB中的wavread指令分别读取被噪声污染后的语音文件RLSprimsp.wav和噪声文件RLSrefns.wav后,进行RLS算法处理,滤除噪声后,得到语音文件,先由plot指令绘出语音文件波形,再用Y=fft()函数求出频谱,由plot指令绘出语音文件频谱图,然后通过MATLAB中的sound命令播放语音文件。
代码如下所示:
figure; %作图
subplot(2,3,1);
plot(primary); %画出麦克风主语音波形
title('primary input');
[y1,Fs1,bits1]=wavread('RLSprimsp.wav');
Y1=fft(y1,4096);
subplot(2,3,4);
plot(abs(Y1)); %画出麦克风主语音频谱
title(‘麦克风主语音输入频谱’);
subplot(2,3,2);
plot(fref); %画出噪声语音波形
title('fref noise');
[y2,Fs2,bits2]=wavread('RLSrefns.wav');
Y2=fft(y2,4096);
subplot(2,3,5);
plot(abs(Y2)); %画出噪声语音频谱
title('噪声输入频谱');
subplot(2,3,3);
plot(output); %画降噪后的语音波形
title('output');
wavwrite(output,fs,'asd') %生成降噪后的语音
[y,Fs3,bits3]=wavread('asd.wav');
Y=fft(y,4096);
subplot(2,3,6);
plot(abs(Y)); %画出降噪后语音频谱
title('降噪后语音输出频谱');
f=1;
while f==1
flag=input('请选择输出语音;1:原式语音2:加噪主语音3:噪声语音4:降噪后语音(1?2?3?4)' );
switch flag
case 1
sound(source,fs,bits);
case 2
sound(y1,Fs1,bits1);
case 3
sound(y2,Fs2,bits2);
case 4
sound(output,Fs3,bits3);
end
f=input('是否重新选择?是输入1 否输入0');
end
4.5仿真结果分析
4.5.1增强前后语音信号波形分析
(1)麦克风主语音信号波形图
图4-1麦克风主语音波形图(2)噪声信号波形
图4-2噪声波形图
(3)增强的语音信号波形
图4-3增强的语音信号波形图
由于噪声信号波形的幅值相对主语音信号幅值较小,因此语音信号增强前后的波形差异并不十分明显,但通过对比可以看出增强后的语音信号波形刚好滤除了噪声波形,得到的波形图也更清晰。
4.5.2增强前后语音信号频谱分析
为了更好地分析语音信号增强的效果,我调用MATLAB中的指令fft()将时域信号经快速傅里叶变换得到对应频域信号,然后通过plot命令画出频谱图像。
(1)麦克风主语音信号输入频谱
图4-4 麦克风主语音输入频谱
(2)麦克风噪声语音输入频谱
图4-5 麦克风噪声语音输入频谱
(3)降噪后语音输出频谱
图4-6 降噪后语音输出频谱
频谱分析:观察降噪前后语音的频谱图以及噪声语音频谱可得,降噪后频谱的中心频率不变,由于噪声信号的滤除,频谱图变得更加清晰,说明经过RLS 降噪后,主语音信号得到增强。
5总结
在课程设计的过程中,通过查阅我明白了基于RLS多麦克风语音信号降噪的过程以及RLS的原理及实现方法,通过MATLAB编程及仿真,实现了语音信号的降噪,并且从不清楚的语音信号中通过RLS降噪得到了清晰的语音信号,充分体会了基于RLS多麦克风语音信号降噪这一技术的作用。
同时,也学会了对语音信号进行频谱分析,以及进一步熟悉了MATLAB的使用过程,加深了对这一软件的了解,提高了自己动手的能力。
之前在一些专业课程的实验课中我已经对MATLAB软件编程有了一定的了解,也编写过一些简单的程序,所以我理所当然地认为这次课程设计应该很轻松,等到我开始动手做的时候才发现我对它的了解还仅限于皮毛,对它的很多功能以及函数还不是很了解,所以在设计一开始就遇到很大的问题。
后来我静下心来,从最开始的原理开始学习,由于对于理论知识学习不够扎实,便重拾教材与实验手册,对知识系统而全面进行了梳理,找到设计方向,参考课程上的代码,最后在同学的帮助下完成了程序的编写。
这个过程也让我明白了学无止尽的道理,而且理论只有与实际联系起来才能更好地去学习与理解。
当然,经过此次RLS算法多麦克风语音降噪课程设计,我也发现了自己的很多不足,专业知识和专业技能不够扎实,一开始我是想用MATLAB自带的库函数进行算法设计,但是在调试过程中遇到问题,向同学请教无果后只好放弃,但是这个过程中我收获很多,通过自己亲身实践,进行程序设计,既增加了知识,又让我专业知识以及专业技能上有一定的提升,今后我会更加努力认真学习,把我每个学习机会来充实自己。
6参考文献
[1]陈怀琛.《MATLAB及在电子信息课程中的应用》. 西安电子科技大学出版社,
2000
[2]胡广书.《数字信号处理—理论、算法与实现》. 清华大学出版社,2003
[3]何振亚.《自适应信号处理》.科学出版社,2002
[4]安颖、侯国强.《自适应滤波算法研究与DSP实现》.现代电子技术出版社,2007
[5]王洪元主编.《MATLAB语言以及在电子信息工程中的应用》.清华大学出版社,
2004
[6] 郑宝玉.自适应滤波器原理[M].北京:电子工业出版社,2006
附录
[source,fs,bits]=wavread('guanji.wav');
noise=0.01*randn(length(source),1);
source=source(:,1);
source1=source+noise;
wavwrite(noise,fs,'RLSrefns'); %输出模拟噪声信号
wavwrite(source1,fs,'RLSprimsp'); %输出模拟主语音信号primary = wavread('RLSprimsp.wav'); %读入麦克风语音信号primary = primary';
fref = wavread('RLSrefns.wav');
fref = fref';
Worder=32; %滤波器阶数
Delta=0.001 ;
p=(1/Delta) * eye ( Worder,Worder ) ;
w=zeros(Worder,1);
output=primary; %主语音输出
loopsize=max(size(primary));
for i=1+Worder:loopsize %写RLS算法公式z=primary(i)-w'*(fref(i-Worder+1:i))';
n2=fref(i-Worder+1:i)';
k=p*n2;
K=k/(1+n2'*k);
w = w + K*z;
p0=K*n2';
p = (p-p0*p);
output(i-Worder)=z;
disp(i);
end;
figure; %作图
subplot(2,3,1);
plot(primary); %画出麦克风主语音波形title('primary input');
[y1,Fs1,bits1]=wavread('RLSprimsp.wav');
Y1=fft(y1,4096);
subplot(2,3,4);
plot(abs(Y1)); %画出麦克风主语音频谱
title(‘麦克风主语音输入频谱’);
subplot(2,3,2);
plot(fref); %画出噪声语音波形
title('fref noise');
[y2,Fs2,bits2]=wavread('RLSrefns.wav');
Y2=fft(y2,4096);
subplot(2,3,5); plot(abs(Y2)); %画出噪声语音频谱
title('噪声输入频谱');
subplot(2,3,3);
plot(output); %画降噪后的语音波形
title('output');
wavwrite(output,fs,'asd') %生成降噪后的语音
[y,Fs3,bits3]=wavread('asd.wav');
Y=fft(y,4096);
subplot(2,3,6);
plot(abs(Y)); %画出降噪后语音频谱
title('降噪后语音输出频谱');
f=1;
while f==1
flag=input('请选择输出语音;1:原式语音2:加噪主语音3:噪声语音4:降噪后语音(1?2?3?4)');
switch flag
case 1
sound(source,fs,bits);
case 2
sound(y1,Fs1,bits1);
case 3
sound(y2,Fs2,bits2);
case 4
sound(output,Fs3,bits3);
end
f=input('是否重新选择?是输入1 否输入0');
end
本科生综合训练成绩评定表
指导教师签字:
年月日
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:
指导教师签名:日期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日
导师签名:日期:年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它。