matlab音频降噪课程设计报告
MATLAB自适应滤波去噪
《MATLAB自适应滤波去噪》课程设计报告1.课程设计目的此次课程设计目的是为了让我们学会使用MATLAB进行计算机仿真,使用自适应滤波法设计一个语音去噪声电路。
培养我们的电路设计思路及其算法,明白理论与实践相结合的重要性,培养了我们的实际操作能力以及锻炼我们对实际问题的分析与解决的能力。
2.课程设计内容2.1 LMS自适应算法原理自适应过程一般采用典型LMS自适应算法,但当滤波器的输入信号为有色随机过程时,特别是当输入信号为高度相关时,这种算法收敛速度要下降许多,这主要是因为输入信号的自相关矩阵特征值的分散程度加剧将导致算法收敛性能的恶化和稳态误差的增大。
此时若采用变换域算法可以增加算法收敛速度。
变换域算法的基本思想是:先对输入信号进行一次正交变换以去除或衰减其相关性,然后将变换后的信号加到自适应滤波器以实现滤波处理,从而改善相关矩阵的条件数。
因为离散傅立叶变换DFT本身具有近似正交性,加之有FFT快速算法,故频域分块LMS FBLMS算法被广泛应用。
FBLMS算法本质上是以频域来实现时域分块LMS算法的,即将时域数据分组构成N个点的数据块,且在每块上滤波权系数保持不变。
其原理框图如图2所示。
FBLMS 算法在频域内可以用数字信号处理中的重叠保留法来实现,其计算量比时域法大为减少,也可以用重叠相加法来计算,但这种算法比重叠保留法需要较大的计算量。
块数据的任何重叠比例都是可行的,但以50%的重叠计算效率为最高。
对FBLMS算法和典型LMS算法的运算量做了比较,并从理论上讨论了两个算法中乘法部分的运算量。
本文从实际工程出发,详细分析了两个算法中乘法和加法的总运算量,其结果为:复杂度之比=FBLMS实数乘加次数/LMS实数乘加次数=(25Nlog2N+2N-4)/[2N(2N-1)]采用ADSP的C语言来实现FBLMS算法的程序如下:for(i=0;i<=30;i++){for(j=0;j<=n-1;j++){in[j]=input[i×N+j;]rfft(in,tin,nf,wfft,wst,n);rfft(w,tw,wf,wfft,wst,n);cvecvmlt(inf,wf,inw,n);ifft(inw,t,O,wfft,wst,n);for(j=0,j<=N-1;j++){y[i×N+j]=O[N+j].re;e[i×N+j]=re fere[i×N+j]-y[i×N+j];temp[N+j]=e[i×N+j;}rfft(temp,t,E,wfft,wst,n);for(j=0;j<=n-1;j++){inf_conj[j]=conjf(inf[j]);}cvecvmlt(E,inf_conj,Ein,n);ifft(Ein,t,Ein,wfft,wst,n);for(j=0;j<=N-1;j++){OO[j]=Ein[j].re;w[j]=w[j]+2*u*OO[j];}}在EZ-KIT测试板中,笔者用汇编语言和C语言程序分别测试了典型LMS算法的运行速度,并与FBLMS算法的C语言运行速度进行了比较,表2所列是其比较结果,从表2可以看出滤波器阶数为64时,即使是用C语言编写的FBLMS算法也比用汇编编写的LMS算法速度快20%以上,如果滤波器的阶数更大,则速度会提高更多。
本科毕业设计论文--matlab课程设计报告基于matlab有噪声语音信号处理
Matlab课程设计报告题目:基于MATLAB有噪声语音信号处理系(院):计算机与信息工程学院专业:通信工程班级:10623102指导教师:学年学期:2011 ~ 2012 学年第2 学期简介:我们通信工程专业在实践中经常碰到需要对已接收信号进行处理的情况,而滤波器设计在数字信号处理中占有极其重要的地位。
本课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪语音信号进行时域、频域分析和滤波。
通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现。
在设计实现的过程中,我们使用双线性变换法设计IIR数字滤波器,对模拟加噪语音信号进行低通滤波、高通滤波及带通滤波,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。
1 绪论:数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。
数字滤波器, 是数字信号处理中及其重要的一部分。
本课题采用IIR 滤波器对加噪声音信号进行处理。
IIR滤波器采用递归型结构,即结构上带有反馈环路。
IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。
2.原始语音信号采集与处理2.1语音信号的采集由于MATLAB只识别格式为.wav的声音文件,我们利用PC机上的声卡和WINDOWS操作系统进行数字信号的采集。
启动录音机进行录音,以文件名“Orisound”保存入原程序所属的文件夹中。
可以看到,文件存储器的后缀默认为.wav ,这是WINDOWS操作系统规定的声音文件存的标准。
基于Matlab的语音信号去噪及仿真
数字信号处理综合实验报告基于Matlab的语音信号去噪及仿真实验题目:专业名称: 学号: 姓名: 日期:报告内容:一、实验原理1、去噪的原理1.1采样定理在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5〜10倍;采样定理又称奈奎斯特定理。
1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式:理想低通信道的最高大码元传输速率=2W*log2 N (其中W是理想低通信道的带宽,N是电平强度)为什么把采样频率设为8kHz?在数字通信中,根据采样定理,最小采样频率为语音信号最高频率的 2 倍频带为F的连续信号f(t)可用一系列离散的采样值f(t1), f(t1±A t),f (t 1±2 A t),...来表示,只要这些采样点的时间间隔△t < 1/2 F,便可根据各采样值完全恢复原来的信号f(t) o这是时域采样定理的一种表述方式。
时域采样定理的另一种表述方式是:当时间信号函数f(t)的最高频率分量为fM时,f(t)的值可由一系列采样间隔小于或等于1/2 fM的采样值来确定,即采样点的重复频率f》2fM。
图为模拟信号和采样样本的示意图。
时域采样定理是采样误差理论、随机变量采样理论和多变量采样理论的基础。
对于时间上受限制的连续信号f(t)(即当丨t | >T时,f(t)=0,这里T=T2-T1是信号的持续时间),若其频谱为 F (①),则可在频域上用一系列离散的采样值(1-1 )采样值来表示,只要这些采样点的频率间隔(1-2 )1.2采样频率采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。
采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。
基于MATLAB语音信号处理去噪毕业设计(含源文件)
在Matlab平台上实现对语音信号的去噪研究和仿真摘要语音信号在数字信号处理中占有极其重要的地位,因此选择通过对语音信号的研究来巩固和掌握数字信号处理的基本能力十分具有代表性。
对数字信号处理离不开滤波器,因此滤波器的设计在信号处理中占有极其重要的地位。
而MATLAB软件工具箱提供了对各种数字滤波器的设计。
本论文“在MATLAB平台上实现对语音信号的去噪研究与仿真”综合运用了数字信号处理的各种基本知识,进而对不带噪语音信号进行谱分析以及带噪语音信号进行谱分析和滤波处理。
通过理论推导得出相应的结论,再通过利用MATLAB作为编程工具来进行计算机实现比价已验证推导出来的结论。
在设计过程中,通过设计FIR数字滤波器和IIR数字滤波器来完成滤波处理。
在设计过程中,运用了MATLAB对整个设计中的图形的绘制和一些数据的计算以及仿真。
关键字滤波器;MATLAB;仿真;滤波Speech signle denoising and simulation inMATLAB platformABSTRACTDigital signal processing can not be separated from the filter, the filter design occupies an extremely important role in signal processing. The MATLAB software toolbox provides a variety of digital filter design. The subject of the use of basic knowledge of digital signal processing, speech signal and the noisy speech signal specctral snalysis and filtering,By the theoretical derivation of the corresponding conclusions, then to the computer through the use of MATLAB as a programming tool To achieve parity to verify the conclusions derived. In the design process, using the windoow function design FIR digital filter,IIR digital filter using cut design than Chebyshev, Butterworth and bilinear variation method. In the design process,the use of computer and simulation of MATLAB the entire design, graphics rendering,and some date.Key words filter;MATLAB;simulation;filtering目录摘要 (I)ABSTRACT (II)第1章前言 (1)1.1 研究的意义 (1)1.2 国内外研究现状 (1)1.3 研究的内容 (2)第2章语音信号去噪方法的研究 (4)2.2 去噪的原理 (4)2.2.1 采样定理 (4)2.2.2 采样频率 (5)2.2 去噪的方法 (5)FIR滤波器基本结构: (7)IIR数字滤波器的设计 (8)第3章滤波器的设计及实现 (10)3.1数字滤波器设计的基本原理 (10)3.3 IIR数字滤波器的设计及实现 (13)第四章去噪及仿真的研究 (16)4.1 语音文件在MATLAB平台上的录入与打开 (16)4.2 原始语音信号频谱分析及仿真 (16)4.3 加噪语音信号频谱分析及仿真 (20)(1)正弦波信号加入原始语音信号 (20)4.4 去噪及仿真 (23)4.5 结合去噪后的频谱图对比两种方式滤波的优缺点 (25)总结 (26)致谢 ................................................................................................................... 错误!未定义书签。
基于MATLAB的有噪声的语音信号处理的课程设计要点
基于MATLAB的有噪声的语音信号处理的课程设计要点一、设计背景随着科技的不断发展,语音信号处理愈发成为热门话题。
在语音数据中,常常会被噪声干扰,从而使得信号质量下降,影响了数据分析和处理的效果。
本课程设计旨在通过MATLAB来设计一套有噪声的语音信号处理方法,以提高对语音信号信噪比的分析和处理能力,为后续的语音处理研究奠定基础。
二、课程设计要点1. 语音信号的获取和预处理在本课程中,需要使用MATLAB语音处理工具箱中的audioread()函数获取.wav格式的语音信号,然后进行预处理操作,包括:•极化和采样:将语音信号从时间域转换到频域,并进行重采样处理,以适应后续处理操作的需求。
•去噪:根据信噪比的情况,选择合适的去噪算法对语音信号进行滤波,以减低信号的噪声干扰。
2. 基本的信号处理方法•频谱分析和频率域滤波:可以通过MATLAB处理语音信号的频域,进行谱分析、谱修复以及滤波的操作。
•时域滤波:应用IIR和FIR滤波器来消除噪声,提高信号质量。
•自适应滤波:通过模型建立和自适应滤波器设计,从语音信号中分离出噪声信号。
3. 压缩和解压缩•信号压缩:对语音信号进行压缩处理,以实现数据的高效管理和传输。
•信号解压缩:对压缩后的语音信号进行解压缩处理,还原原始的语音信号,以进行后续处理。
4. 语音识别•特征提取:通过分段处理,并进行特征提取,将信号的语音特征转换为相应的数字特征向量,为后续的语音识别做准备。
•语音识别:基于数字特征向量,采用各种识别算法,进行语音识别。
三、设计思路1.读入语音信号和噪声,可以通过audioread()函数和一些MATLAB工具箱实现。
同时,对输出语音信号进行噪声除去处理。
2.对语音信号进行频谱分析,并基于不同的SNR条件下,应用FIR和IIR滤波器对语音信号进行滤波处理。
进而利用多种去噪算法对含噪语音信号进行去噪处理。
3.对经过滤波处理的语音信号进行特征提取,并采用隐马尔可夫模型(HMM)对数字特征向量进行处理,进行不同说话人的识别。
用matlab去除噪声报告
实验七含噪语音信号的分析一、实验目的1理解并掌握系统的理念2掌握滤波的概念和基本应用方法3提高分析和解决实际问题的能力二、习题:自行录制一段音频信号,并加入不同频率的噪声,对于加入噪声后的音频信号,设计程序分析噪声的频率,并设计合适的滤波器将噪声滤除。
对比原始音频信号、含噪音频信号和滤波后音频信号的听觉效果。
clc;clear all;%读取原语音信号[x,fs,nbit]=wavread('signal.wav');%x为数据点,fs为采样频率wavplay(x,fs);%播放语音信号N=length(x);%求出语音信号的长度t=(0:N-1)/fs;w=fs*linspace(0,1,N);y=abs(fft(x,N));%y为原始信号的频谱figure(1)subplot(2,1,1)plot(x);title('原始语音信号')subplot(2,1,2)plot(w,abs(y));title('语音fft频谱图')%加入噪声t=linspace(0,(N-1)/fs,N);noise=0.5*sin(2*pi*10000*t)+2*cos(2*pi*25000*t);%噪声函数x1(:,1)=x(:,1)+noise';wavplay(x1,fs);%播放加入噪声后的语音信号figure(2)y1=abs(fft(x1,N));subplot(211);plot(t,x1);title('加入噪声后语音信号时域图');subplot(212);plot(w,y1);axis([0,fs,0,20000]);title('加入噪声后语音信号频谱图')%设计低通滤波器fc=9200;fst=9600;rp=1;rs=30;wp=fc*2/fs;%将模拟指标转换为数字指标ws=fst*2/fs;[n,wn]=buttord(wp,ws,rp,rs);%滤波器的最小阶数n,wn为系统频带[b,a]=butter(n,wn,'low');figure(3);freqz(b,a);title('低通滤波器特性曲线');x2=filter(b,a,x1);%滤波后的时域figure(4)y2=abs(fft(x2,N));%滤波后的频谱subplot(211)plot(t,x2)title('滤波后语音信号时域图')subplot(212)plot(w,y2);title('滤波后语音信号频谱图')wavplay(x2,fs);123456x 105-1-0.500.51原始语音信号00.51 1.52 2.53 3.54 4.5x 104500010000语音fft 频谱图024681012-4-2024加入噪声后语音信号时域图00.51 1.52 2.53 3.54x 1040.511.524加入噪声后语音信号频谱图00.10.20.30.40.50.60.70.80.91-6000-4000-2000Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.10.20.30.40.50.60.70.80.91-600-400-2000200Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )低通滤波器特性曲线24681012-2-1012滤波后语音信号时域图00.51 1.52 2.53 3.54 4.5x 104500010000滤波后语音信号频谱图三、分析讨论信号失真产生的原因信号失真的原因主要取决于经过滤波器滤波,信号频谱中高频分量或低频分量被大大衰减。
matlab音频处理课程设计
matlab音频处理课程设计一、教学目标本课程旨在通过Matlab软件的运用,让学生掌握音频处理的基本知识和技能,能够运用Matlab进行音频信号的分析和处理。
在知识目标上,要求学生了解音频信号的基本概念,掌握Matlab音频处理的基本命令和函数。
在技能目标上,要求学生能够熟练使用Matlab进行音频信号的读取、显示、分析和处理,并能够编写简单的音频处理程序。
在情感态度价值观目标上,培养学生对音频信号处理的兴趣,提高学生运用科学工具解决实际问题的能力。
二、教学内容本课程的教学内容主要包括Matlab基础知识、音频信号处理基本概念、Matlab音频处理函数和实例分析。
首先,通过Matlab的基础知识学习,使学生能够熟练使用Matlab进行编程和数据分析。
然后,介绍音频信号处理的基本概念,包括音频信号的采样、量化、编码和处理等。
接下来,通过Matlab音频处理函数的学习,使学生能够掌握音频信号处理的基本方法。
最后,通过实例分析,使学生能够将所学的知识和技能应用于实际问题的解决中。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
首先,通过讲授法,使学生掌握Matlab的基础知识和音频信号处理的基本概念。
然后,通过案例分析法,使学生能够将所学的知识和技能应用于实际问题的解决中。
最后,通过实验法,使学生能够动手实践,提高学生的实际操作能力。
四、教学资源本课程的教学资源主要包括教材、Matlab软件、多媒体资料和实验设备。
教材用于引导学生学习,Matlab软件用于音频信号的处理,多媒体资料用于辅助教学,实验设备用于学生的实践操作。
这些教学资源能够支持教学内容和教学方法的实施,丰富学生的学习体验。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。
平时表现主要评估学生在课堂上的参与程度和表现,包括提问、回答问题、讨论等,占总评的30%。
作业主要评估学生的实践能力,包括课后练习和实验报告,占总评的40%。
数字信号处理课程设计报告--基于MATLAB的语音去噪处理
数字信号处理课程设计报告--基于MATLAB的语音去噪处理《数字信号处理》课程设计报告基于MATLAB的语音去噪处理专业: 通信工程班级: 通信1101班组次: 第7组姓名及学号: 胡政权(2011013825) 姓名及学号: 潘爽(2011013836)第1页组员承担任务负责程序的编写,并检验程序是否错误,利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集胡政权与整理,对课程设计要求进行最后审核。
负责课程设计实验MATLAB仿真对实验结果进行分析,上网查阅材料对实验发表自己看法同时对实验要求进行扩展。
对论文进行抒写,排版潘爽使实验课程设计更加完善。
指导教师评价意见第2页基于MATLAB的语音去噪处理1、设计目的(1)巩固所学的数字信号处理理论知识,理解信号的采集、处理、加噪、去噪过程; (2)综合运用专业及基础知识,解决实际工程技术问题的能力; (3)学习资料的收集与整理,学会撰写课程设计报告。
2、设计任务(1)语音信号的录制。
(2)在MATLAB平台上读入语音信号。
(3)绘制频谱图并回放原始语音信号。
(4)利用MATLAB编程加入一段正弦波噪音,设计滤波器去噪。
(5)利用MATLAB 编程加入一段随机噪音信号,设计FIR和IIR滤波器去噪,并分别绘制频谱图、回放语音信号。
(6)通过仿真后的图像以及对语音信号的回放,对比两种去噪方式的优缺点。
其大概流程框图可如下表示:(图2-1)图2-1 课程设计的流程第3页3、设计原理3.1 去噪原理3.1.1 采样定理在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5,10倍;采样定理又称奈奎斯特定理。
1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式: 理想低通信道的最高大码元传输速率=2W*log2 N (其中W是理想低通信道的带宽,N是电平强度)为什么把采样频率设为8kHz?在数字通信中,根据采样定理, 最小采样频率为语音信号最高频率的2倍频带为F的连续信号 f(t)可用一系列离散的采样值f(t1),f(t1?Δt),f(t1?2Δt),...来表示,只要这些采样点的时间间隔Δt?1/2F,便可根据各采样值完全恢复原来的信号f(t)。
数字信号处理课程设计报告--基于MATLAB的语音去噪处理
数字信号处理课程设计报告--基于MATLAB的语音去噪处理《数字信号处理》课程设计报告基于MATLAB的语音去噪处理专业: 通信工程班级: 通信1101班组次: 第7组姓名及学号: 胡政权(2011013825) 姓名及学号: 潘爽(2011013836)第1页组员承担任务负责程序的编写,并检验程序是否错误,利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集胡政权与整理,对课程设计要求进行最后审核。
负责课程设计实验MATLAB仿真对实验结果进行分析,上网查阅材料对实验发表自己看法同时对实验要求进行扩展。
对论文进行抒写,排版潘爽使实验课程设计更加完善。
指导教师评价意见第2页基于MATLAB的语音去噪处理1、设计目的(1)巩固所学的数字信号处理理论知识,理解信号的采集、处理、加噪、去噪过程; (2)综合运用专业及基础知识,解决实际工程技术问题的能力; (3)学习资料的收集与整理,学会撰写课程设计报告。
2、设计任务(1)语音信号的录制。
(2)在MATLAB平台上读入语音信号。
(3)绘制频谱图并回放原始语音信号。
(4)利用MATLAB编程加入一段正弦波噪音,设计滤波器去噪。
(5)利用MATLAB 编程加入一段随机噪音信号,设计FIR和IIR滤波器去噪,并分别绘制频谱图、回放语音信号。
(6)通过仿真后的图像以及对语音信号的回放,对比两种去噪方式的优缺点。
其大概流程框图可如下表示:(图2-1)图2-1 课程设计的流程第3页3、设计原理3.1 去噪原理3.1.1 采样定理在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5,10倍;采样定理又称奈奎斯特定理。
1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式: 理想低通信道的最高大码元传输速率=2W*log2 N (其中W是理想低通信道的带宽,N是电平强度)为什么把采样频率设为8kHz?在数字通信中,根据采样定理, 最小采样频率为语音信号最高频率的2倍频带为F的连续信号 f(t)可用一系列离散的采样值f(t1),f(t1?Δt),f(t1?2Δt),...来表示,只要这些采样点的时间间隔Δt?1/2F,便可根据各采样值完全恢复原来的信号f(t)。
matlab声音去噪研究报告
个人资料整理仅限学习使用课程设计说明书课题名称:基于MATLAB的信号去噪研究姓名及学号:吴永21006021078周浩然21006021099胡军 21006021024专业班级:09电本1班成绩:指导教师:课题工作时间:2018年 11月20日—12月12日引言11. 小波去噪原理分析 (2)1.1 小波去噪原理 (2)1.2 小波去噪步骤 (3)2. 阈值的选取与量化32.1 软阈值和硬阈值 (3)2.2 阈值的几种形式 (4)2.3 阀值的选取 (5)3. 小波消噪的MATLAB实现53.1小波去噪函数集合 (5)3.2 小波去噪验证仿真 (6)4. 小波去噪的MATLAB 仿真对比实验8结语11参考文献11小波变换的概念是由法国从事石油信号处理的工程师J.Morlet在1974年首先提出的,I.Daubechies[1]的《小波十讲》对小波的普及起了重要的推动作用。
现在,它已经在科技信息产业领域取得了令人瞩目的成就。
小波分析的应用领域十分广泛[2][3][4]。
在数学方面,它已用于数值分析、构造快速数值方法、曲线曲面构造、微分方程求解、控制论等。
在信号分析方面的滤波、去噪声、压缩、传递等。
在图象处理方面的图象压缩、分类、识别与诊断,去污等。
在医学成像方面的减少B超、CT、核磁共振成像的时间,提高分辨率等。
在实际的计算机控制系统中,采样信号不可避免的受到各种噪声和干扰的污染,使得由辨识采样信号得到的系统模型存在偏差而妨碍了系统控制精度的提高。
通信信号去噪工作原理是利用噪声和信号在频域上分布的不同来进行的。
在传统的基于傅氏变换的信号去噪方法中,总是使得信号和噪声的频带重叠部分尽可能小,这样在频域通过时不变滤波,就将信号和噪声区分开。
但如果两者重叠区域很大时,就无法实现去噪的效果了。
Donoho和Johnstone[5]提出的小波收缩去噪算法对去除叠加性高斯白噪声非常有效。
由小波变换的特性可知,高斯噪声的小波变换仍然是高斯分布的,它均匀分布在频率尺度空间的各部分,而信号由于其带限性,它的小波系数仅仅集中在频率尺度空间上的有限部分。
基于matlab谱减法音频降噪处理综述
题目基于matlab谱减法音频降噪处理班级学号姓名指导时间景德镇陶瓷学院数字信号处理课程设计任务书目录1、设计要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12、设计原理. . . . . . . ……………………………………………….. . . . . . . . . . . .23、源程序清单. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74、设计结果和仿真波形. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115、参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6、设计心得体会. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161、设计要求语言是人类最重要、直接、有效和便捷的交换信息的方式。
随着近些年科学技术的飞速发展,人们也不满足于和计算机的信息交换方式,希望能够甩掉键盘和鼠标而实现用语言来对计算机进行控制。
因此,语音信号处理技术便应运而生。
语音信号处理是一门新兴的学科,同时也是综合多种学科和涉及面非常广泛的交叉学科。
现在在一些职能系统中嵌入有语音处理系统,但它们只能在安静的环境中才能使用。
然而,在语音信息的采集过程中难免会有各种噪声的干扰。
噪声不仅降低了语音的可懂度和语音质量,还严重的影响语音处理的准确性,甚至使系统不能正常工作。
本文将就对语音增强技术的原理和方法进行讨论,重点介绍语音增强的一种方法——谱减法及其改进算法。
基于matlab的语音信号滤波处理课程设计报告
信息工程学院2014/ 2015学年第一学期课程设计报告课程名称:基于MATLAB的语音信号滤波处理班级学号统本通信学生姓名 XXX XXX 指导教师 XXX任务书基于matlab的语音信号滤波处理摘要:本课程设计的主要目的是在MATLAB环境下,使用窗口设计法设计一个滤波器,并对语音信号进行滤波去噪。
开发平台为MATLAB,设计方法为窗口设计法。
用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用凯塞窗设计一个满足指标的FIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。
在滤波前后语音信号波形的变化中,由于我们录制的语音信号噪声不大,所以观察并不明显,但在频域波形中,我们可以明显的看到设计的滤波器对语音信号进行了滤波处理,将噪声进行了滤除。
此次滤波基本达到了要求,完成了设计指标。
关键词:滤波去噪;FIR滤波器;凯塞窗;MATLAB目录1 课程设计研究内容 (1)1.1课程设计研究内容 (1)1.2课程设计步骤及流程图 (1)1.3课程设计要求 (3)2 设计原理 (3)2.1 MATLAB简介 (3)2.2 滤波器 (3)3 设计与实现过程 (3)3.1实现方法 (3)3.1.1 FIR滤波器 (3)3.1.2窗口设计法 (4)3.1.3凯塞窗 (4)3.2 设计过程 (4)3.2.1录制语音信号 (5)3.2.2 对原信号加入噪声 (5)3.2.2 滤波器的设计 (7)3.2.2信号的滤波处理 (9)3.3 仿真结果与分析 (10)4 调试问题与解决方案 (10)5总结与展望 (11)致谢 (11)参考文献 (12)附录 (13)附录1. 滤波器脉冲响应源程序 (13)附录2. 理想低通滤波器计算源程序 (14)1 课程设计研究内容1.1课程设计研究内容1.语音信号的采集在Windows下录制一段格式为.wav的语音,利用函数wavread对语音信号进行采样。
基于matlab语音去噪课程设计
基于matlab语音去噪课程设计一、教学目标本课程的目标是使学生掌握基于MATLAB的语音去噪技术,能够运用该技术进行实际的语音信号处理。
具体目标如下:知识目标:使学生了解语音信号去噪的基本理论和技术,理解MATLAB在语音去噪中的应用。
技能目标:培养学生使用MATLAB进行语音去噪的实践能力,能够独立完成语音去噪的实验。
情感态度价值观目标:培养学生对信号处理的兴趣,提高学生运用科学知识解决实际问题的能力。
二、教学内容教学内容主要包括三部分:语音信号去噪理论、MATLAB基本操作、基于MATLAB的语音去噪实践。
第一部分,语音信号去噪理论,包括噪声的类型、噪声的特性、语音信号去噪的基本方法等内容。
第二部分,MATLAB基本操作,包括MATLAB的安装和使用、MATLAB的基本语法、MATLAB的图形界面设计等内容。
第三部分,基于MATLAB的语音去噪实践,包括噪声的估计和消除、语音信号的去噪处理、去噪效果的评价等内容。
三、教学方法教学方法采用讲授法、实验法、讨论法相结合的方式。
讲授法用于讲解语音信号去噪理论和MATLAB的基本操作。
实验法用于让学生动手实践,进行基于MATLAB的语音去噪。
讨论法用于引导学生思考和探讨,提高学生对语音去噪技术的理解和应用能力。
四、教学资源教学资源包括教材、实验设备、多媒体资料等。
教材:《MATLAB语音去噪教程》实验设备:计算机、语音信号处理器多媒体资料:教学PPT、实验指导视频教学评估主要通过以下几个方面进行:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的30%。
2.作业:包括课后练习和实验报告,占总评的40%。
3.考试:包括期中和期末考试,占总评的30%。
评估方式将采用客观、公正的原则,全面反映学生的学习成果。
六、教学安排教学进度将按照教材《MATLAB语音去噪教程》的章节进行,共安排12周,每周2课时。
教学时间:每周二下午2:00-4:00教学地点:实验室教学安排将考虑学生的实际情况和需要,尽量安排在学生较为空闲的时间段,同时兼顾学生的兴趣爱好。
matlab代码语音信号分析和去噪处理
S X 文理学院数理信息学院数字信号处理课程设计报告书题目语音信号分析与去噪处理姓名学号专业班级电信11级信号处理指导教师于刘时间年月日课程设计任务书源码function varargout = PF(varargin)% PF MATLAB code for PF.fig% PF, by itself, creates a new PF or raises the existing% singleton*.%% H = PF returns the handle to a new PF or the handle to% the existing singleton*.%% PF('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in PF.M with the given input arguments.%% PF('Property','Value',...) creates a new PF or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before PF_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to PF_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help PF% Last Modified by GUIDE v2.5 06-Jul-2014 11:15:51% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @PF_OpeningFcn, ...'gui_OutputFcn', @PF_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});if nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before PF is made visible.function PF_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to PF (see VARARGIN)% Choose default command line output for PFhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes PF wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = PF_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure varargout{1} = handles.output;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% 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)%************语音信号采集******************global YL YH YK YG YY;global F BB;[fn,pn,fi]=uigetfile('*.wav','select a wav-file');%调用选择文件对话框,返回fn代表名字,pn代表路径name=strcat(pn,fn);[y1,Fs,bits]=wavread(name); %采样值放在向量y中,fs表示采样频率(hz),bits表示采样位数T=length(y1)/Fs;set(handles.text4,'string',Fs);set(handles.text12,'string',T);set(handles.text15,'string',bits);YL=y1;YH=y1;YK=y1;YG=y1;YY=y1;BB=bits;F=Fs;Y=fft(y1,524288);plot(handles.axes1,0:1/Fs:(length(y1)-1)/Fs,y1);axes(handles.axes1);legend('原信号波形',1);stem(handles.axes2,0:2*pi/524288:2*pi-1/524288,abs(Y),'.');set(handles.axes2,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes2);legend('原信号频谱',1);%************************************************% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%*****************声音播放****************************global YY F BB;y1=YY;Fs=F;bits=BB;sound(YY,Fs,bits);%播放声音function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%*******************高斯噪声************************** global h z YY YG;y1=YG;h=0.05*randn(size(y1));z=plus(h,y1);Z=fft(z,524288);stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Z),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes4);legend('加入高斯噪声频谱',1);YY=z;% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %***************滤除高斯噪声******************global h z YY;%*****************自适应算法***********************w=[0,1];%初始2阶加权系数u=0.00026;%最佳参数for i=1:length(z);y(i+1)=h(i:i+1)*w';e(i+1)=z(i+1)-y(i+1);w=w+2*u*e(i+1)*h(i:i+1);end;Y=fft(e,524288);stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Y),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]);legend('滤除高斯噪声频谱',1);YY=e;%******************************************function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %******************低通滤波器*********************** global YL YY F Yli Ylf;y1=YL;Fs=F;%******************IIR*****************fp=6000;fs=8000;Fs=44100;rp=3;rs=10;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;op=2*tan(wp/2);os=2*tan(ws/2);[N, wc]=buttord(op,os,rp,rs,'s');[B, A]=butter(N,wc,'s');[Bz, Az]=bilinear(B ,A,1);%**********FIR****************Bt=abs(wp-ws);N=ceil(6.6*pi/Bt);wc=(wp+ws)/2/pi;hn=fir1(N-1,wc,'low',hamming(N));co=get(handles.popupmenu1,'value');if co==2y2=fftfilt(Bz,y1);Yli=fft(y2,524288);YY=y2;stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Yli),'.');set(handles.axes4,'xlim',[0 2*pi]);axes(handles.axes4);legend('低通滤波频谱',1);elseif co==3y3=fftfilt(hn,y1);Ylf=fft(y3,524288);YY=y3;stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Ylf),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes4);legend('低通滤波频谱',1);end% --- Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %*********************高通*******************global YH YY F Yhi Yhf;Fs=F;y1=YH;%*********************IIR*********************fph=10000;fsh=11000;rph=3;rsh=10;wph=2*pi*fph/Fs;wsh=2*pi*fsh/Fs;oph=2*tan(wph/2);osh=2*tan(wsh/2);[Nh, wch]=buttord(oph,osh,rph,rsh,'s');[Bh, Ah]=butter(Nh,wch,'s');[Bs,As]=lp2hp(Bh,Ah,wch);[Bzh, Azh]=bilinear(Bs ,As,1);%*******************FIR************************Bth=abs(wph-wsh);Nh0=ceil(6.6*pi/Bth);Nh=Nh0+mod(Nh0+1,2);wch=(wph+wsh)/2/pi;hnh=fir1(Nh-1,wch,'high',hamming(Nh));co=get(handles.popupmenu1,'value');if co==2y3=fftfilt(Bzh,y1);Yhi=fft(y3,524288);YY=y3;stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Yhi),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes4);legend('高通滤波频谱',1);elseif co==3y4=fftfilt(hnh,y1);Yhf=fft(y4,524288);YY=y4;stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Yhf),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes4);legend('高通滤波频谱',1);end% --- Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %***********************带通****************%******************IIR**********************global YK YY Ypi Ypf;y1=YK;Fs=44100;wpp=[6000 8000]*2/Fs;wsp=[5000 10000]*2/Fs;rpp=3;rsp=20;[N,Wn]=buttord(wpp,wsp,rpp,rsp,'s');[Bp,Ap]=butter(N,Wn,'bandpass');%*********************FIR**********************fpl=5000;fph1=6000;fsl=8000;fsh1=10000;wpl=2*pi*fpl/Fs;wph1=2*pi*fph1/Fs;wsl=2*pi*fsl/Fs;wsh1=2*pi*fsh1/Fs;Bthb=abs(wpl-wsl);Nhb=ceil(6.6*pi/Bthb);wcl=(wpl+wph1)/2/pi;wch1=(wsl+wsh1)/2/pi;wn=[wcl wch1];hnb=fir1(Nhb-1,wn,hamming(Nhb));co=get(handles.popupmenu1,'value')if co==2y3=fftfilt(Bp,y1);Ypi=fft(y3,524288);YY=y3;stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Ypi),'.');set(handles.axes4,'ylim',[0 40],'xlim',[0 2*pi]);axes(handles.axes4);legend('带通滤波频谱',1);elseif co==3y4=fftfilt(hnb,y1);Ypf=fft(y4,524288);YY=y4;stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Ypf),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes4);legend('带通滤波频谱',1);end% --- Executes on button press in radiobutton1.function radiobutton1_Callback(hObject, eventdata, handles)% hObject handle to radiobutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of radiobutton1% --- Executes on button press in radiobutton2.function radiobutton2_Callback(hObject, eventdata, handles)% hObject handle to radiobutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of radiobutton2% --- Executes on selection change in popupmenu1.function popupmenu1_Callback(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1% --- Executes during object creation, after setting all properties.function popupmenu1_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end% --- Executes on button press in checkbox1.function checkbox1_Callback(hObject, eventdata, handles)% hObject handle to checkbox1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of checkbox1% --- Executes on button press in checkbox2.function checkbox2_Callback(hObject, eventdata, handles)% hObject handle to checkbox2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of checkbox2% --- Executes during object creation, after setting all properties.function pushbutton3_CreateFcn(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% --- Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Yli Ylf;stem(handles.axes2,0:2*pi/524288:2*pi-1/524288,abs(Yli),'.');set(handles.axes2,'xlim',[0 2*pi]);axes(handles.axes2);legend('IIR低通滤波频谱',1);stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Ylf),'.');set(handles.axes4,'xlim',[0 2*pi]);axes(handles.axes4);legend('FIR低通滤波频谱',1);% --- Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Yhi Yhf;stem(handles.axes2,0:2*pi/524288:2*pi-1/524288,abs(Yhi),'.');set(handles.axes2,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes2);legend('IIR高通滤波频谱',1);stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Yhf),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]);axes(handles.axes4);legend('FIR高通滤波频谱',1);% --- Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Ypi Ypf;stem(handles.axes2,0:2*pi/524288:2*pi-1/524288,abs(Ypi),'.');set(handles.axes2,'ylim',[0 40],'xlim',[0 2*pi]);axes(handles.axes2);legend('IIR带通滤波频谱',1);stem(handles.axes4,0:2*pi/524288:2*pi-1/524288,abs(Ypf),'.');set(handles.axes4,'ylim',[0 1500],'xlim',[0 2*pi]); axes(handles.axes4);legend('FIR带通滤波频谱',1);。
matlab音频降噪课程设计
matlab音频降噪课程设计一、教学目标本课程旨在通过Matlab软件的实践操作,让学生掌握音频降噪的基本理论,学会使用Matlab进行音频信号的降噪处理。
通过本课程的学习,使学生能够了解音频降噪的重要性,提高音频信号处理的实际操作能力,培养解决实际问题的能力。
知识目标:使学生了解音频降噪的基本理论,理解降噪的原理和方法;掌握Matlab软件的基本操作,能够运用Matlab进行音频降噪的实际操作。
技能目标:培养学生使用Matlab进行音频降噪的能力,能够独立完成音频降噪的实验操作;通过实践,提高学生的编程能力和问题解决能力。
情感态度价值观目标:培养学生对音频信号处理的兴趣,增强学生对科学研究的热情;通过小组合作完成实验,培养学生的团队合作意识和交流沟通能力。
二、教学内容本课程的教学内容主要包括音频降噪的基本理论、Matlab软件的基本操作以及音频降噪的实验实践。
1.音频降噪的基本理论:介绍音频降噪的概念、意义和方法,使学生了解音频降噪的重要性。
2.Matlab软件的基本操作:讲解Matlab软件的基本命令和功能,使学生能够熟练使用Matlab进行音频信号处理。
3.音频降噪的实验实践:通过实验,使学生能够运用Matlab进行音频降噪的实际操作,掌握降噪的方法和技巧。
三、教学方法本课程采用讲授法、实验法和讨论法相结合的教学方法。
1.讲授法:通过讲解音频降噪的基本理论和Matlab软件的基本操作,使学生掌握相关知识。
2.实验法:通过音频降噪的实验实践,使学生能够将理论知识运用到实际操作中,提高操作技能。
3.讨论法:在课堂上学生进行小组讨论,分享实验心得和经验,培养学生的团队合作意识和交流沟通能力。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
1.教材:选用《Matlab信号处理与应用》作为教材,系统讲解Matlab软件的基本操作和音频信号处理的方法。
2.多媒体资料:制作PPT课件,直观展示音频降噪的原理和方法,便于学生理解和掌握。
音频信号去噪报告
立体声或双声道音频信号有左右两个声道,利用MATLAB实现双声道分离、两路声道合并和两个单声道组合成一个双声道等效果,实际上是利用了MATLAB的矩阵抽取、矩阵相加和矩阵重组运算。
(3)数字滤波
数字滤波是常用的音频处理技术。先利用fir1函数,设计一个数字低通滤波器,再用Filter或Filter2函数即可实现滤波处理。调用的Filter函数格式是:Y =filte(B,A,X) 。其中,B和A是滤波器传输函数的分子和分母系数,X是输入变量,Y是实现滤波后的输出变量。
Z=z/Zm;
figure(4);
subplot(2,1,1);
plot(t,z1,'r');
axis([0 95 -1 1]);
set(gca,'XTick',0:5:95),grid on;
set(gca,'YTick',-0.8:0.2:0.8),grid on;
title('滤波后信号的波形');
四、结果与分析:
1.实验结果:
Figure 1
Figure2
Figure3
Figure4
2.实验分析
通过对处理后的音频文件试听,可知噪声加入后,听觉上歌曲声音明显变差,而采用低通滤波的方法滤除噪声后歌曲声音明显变清晰。
同时实验过程总结一下三点:
(1)音量标准化
在实际生成语音信号的过程中常有音轻问题,因此在生成声音过程中需要对声音电平进行量化处理,使音量实现标准化。利用Matlab很容易实现音量标准化,即最大电平对应最高量化比特。基本步骤是:1.利用wavread函数将WAV文件转换成列数组变量:2.求出数组变量的极值并对所有元素作归一化处理;3.用wavwrite函数还原成音量标准化的WAV文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab音频降噪课程设计报告燕山大学医学软件课程设计说明书题目:基于MATLAB巴特沃斯滤波器的音频去噪的GUI设计学院(系):电气工程学院年级专业: 13级生物医学工程 2 班学号: 130103040041学生姓名:魏鑫指导教师:许全盛1院(系):电气工程学院基层教学单位:生物医学工程系学号130103040041学生姓名魏鑫专业(班级)13级生物医学工程2班设计题目基于MATLAB音频去噪的GUI设计设计技术参数通带截止频率fp=2700;阻带截止频率fs=3000;采样频率FS=48000; 通带衰减不大于1dB;阻带衰减不小于10dB;设计要求1.实现用MATLAB导入音频;2.对音频进行频谱分析;3.设计滤波器去噪并对含噪信号进行滤2波并进行功率谱分析;4.设计能实现上述功能的GUI;工作量1.完成音频录入及频谱分析相关程序的编写与调试;2.设计滤波器去噪;3.用MATLAB软件做GUI界面的设计;工作计划11.21-11.24 MATLAB软件中GUIDE 工具箱的使用11.25-11.29 各处理算法模块的编程实现11.30-12.1 整体程序联调12.2 撰写课程设计说明书,答辩参考资料 1. 陈怀琛吴大正 MATLAB及在电子信息课程中的应用[M] 北京电子工业出版社 2006. 章节2.4;2. 陈亚勇 MATLAB信号处理详解[M] 北京:人民邮电出版社 2000. 第十3章;3.张康刘雅基于Matlab的巴特沃斯数字低通滤波器的设计[J] 计算机与现代化 2007年 12期 98-100页指导教师签字许全盛基层教学单位主任签字彭勇目录一、设计目的意义 (1)1.1绪论 (1)1.2设计目的 (1)1.3意义 (1)二、设计内容 (2)2.1 设计原理 (2)2.2 设计内容 (2)三、设计过程及结果分析 (3)3.1 设计步骤 (3)43.2 MATLAB程序及结果 (3)3.3 结果分析 (8)四、总结 (9)五、参考文献 (10)5一、设计目的意义1.1 绪论语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。
随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。
1.2 设计目的(1)掌握数字信号处理的基本概念,基本理论和基本方法。
(2)熟悉离散信号和系统的时域特性。
(3)掌握序列快速傅里叶变换方法。
(4)学会MATLAB的使用,掌握MATLAB的程序设计方法。
(5)掌握利用MATLAB对语音信号进行频谱分析。
(6)掌握滤波器的网络结构。
(7)掌握MATLAB设计IIR、FIR数字滤波器的方法和对信号进行滤波的方法。
1.3 意义语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。
通过语言相互传递信息是人类最重要的基本功能之一。
语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。
语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。
语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。
1二、设计内容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)设计一个巴特沃思高通滤波器,通带范围包括语音信号,阻带频率设定为小于噪声信号频率。
2(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)带通滤波器性能指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('语音信号频谱图');运行程序得到语音信号时域和频谱图形如图一所示:4图一原始信号时域和频谱图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 巴特沃斯带通滤波器滤波器图如图五所示。