当前位置:文档之家› matlab音频降噪课程设计报告.doc

matlab音频降噪课程设计报告.doc

燕山大学医学软件课程设计说明书题目:基于MATLAB巴特沃斯滤波器的音频去噪的GUI设计学院(系):电气工程学院年级专业: 13级生物医学工程 2 班学号: 130103040041学生姓名:魏鑫指导教师:许全盛目录一、设计目的意义 (1)1.1绪论 (1)1.2设计目的 (1)1.3意义 (1)二、设计内容 (2)2.1 设计原理 (2)2.2 设计内容 (2)三、设计过程及结果分析 (3)3.1 设计步骤 (3)3.2 MATLAB程序及结果 (3)3.3 结果分析 (8)四、总结 (9)五、参考文献 (10)一、设计目的意义1.1 绪论语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。

随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。

1.2 设计目的(1)掌握数字信号处理的基本概念,基本理论和基本方法。

(2)熟悉离散信号和系统的时域特性。

(3)掌握序列快速傅里叶变换方法。

(4)学会MATLAB的使用,掌握MATLAB的程序设计方法。

(5)掌握利用MATLAB对语音信号进行频谱分析。

(6)掌握滤波器的网络结构。

(7)掌握MATLAB设计IIR、FIR数字滤波器的方法和对信号进行滤波的方法。

1.3 意义语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。

通过语言相互传递信息是人类最重要的基本功能之一。

语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。

语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。

语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。

二、设计内容2.1 设计原理(1)截取视频片段声音作为语音信号(2)生成余弦噪声信号加到语音信号中,得到被污染的语音信号。

(3)设计巴特沃思滤波器(低通、带通、高通)对被污染的语音信号滤波,滤掉相应的噪音信号,得到符合要求的语音信号。

语音信号的频谱范围主要为700HZ左右,因此,在设计低通滤波器时,应把噪声频谱设定在5000HZ以上,这样,通过低通滤波器,即可滤除噪声信号从而还原语音信号。

2.2 设计内容设计IIR数字滤波器的基本思想设计IIR数字滤波器的方法主要有基于冲激响应不变法的IIR数字滤波器设计,基于双线性Z变换法的IIR数字滤波器设计,数字高通、带通及带阻IIR 滤波器设计,基于MATLAB函数直接设计IIR数字滤波器。

本实验中采用双线性变换法变换的巴特沃思数字滤波器2.2.1巴特沃思低通数字滤波器(1)选择准备好的声音片段作为语音信号(用如下语句调用[x,FS]=audioread('voice.wav'))。

(2)给信号加一个大频率的噪声(取噪声频率远大于语音信号的最大频率),产生污染信号。

(3)设计一个巴特沃思低通滤波器,通带范围包括语音信号,阻带频率设定为小于噪声信号频率。

(4)将设计好的巴特沃思低通滤波器滤除被噪声污染后的语音信号。

还原语音信号。

2.2.2巴特沃思高通数字滤波器(1) 选择准备好的声音片段作为语音信号(用如下语句调用[x,FS]=audioread('voice.wav'))。

(2)给信号加一个大频率的噪声(取噪声频率远大于语音信号的最大频率),产生污染信号。

(3)设计一个巴特沃思高通滤波器,通带范围包括语音信号,阻带频率设定为小于噪声信号频率。

(4)将设计好的巴特沃思低通滤波器滤除语音信号,保留噪声信号。

2.2.3巴特沃思带通数字滤波器(1) 选择准备好的声音片段作为语音信号(用如下语句调用[x,FS]=audioread('voice.wav'))。

(2)给信号加一个小频率或大频率的噪声(取噪声频率远小于语音信号的最小频率或大于语音信号的最大频率),产生污染信号。

本实验取小频率的噪声信号。

(3)设计一个巴特沃思带通滤波器,通带范围包括语音信号,阻带频率设定为不包括噪声信号频率。

(4)将设计好的巴特沃思带通滤波器滤除被噪声污染后的语音信号。

还原语音信号。

三、设计过程及结果分析3.1 设计步骤(1)语音信号的采集从视频截取一段语音片段。

然后在MATLAB软件平台下,利用函数audioread 对语音信号进行采样,记住采样频率和采样点数。

通过audioread函数的使用,要求理解采样频率、采样位数等概念。

audioread函数调用格式:x=audioread(file),读取file所规定的wav文件,返回采样值放在向量y中。

[x,FS]=audioread(file),采样值放在向量x中,FS表示采样频率(Hz)。

x=audioread(file,[N1,N2]),读取从N1点到N2点的采样值放在向量x 中。

(2)语音信号的频谱分析要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。

(3)设计数字滤波器和画出频率响应根据语音信号的特点给出有关滤波器的性能指标,例如:1)低通滤波器性能指标,fp=3200 Hz,fc=3500 Hz, As=10dB,Ap=1dB;2)高通滤波器性能指标,fp=5400 Hz, fc=5700 Hz,As=10dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200 Hz,fp2=2500 Hz,fc1=800 Hz,fc2=2900 Hz,As=10dB,Ap=1dB。

(4)回放语音信号在MATLAB中,函数sound可以对声音进行回放。

其调用格式:sound(x,FS);可以感觉滤波前后的声音有变化。

3.2 Matlab程序及结果3.2.1语音信号的采集与频谱分析将声音文件导入MATLAB软件中,绘出采样后的语音信号的时域波形和频谱图。

MATLAB程序如下:clc;[x,FS]=audioread(‘voice.wav’);x=x(:,1);N=length(x);n=0:N-1; t=n/FS;figure(1);subplot(211);plot(x);%sound(x,FS,bits);title('语音信号时域波形图')y=fft(x,N);f=(FS/N)*(1:N);subplot(212);plot(f(1:105000),abs(y(1:105000)));title('语音信号频谱图');运行程序得到语音信号时域和频谱图形如图一所示:图一原始信号时域和频谱图3.2.2 IIR数字滤波器的设计下面分别用巴特沃思数字滤波器(低通、带通、高通)对被噪声污染后的信号进行滤波。

3.2.2.1巴特沃思低通滤波器添加高频的噪声信号zs=0.05*cos(2*pi*6000*t),MATLAB程序如下。

加噪信号的时域及幅频图如图二所示。

%噪声信号zs=0.05*cos(2*pi*6000*t);x1=x+zs’;subplot(2,1,1);plot(x1);grid on;y1=fft(x1,N);subplot(2,1,2);plot(f(1:105000),abs(y1(1:105000));grid;图二加噪信号时域和频谱图设计巴特沃思低通滤波器,MATLAB程序如下。

滤波器图如图三所示。

%低通滤波fp=3200;fs=3500;rp=1;rs=10;wp=2*pi*fp/FS;ws=2*pi*fs/FS;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'s');[Bz,Az]=bilinear(B,A,Fs1);figure(4);[h,w]=freqz(Bz,Az,512,Fs1*FS);plot(w,abs(h));title('巴特沃斯低通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)'); grid on;图三低通滤波器3.2.2.2 巴特沃斯高通滤波器滤波器图如图四所示。

%高通滤波fp=5400;fs=5700;rp=1;rs=10;wp=2*pi*fp/FS;ws=2*pi*fs/FS;T=1;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'high','s');[Bz,Az]=bilinear(B,A,Fs1);[h,w]=freqz(Bz,Az,512,Fs1*FS);plot(w,abs(h));title('巴特沃斯高通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)'); grid on;图四高通滤波器3.2.2.3 巴特沃斯带通滤波器滤波器图如图五所示。

%带通滤波fp=[1200,2500];fs=[800,2900];rp=1;rs=10;wp=2*pi*fp/FS;ws=2*pi*fs/FS;T=1;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'s');[Bz,Az]=bilinear(B,A,Fs1);[h,w]=freqz(Bz,Az,512,Fs1*FS);plot(w,abs(h));title('巴特沃斯带通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;图五带通滤波器3.3 结果分析采用功率谱分析,利用Welch法。

功率谱图像如图六。

仅以低通为例。

程序如下:Nfft=2048;window=hanning(1024);noverlap=512;Pxx=pwelch(yd,window,noverlap,Nfft,FS,'onesided','ms'); f=(0:Nfft/2)*FS/Nfft;plot(f,10*log10(Pxx));title('Welch法');grid on;图六低通滤波后功率谱估计四、总结随着科学技术的迅猛发展,人类与计算机的信息交流量也越来越多。

相关主题