基于matlab的语音信号滤波处理
指导教师:日期:《数字信号处理》课程设计题目:基于matlab的语音信号滤波处理姓名:院系:电子信息工程系专业:电子信息工程专业班级:092学号:指导教师:2012年6 月基于matlab的语音信号滤波处理Xxx(电子信息工程学系指导教师:xxx)摘要:语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
文章中对录制的语音信号进行采样,分析其时域波形和频谱图。
再此基础加入高斯白噪声和正弦噪声,根据其频谱特性,给定数字滤波器的性能指标,并设计巴特沃斯低通滤波器,对语音信号进行滤波,得到滤波前后的信号幅频响应,对比滤波前后的语音波形和频谱。
关键词:Matlab;语音信号;傅里叶变换;信号处理;滤波器一、引言1.1、MATLAB简介Matlab是一套高性能的数值计算和可视化软件,它集数值分析、矩阵计算、信号处理和图形显示于一体,构成了方便、友好的用户界面环境。
MATLAB提供的信号处理(signal processing)工具箱函数, 为数字滤波器的设计和语音信号的处理提供了强有力的工具。
Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。
信号处理是Matlab重要应用的领域之一。
1.2、背景及意义语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。
通过语言相互传递信息是人类最重要的基本功能之一。
语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。
语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。
语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。
二、设计的目的及内容2.1、设计目的1、了解语音信号的产生、采集,能绘制语音信号的频率响应曲线及频谱图;2、学会用matlab对语音信号进行分析和处理;3、掌握用滤波器去除语音噪声的方法,观察去噪前后的语音信号。
2.2、研究内容本论文主要介绍的是的语音信号的简单处理。
本论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab7.1环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。
本文利用windows下的录音机录制一段自己的话音,时间在3s内左右。
然后在matlab软件平台下,对语音信号进行加噪之后,设计滤波器进行滤波处理。
2.3、运行环境运行环境主要介绍了硬件环境和软件环境。
硬件环境:① 处理器:Inter Pentium 166 MX 或更高② 内存:512MB或更高③ 硬盘空间:40GB或更高④ 显卡:SVGA显示适配器软件环境:操作系统:Window 98/ME/2000/XP/72.4、开发环境开发环境主要介绍了本系统采用的操作系统、开发语言。
(1) 操作系统:Windows 7(2) 开发环境:Matlab 7.1三、设计原理3.1、语言的录入及处理在MATLAB软件平台下,利用函数wavread()对语音信号采集,并记录采样频率和采样点数。
将语音信号转换成计算机能够运算的有限长序列。
用FFT(傅里叶变换)对其作谱分析。
对信号添加噪声,然后通过窗函数法设计滤波器滤掉该语音信号的噪声,对比滤波前后的语音波形和频谱。
3.2、时域信号的FFT分析FFT即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。
函数FFT用于序列快速傅立叶变换,其调用格式为y=fft(x),其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT 且和x相同长度;若x为一矩阵,则y是对矩阵的每一列向量进行FFT。
如果x长度是2的幂次方,函数fft执行高速基-2FFT算法,否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。
函数FFT的另一种调用格式为y=fft(x,N),式中,x,y意义同前,N为正整数。
函数执行N点的FFT,若x为向量且长度小于N,则函数将x补零至长度N;若向量x的长度大于N,则函数截短x使之长度为N;若x 为矩阵,按相同方法对x进行处理。
3.3、数字滤波器设计原理数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。
数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。
但是这个高效率是以相位的非线性为代价的。
选择性越好,则相位非线性越严重。
相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5~10倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位较正,同样要大增加滤波器的节数和复杂性。
整体来看,IIR滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位;FIR滤波器没有稳定性问题,线性相位,但阶数多,延迟大。
四、设计过程及调试分析4.1、语音信号的采集1、利用windows下的录音机录制一段自己的话音,时间在3s内左右。
然后在matlab软件平台下,利用wavread函数对语音信号进行采样,得到的采样频率和采样点数为:File=‘xinhao.wav’运用函数[y,fs,bits]=wavread(file);可以得到:采样频率:fs = 16000Hz bits =16 Ts=2693ms采样点数 N=Ts*fs N=2.693*16000= 430882、对原始信号进行采集并播放语音信号,其程序如下所示:clc;clear;%%%%%%%%%%%%%%%%原语音信号提取及参数设置%%%%%%%%%%%%%%%%%%%%%%%File='xinhao.wav';%.wav语音文件的文件名fs=16000;%采样频率nbits=16;%采样点数[y0,fs,nbits]=wavread(File);%读入声音y=y0-mean(y0);%消除直流分量N=length(y);%计算其长度sound(y,fs,nbits);%播放语音信号4.2、语音信号的频谱分析首先画出语音信号的时域波形,然后对语音信号进行频谱分析。
在Matlab 中, 可以利用函数fft 对信号进行快速傅里叶变换, 得到信号的频谱特性。
其程序如下:%%%%%%%%%%%%%%%%%%原语音信号的时域波形%%%%%%%%%%%%%%%%%%%%%%%%%figure(1)subplot(1,2,1)plot(y)%画出语音信号的时域波形axis tight;%缩小图形显示范围xlabel('时间t') ylabel('音量y')title('语音信号的时域波形图') grid on;%%%%%%%%%%%%%%%原语音信号的频谱特性%%%% Y=fft(y,N)%对语音信号进行N 点快速傅里叶变换 Hy=fftshift(Y)%平移以零频率为中心 subplot(1,2,2)plot(-fs/2:fs/N:fs/2-fs/N,abs(Hy)) xlabel('频率f') ylabel('幅度|Hy|')title('语音信号的频谱特性') grid on;pause(2) 对其原始信号进行调试,其时域波形和频谱如下图1所示:图1 原始语音信号波形及频谱图4.3、加入噪声信号4.3.1、加正弦噪声并对其进行频谱分析,程序如下: t=-fs/2:fs/N:fs/2-fs/N;noise=1*sin(50*pi*2*t);%产生频率为50Hz 的正弦信号噪声 y1=noise'+y;%与原始信号进行叠加,画图程序(略) %%%%%%%%%%原语音信号加入正弦信号噪声后的频谱图%%%%% Y1=fft(y1,N)%对语音信号进行N 点快速傅里叶变换 Hy2=fftshift(Y1)%平移以零频率为中心 subplot(1,2,2)plot(-fs/2:fs/N:fs/2-fs/N,abs(Hy2))%取半个周期,频谱间隔(分辨率)为fs/N 对其调试,得出加入正弦噪声的时域信号和频谱如下图2所示:x 104-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5时间t音量y语音信号的时域波形图x 104020406080100120140160180频率f幅度|H y |语音信号的频谱特性图2、加入正弦噪声的时域和频谱波形图4.3.2、加高斯白噪声并对其进行频谱分析,程序如下(简略)y2=awgn(y,38)%产生高斯白噪声并将之加入原语音信号中sound(y2,fs,nbits);%%%%%%原语音信号加入高斯白噪声后的频谱图%%%%%Y2=fft(y2,N)%对语音信号进行N点快速傅里叶变换Hy4=fftshift(Y2)subplot(1,2,2)plot(-fs/2:fs/N:fs/2-fs/N,abs(Hy4))%取半个周期,频谱间隔(分辨率)为fs/N对其调试,得出加入高斯白噪的时域信号和频谱如下图3所示:图3 加入高斯白噪的时域信号和频谱波形4.4、设计滤波器4.4.1、设计巴特沃斯低通滤波器性能指标,程序如下所示:%%%%%%%%%%%%%%%%%%%%%设计巴特沃斯滤波器的技术指标/频率响应特性%%%%%%%%%%fs0=0.05*1000;fp0=0.35*1000;%设置技术指标阻带截止频率、通带边界频率rp0=10;rs0=20;%通带最大衰减、阻带最小衰减wp0=2*fp0/fs;ws0=2*fs0/fs;[N1,wc]=buttord(wp0,ws0,rp0,rs0,'s');[B,A]=butter(N1,wc,'low'); %计算数字滤波器(低通滤波器)系统函数[h,w]=freqz(B,A,N); %计算频域响应figure(4)plot(w/pi,20*log10(abs(h)))xlabel('频率w/pi')ylabel('幅度20lg|h|')title('滤波器的频率响应特性')grid on;调试波形图如下图4所示:图4 巴特沃斯低通滤波器频率特性响应波形图4.4.2、用设计的滤波器巴特沃斯滤波器进行滤波,程序如下所示:LBG1=filter(B,A,y2)sound(LBG1,fs,nbits)%正向播放语音(滤波前语音信号的时域和频谱特性的波形略)以下程序为滤波后的时域波形图和频谱特性:subplot(2,2,3)plot(LBG1)xlabel('时间t')ylabel('音量LBG1')title('滤波后语音信号的时域波形图') grid on;调试波形如下图5所示:subplot(2,2,4)plot(-fs/2:fs/N:fs/2-fs/N,abs(LBG1)) xlabel('频率f')ylabel('幅度|LBG1|')title('滤波后语音信号的频谱特性') grid on;pause(4)图5 滤波前后的时域和频谱特性波形五、结果分析Matlab是一套高性能的数值计算和可视化软件。
基于MATLAB的语音滤波实验设计
A e in fra dofl re p rme tb s d o d sg o u i i e x e i n a e n MAT AB t L
LEIXue tn —a g, XU o x Hu — i
( eto P yis ungn om l nvrt,H b i u nzo 30 0 h a D p.f hs ,H a gagN r a U i sy u e H aghu4 80 ,C i ) c ei n
维普资讯
! =! 堑
CNl l一2 3 / 04T
实
验
技
术
与
管
理
第2 4卷
第 4期
20 0 7年 4月
E p rme tlTe h o o y a d Ma a e n xe i n a c n l g n n g me t
Vo . 4 No 4 Ap .2 07 12 . r 0
基 于 MA L B的语 音 TA 滤 波 实验 设 计
雷学堂 ,徐 火希
( 冈师范学院 物 电系
要: 利用 MA L B的声音处理 函数作为数据接 口,并利 用多媒体播放 器作 为交互界面 ,设计 了一组 语 TA
音信号滤波实验 ,目的在于通过对比滤波前后 的语音效果来加深对数字信 号处理 的认识 。 关键词 :M T A A L B;数字信号处理 ;语音滤 波 中图分类号 : P9 T3 1 文献标识码 : B 文章 编号 :10 -9 6 2 0 )4 0 3 — 4 0 24 5 (0 7 0 — 0 8 0
理解数字信号处理中抽象数学运算的现实物理意义
很 有 帮助 。
1 语音信 号时域滤波实验的设计
由于 MA L B是 以 矩 阵 的 形 式 组 织 数 据 的 , TA 对 于单 声道 的语音 数据 在 MA L B中是一 维 数组 。 TA MA L B中有 2个 处 理 . a 式 语 音 的 函数 ,一 TA w y格 个 是将 . a 语 音 流 文件 转 换 为 数 组 格 式 数据 的 函 wy
如何利用Matlab进行语音降噪
如何利用Matlab进行语音降噪引言:随着科技的不断进步,语音处理技术得到了广泛应用。
在日常生活中,我们经常会遇到因环境噪音而影响语音质量的情况,比如通话中的噪音干扰、音频文件中的杂音等。
而语音降噪技术的出现,为我们解决这些问题提供了更加便捷和高效的方法。
本文将着重介绍如何利用Matlab进行语音降噪的方法和步骤。
一、了解语音降噪的原理在进行语音降噪之前,我们需要先了解语音降噪的原理。
语音降噪的核心目标是通过滤波等处理方法,尽可能减小或去除语音信号中的噪音成分,使得经过降噪处理后的语音信号更加纯净和清晰。
常用的语音降噪方法包括时域滤波法、频域滤波法等。
而在Matlab中,我们通常使用基于频域滤波的方法来实现语音降噪。
二、准备工作在使用Matlab进行语音降噪之前,首先需要准备好相关的工具和材料。
我们需要安装Matlab软件,并确保具备一定的编程能力和相关的信号处理知识。
此外,还需要一段包含噪音的语音信号作为我们的输入数据,方便我们进行处理和测试。
三、确定降噪算法在进行语音降噪之前,我们需要选择合适的降噪算法。
降噪算法的选择至关重要,直接影响到降噪效果的好坏。
常用的降噪算法有小波降噪、谱减法、模糊集合等。
在Matlab中,我们可以根据实际情况和特定需求选择适合的降噪算法。
四、准备输入数据在进行语音降噪之前,我们需要将相关的语音数据导入到Matlab中进行处理。
可以通过直接录制语音、导入.wav格式的音频文件等方式进行数据的准备。
在准备数据时,需要注意选择含有噪音的语音信号作为输入数据,以便进行后续的降噪处理。
五、实施降噪处理通过上述步骤的准备工作,我们可以开始进行语音降噪处理。
在Matlab中,我们可以根据选择的降噪算法,编写相应的代码进行处理。
具体实施过程中,可以结合Matlab提供的信号处理工具和函数,如fft、ifft、滤波器设计等进行降噪处理。
六、优化和调整在进行语音降噪处理之后,需要对结果进行优化和调整。
基于MATLAB的语音信号处理与识别系统设计与实现
基于MATLAB的语音信号处理与识别系统设计与实现一、引言语音信号处理与识别是人工智能领域中的重要研究方向之一,随着深度学习和人工智能技术的不断发展,基于MATLAB的语音信号处理与识别系统设计与实现变得越来越受到关注。
本文将介绍如何利用MATLAB进行语音信号处理与识别系统的设计与实现。
二、MATLAB在语音信号处理中的应用MATLAB作为一种强大的科学计算软件,提供了丰富的工具箱和函数库,可以方便地进行语音信号处理。
在语音信号处理中,MATLAB可以用于语音信号的采集、预处理、特征提取、模型训练等各个环节。
通过MATLAB提供的工具,可以高效地对语音信号进行分析和处理。
三、语音信号处理流程1. 语音信号采集在语音信号处理系统中,首先需要对语音信号进行采集。
通过MATLAB可以实现对声音的录制和采集,获取原始的语音信号数据。
2. 语音信号预处理采集到的语音信号数据通常包含噪声和杂音,需要进行预处理以提高后续处理的准确性。
预处理包括去噪、降噪、滤波等操作,可以有效地净化语音信号数据。
3. 特征提取在语音信号处理中,特征提取是一个关键步骤。
通过MATLAB可以提取出语音信号的频谱特征、时域特征等信息,为后续的模式识别和分类打下基础。
4. 模型训练与识别利用MATLAB可以构建各种机器学习模型和深度学习模型,对提取出的特征进行训练和识别。
通过模型训练,可以实现对不同语音信号的自动识别和分类。
四、基于MATLAB的语音信号处理与识别系统设计1. 系统架构设计基于MATLAB的语音信号处理与识别系统通常包括数据采集模块、预处理模块、特征提取模块、模型训练模块和识别模块。
这些模块相互配合,构成一个完整的系统架构。
2. 界面设计为了方便用户使用,可以在MATLAB中设计用户友好的界面,包括数据输入界面、参数设置界面、结果展示界面等。
良好的界面设计可以提升系统的易用性和用户体验。
五、基于MATLAB的语音信号处理与识别系统实现1. 数据准备首先需要准备好用于训练和测试的语音数据集,包括正样本和负样本。
基于matlab的语音信号的基本处理
专题研讨四、信号与系统综合应用确定题目(根据个人兴趣、结合实际确定题目,可从下面参考题目中选择,也可自由确定):基于matlab的语音信号的基本处理参考题目:题目1:含噪信号滤波题目2:双音多频信号的产生与检测题目3:磁盘驱动系统仿真题目4:卡尔曼滤波器的应用题目5:应用反馈扩大放大器的带宽(以上只是本专题的部分题目)开题报告课题实施过程记录包括仿真程序、仿真结果、结果分析、方案完善等 ○1语音信号的制作及描述 1) 制作语音文件:用windows 录音机录制一小段语音文件"333.wav ”,内容为"信号与信息系统",由一同学播音. 2) 用matlab 播放”333.wav ”仿真程序:3) [y,Fs,bits]=wavread('333.wav'); sound(y,Fs);pause;4) 绘画出语音文件的时域和频域波形: 仿真程序:[y,Fs,bits]=wavread('333.wav'); plot(y);仿真结果:0123456789x 104-0.8-0.6-0.4-0.20.20.40.6结果分析:随着时间变化,声音能量图形 方案完善:1.时间轴有问题,与实际的时间不一样.2.语音信号的频域分析更清楚.仿真程序:[y,Fs,bits]=wavread('333.wav'); y=y(:,1);sLength=length(y); Y = fft(y,sLength);Pyy = Y.* conj(Y) / sLength; halflength=floor(sLength/2); f=Fs*(0:halflength)/sLength; figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)'); t=(0:sLength-1)/Fs; figure;plot(t,y);xlabel('Time(s)');仿真结果:0.51 1.52 2.5x 104Frequency(Hz)00.20.40.60.81 1.2 1.4 1.6 1.82-0.8-0.6-0.4-0.20.20.40.6Time(s)结果分析:频域分析是从另一个角度观察信号;语音信号的一般频域范围"200~2000"Hz ○2语音信号抽取及倍插仿真程序:[y,Fs,bits]=wavread('111.wav'); sound(y,Fs/2);pause;[y,Fs,bits]=wavread('111.wav'); sound(y,2*Fs);pause;仿真结果与分析:以Fs/2及2*Fs 播放的语音信号存在失真, 方案完善:需要做出波形,做更直观的观察. ○3语音信号的加噪1)语音信号加高频噪音及播放. 仿真程序:[y,Fs,bits]=wavread('333.wav'); y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.5;d=A*cos(2*pi*f*t)';y=y+d;sound(y,Fs);仿真结果:播放时伴有尖锐的”吱吱”声.结果分析:由于加入高频成分余弦信号,信号叠加后出现了尖锐的噪音.2)加噪后的语音信号的时域和频域波形.仿真程序:[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;sLength=length(y1);Y = fft(y1,sLength);Pyy = Y.* conj(Y) / sLength;halflength=floor(sLength/2);f=Fs*(0:halflength)/sLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');仿真结果:00.20.40.60.81 1.2 1.4 1.6 1.82-0.8-0.6-0.4-0.20.20.40.6Time(s)0.51 1.522.5x 10405101520253035404550Frequency(Hz)结果分析:时域波形跟加噪前没有什么明显的区别.在频域上我们发现有一个近6000Hz的高频成分,这是产生的噪音的根本所在.方案完善:运用subplot将加噪前和加噪后的时域和频域波形进行对比,效果会更好.○4数字滤波这一部分我们学习了函数BUTTER,进行了最简单的数字滤波.[b,a]=butter(N,wc);代表数字低通滤波器,wc代表归一化频率(0<wc<=1,等于一时为奈奎斯特频率);N为滤波器的阶数.y2=filter(b,a,y1);对信号y1进行巴特滤波,滤波器为[b,a]系统滤波后信号的效果播放.仿真程序:[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sound(y2,Fs);仿真结果:原先的噪声消失,语音信号变回原样.滤波器为低通滤波器,滤去高频成分.方案完善:1.画出滤波后的时域和频域波形2. 对滤波器进行系统分析1.画出滤波后的时域和频域波形仿真程序:[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;plot(t,y);xlabel('Time(s)');N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1); sLength1=length(y2); Y1 = fft(y2,sLength1);Pyy = Y1.* conj(Y1) / sLength1; halflength1=floor(sLength1/2); f1=Fs*(0:halflength1)/sLength1; figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)'); t=(0:sLength-1)/Fs; figure;plot(t,y2);xlabel('Time(s)');仿真结果:00.51 1.52 2.5x 1040.511.522.53Frequency(Hz)00.20.40.60.81 1.2 1.4 1.6 1.82-0.8-0.6-0.4-0.20.20.40.6Time(s)结果分析:基本效果良好,有少许失真. 2. 对滤波器进行系统分析 仿真程序:w=linspace(0,6000,10000); wc=[0.01 0.07]; N=2;[b,a]=butter(N,wc); H=freqz(b,a,w); plot(w,abs(H)); axis([0 2500 0 1.5]);仿真结果:010002000300040005000600000.511.5○3RC 模拟滤波(物理形式熟悉) [y,Fs,bits]=wavread('333.wav');%¶Á³öÐźţ¬²ÉÑùÂʺͲÉÑùλÊý¡£y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.5;d=A*cos(2*pi*f*t)';y1=y+d;RC=0.001;b=1/RC;a=[1,1/RC];sys=tf(b,a);y2=lsim(sys,y1,t);sound(y2,Fs);结果:效果良好,声音恢复.RC 滤波器的波特图RC=0.001;w=linspace(0,2,1024);b=1/RC;a=[1,1/RC];g=tf(b,a);bode(g);xlabel('w');ylabel('H(jw)');-40-30-20-100M a g n i t u d e (d B)101102103104105H (j w ) (d e g )Bode Diagramw (rad/sec)总结报告摘要:利用所学的知识对实际语音信号进行时域,频域分析;体会信号的抽样定理,即信号的抽取和倍插;运用信号叠加对信号进新加噪(高频),并用数字滤波器butter 滤去高频成分去噪;课题原理框图:课题最终仿真程序:○1语音信号的制作及描述; [y,Fs,bits]=wavread('333.wav');sound(y,Fs);pause;[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);Y = fft(y,sLength);Pyy = Y.* conj(Y) / sLength;halflength=floor(sLength/2);f=Fs*(0:halflength)/sLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');t=(0:sLength-1)/Fs;figure;plot(t,y);xlabel('Time(s)');○2语音信号抽取及倍插; [y,Fs,bits]=wavread('111.wav');sound(y,Fs/2);pause;[y,Fs,bits]=wavread('111.wav');sound(y,2*Fs);pause;○3语音信号的加噪;[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sound(y2,Fs);[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;sLength=length(y1);Y = fft(y1,sLength);Pyy = Y.* conj(Y) / sLength;halflength=floor(sLength/2);f=Fs*(0:halflength)/sLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');○4滤波器.[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sound(y2,Fs);[y,Fs,bits]=wavread('333.wav');y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.05;d=A*cos(2*pi*f*t)';y1=y+d;plot(t,y);xlabel('Time(s)');N=2;wc=[0.01,0.07];[b,a]=butter(N,wc);y2=filter(b,a,y1);sLength1=length(y2);Y1 = fft(y2,sLength1);Pyy = Y1.* conj(Y1) / sLength1;halflength1=floor(sLength1/2);f1=Fs*(0:halflength1)/sLength1;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');t=(0:sLength-1)/Fs;figure;plot(t,y2);xlabel('Time(s)');w=linspace(0,6000,10000);wc=[0.01 0.07];N=2;[b,a]=butter(N,wc);H=freqz(b,a,w);plot(w,abs(H));axis([0 2500 0 1.5]);[y,Fs,bits]=wavread('333.wav');%¶Á³öÐźţ¬²ÉÑùÂʺͲÉÑùλÊý¡£y=y(:,1);sLength=length(y);t=(0:sLength-1)/Fs;f=50000;A=0.5;d=A*cos(2*pi*f*t)';y1=y+d;RC=0.001;b=1/RC;a=[1,1/RC];sys=tf(b,a);y2=lsim(sys,y1,t);sound(y2,Fs);RC=0.001;w=linspace(0,2,1024);b=1/RC;a=[1,1/RC];g=tf(b,a);bode(g);xlabel('w');ylabel('H(jw)');课题成果:1)了解了语音信号matlab处理的基本过程及思路,重点复习了波形绘制,系统响应;2)体会到理论与实践的结合,语音信号的处理和实际生活接近,趣味性强.本课题还存在哪些问题?1)对matlab的一些函数比较模糊,比如信号的长度估计,butter滤波函数的运用2)对于信号的滤波只是在很理想的高频情形下,过于单一简单,对实际的噪声滤波还有很多需要完善的.研究性学习自我体会与评价通过研究性学习你在哪些方面有所收获?(如学习方法、合作精神、探索精神、创新意识等)。
基于Matlab的语音信号数字滤波
基 于语 音 的产 生 和语 音 感 知 的研 究 ; 二 是 将 语 音 信 号 作 为一 种 信 号 进 行 处 理 , 如利用数字滤波 、 快 速 傅 里 叶变换 等 方法 | 2 J 。笔 者 将利 用 Ma t l a b软件 , 设 计 数 字滤 波器 对语 音 信 号 做 降 噪处 理 , 达 到 提 高 语
内容 。 对语音 信 号处 理 的方 法 主 要 包 括 两 方 面 : 一 是
式中: ( ) , Y ( z ) 分 别 为输入 ( T t ) 和输 出 Y ( n ) 的z 在频 率域 内 , 输入 和输 出存 在下 列关 系
Y ( j 6 0 )=H( j ) X( j 6 0 ) ( 3 )
【 关键词 】M a t l a b ; 数字滤波器 ; 语音信号处理 ; 噪声 【 中图分类号 】T B 9 1 2 【 文献标 志码 】A
Di gi t a l Fi l t e r o f S pe e c h S i g na l Ba s e d o n M a t l ab
2 数 字滤 波 器 原 理 概 述及 设 计 方 法
2 . 1 数 字滤 波器 的 工作原 理
到各种噪声的干扰。例如 , 有线电话和无线通信中的 回波 噪声¨ J 、 工频 干 扰 和 一 些 随 机 噪声 。这些 噪声
严重影 响 了人们 的通话 质 量 。长期 在强 噪 声 的环境 下生活 和工作 , 还会 危害人 的身心健康 。
法设计 F I R 数 字 滤波 器 和 用 双 线性 变化 法 设 计 I I R 数 字 滤波 器 , 并对语音信号进行滤 波, 去 除 噪 声 。 通 过 分 析 滤 波 后 信 号 的频 谱 图 , 简 单 而 有效 地 阐述 了两种 数 字滤 波 器 在 信 号 处 理 中的 优 势 。
语音信号处理
2设计原理
2.1卷积运算
卷积和乘积运算在频域和时域是一一对应的,两个信号在时域的卷积可以转化为求两者在频域的乘积后再反变换,同理在频域的卷积等时域的乘积。而信号的频域求解有快速傅里叶FFT算法。
卷积与傅里叶变换有着密切的关系。利用一点性质,即两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,能使傅里叶分析中许多问题的处理得到简化。
5.2双线性变换法设计IIR滤波器
5.3窗函数设计FIR滤波器
6心得与体会
7参考文献
1绪论
数字滤波器可以在语音信号分析中对声音进行处理,可以滤出不要的噪声,使声音更加清楚。本设计通过对语音信号进行采集,对语音信号进行时域与频域的分析,然后给语音信号加上噪声,通过切比雪夫滤波器进行高通、低通、带通的滤波。通过汉宁窗对声音进行过滤。然后对声音进行回放,对比前后声音信号的差异。实现滤波功能。理论依据:根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理;时域信号的FFT分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较),阐明设计原理。信号采集:采集语音信号,并对其进行FFT频谱分析,画出信号的时域波形图和频谱图。构造受干扰信号并对其进行FFT频谱分析:对所采集的语音信号加入干扰噪声,对语音信号进行回放,感觉加噪前后声音的变化,分析原因,得出结论。并对其进行FFT频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析,阐明原因,得出结论。数字滤波器设计:根据待处理信号特点,设计合适数字滤波器,绘制所设计滤波器的幅频和相频特性。信号处理:用所设计的滤波器对含噪语音信号进行滤波。对滤波后的语音信号进行FFT频谱分析。画出处理过程中所得各种波形及频谱图。对语音信号进行回放,感觉滤波前后声音的变化。比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行频谱分析,阐明原因,得出结论。
(完整版)基于MATLAB的FIR滤波器语音信号去噪
*****************实践教学******************兰州理工大学计算机与通信学院2013年春季学期《信号处理》课程设计题目:基于MATLAB的FIR滤波器语音信号去噪专业班级:姓名:学号:指导教师:成绩:摘要本次课程设计是基于MATLAB的FIR滤波器语音信号去噪,在设计过程中,首先录制一段不少于10秒的语音信号,并对录制的信号进行采样;其次使用MATLAB会出采样后的语音信号的时域波形和频谱图;然后在给原始的语音信号叠加上噪声,并绘出叠加噪前后的时域图及频谱图;再次设计FIR滤波器,针对语音信号的性质选取一种适合的窗函数设计滤波器进行滤波;最后对仿真结果进行分析。
设计出的滤波器可以满足要求。
关键词: FIR滤波器;语音信号;MATLAB仿真目录一 FIR滤波器设计的基本原理 (1)1.1滤波器的相关介绍 (1)1.1.1数字滤波器的概念 (1)1.1.2 IIR和FIR滤波器 (1)1.2利用窗函数法设计FIR滤波器 (1)1.2.1窗函数法设计FIR滤波器的基本思想 (1)1.2.2窗函数法设计FIR滤波器的步骤 (2)1.2.2窗函数法设计FIR滤波器的要求 (2)1.2.3常用窗函数的性质和特点 (3)1.2.4 语音处理中的采样原理 (3)二语音信号去噪实现框图 (5)三详细设计 (7)3.1 信号的采集 (7)3.2 语音信号的读入与打开 (7)3.3 语音信号的FFT变换 (8)3.4含噪信号的合成 (9)3.5 FIR滤波器的设计 (10)3.6 利用FIR滤波器滤波 (11)3.7 结果分析 (14)总结 (15)参考文献 (16)附录 (17)致谢 (21)一 FIR滤波器设计的基本原理1.1滤波器的相关介绍1.1.1数字滤波器的概念数字滤波器(Digital Filter,简称为DF)是指用来对输入信号进行滤波的硬件和软件。
所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字信号处理课程设计--基于 MATLAB 的语音去噪处理
数字信号处理课程设计课程名称数字信号处理基于MATLAB 的语音去噪处理题目名称专业班级13级通信工程本一学生姓名学号指导教师二○一五年十二月二十七日引言滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。
利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。
课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。
通过理论推导得出相应结论,再利用MATLAB 作为编程工具进行计算机实现。
在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。
通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。
关键词数字滤波器 MATLAB 窗函数法巴特沃斯切比雪夫双线性变换目录1 绪论 (4)2 课程设计内容 (5)3 课程设计的具体实现 (5)3.1 语音信号的采集 (4)3.2 语音信号的时频分析 (4)3.3 语音信号加噪与频谱分析 (6)3.4 利用双线性变换法设计低通滤波器 (8)3.5 用滤波器对加噪语音信号进行滤波 (9)3.6 分析滤波前后语音信号波形及频谱的变化 (10)3.7回放语音信号 (10)3.8小结 (11)结论 ···········································································错误!未定义书签。
(完整word版)基于matlab的语音信号分析与处理
基于matlab的语音信号分析与处理摘要:滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。
Matlab功能强大、编程效率高, 特别是Matlab具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。
基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。
使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR 数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。
关键词:数字滤波器;MATLAB;切比雪夫Abstract:Filter design in digital signal processing plays an extremely important role, FIR digital filters and IIR filter is an important part of filter design. Matlab is powerful, programming efficiency, Matlab also has a particular signal analysis toolbox, it need not have strong programming skills can be easily signal analysis, processing and design. MATLAB based on the noise issue speech signal processing design and implementation of digital signal processing integrated use of the theoretical knowledge of the speech signal plus noise, time domain, frequency domain analysis and filtering. The corresponding results obtained through theoretical derivation, and then use MATLAB as a programming tool for computer implementation.Implemented in the design process, using the windowfunction method to design FIR digital filters with Butterworth, Chebyshev and bilinear Reform IIR digital filter design and use of MATLAB as a supplementary tool to complete the calculation and graphic design Drawing.Keywords:digital filter; MATLAB; Chebyshev语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
掌握Matlab语音信号处理的基本原理
掌握Matlab语音信号处理的基本原理Matlab是一种流行的程序设计语言和工具,广泛应用于信号处理领域。
在音频处理中,Matlab可以帮助我们实现各种音频效果、音频分析和音频信号处理算法。
本文将介绍Matlab语音信号处理的基本原理和应用。
一、语音信号的数学表示语音信号是一种连续时间的信号,可以通过采样将其离散化。
在Matlab中,我们可以使用采样率(Sampling rate)来表示每秒采样的样本数。
通常情况下,语音信号的采样率为8000Hz、16000Hz或者更高。
我们可以使用Matlab的`audioread()`函数将音频文件读取为一个向量,并使用`sound(y, Fs)`函数将其播放。
二、语音信号的时域分析时域分析是一种描述信号在时间上变化的方法。
对于语音信号,我们可以使用Matlab的`plot`函数将其在时间轴上绘制出来。
通过查看语音信号的时域波形,我们可以观察到语音信号的持续时间、音调、强度等特征。
三、语音信号的频域分析频域分析是一种描述信号在频率上变化的方法。
对于语音信号,我们可以使用傅里叶变换将其从时域表示转换为频域表示。
在Matlab中,我们可以使用`fft`函数来计算信号的傅里叶变换,并使用`plot`函数将其绘制成频谱图。
频谱图可以帮助我们观察语音信号的共振峰、频率成分等特征。
四、语音信号的滤波处理滤波是一种常用的信号处理方法,可以用来增强或者改变信号的特征。
在语音信号处理中,滤波可以用于去除噪声、增强谐波等。
在Matlab中,我们可以使用`filter`函数来设计和应用各种数字滤波器。
滤波器的设计可以通过指定滤波器的系数或者用滤波器设计函数来自动完成。
五、语音信号的特征提取语音信号的特征提取是一种将语音信号转换为一组数学特征的方法。
这些特征可以用于语音识别、语音合成等应用。
在Matlab中,我们可以使用各种特征提取函数来计算音频信号的特征,如基频、共振峰频率等。
这些特征提取函数通常基于统计分析、傅里叶变换等算法进行计算。
