文档库 最新最全的文档下载
当前位置:文档库 › 语音信号FFT分析

语音信号FFT分析

语音信号FFT分析
语音信号FFT分析

播码按键语音信号的FFT

分析

摘要: FFT 也叫快速傅氏变换,是离散傅氏变换的快速算法,它是根据

离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。本文简要分析了FFT 算法的过程以及对电话按键音的不同频率的时域分析和频域分析波形的应用实例。

关键词:FFT ;MATLAB;按键音;时域;频域;频谱结构

一、FFT 的概念

FFT 也叫快速傅里叶变换,是离散傅里叶变换的快速算法。

二、FFT 的工作原理

由于严格按照数学推导来阐述FFT 的运算原理会带来许多公式编辑的困难,在这里简要的用文字语言对按时间抽取法的基2算法加以说明。

DFT 的运算中,是利用序列和W N nk 按照N 为序列索引分别加权求和而得到的。我们单独分析W N nk 的 特性可以看出其具有对称性和周期性。因此,我们利用这种

性质可以将DFT 变换成一系列的迭代运算来完成整个DFT 运算过程。

整个过程中:

1、我们利用其奇偶性将一个N 点DFT 运算分成N/2点DFT 运算,这样便完成了一个N 点DFT 的前一半DFT 运算。

2、一个N 点DFT 运算的后一半运算可以利用系数的周期性:

2/N W r (k+N/2)=W N/2

rk

和算式

N W N/2+K =N W -k

来推导完成。最后可以得到一个N 点DFT 的全部运算式:

N W X K X +=)k ()(1k )(

k 2X

N W K X N X -=+)(2/k 1)(k )k (2X

其中:

k=0,1,2......N/2—1

3、分解后的序列做DFT 运算时任然可以继续按照这种方法再次分为N/2点DFT 运算,如果按照这种方法继续进行下去,最终将得到一个运算单元只含2点的DFT 运算。

三、FFT节约的计算量计算

在按时间抽取法中,对于一个N点的序列,所要完成的乘法次数为:

=

N

(N

2/

log

m2)

要完成的加法次数为:

log

a=

N2

N

而直接DFT运算复乘法数为N2,假设计算1024点DFT时,则FFT和DFT计算的复乘法数目比值是205。因此,FFT算法节约了许多的运算量。

四、一串播码按键语音信号的FFT分析

1、按键音的来源

在本次实验中,采用的被分析按键音来自于普通手机的播码音,通过MP4录制后保存为W A V的音频格式,然后上传至PC机。

由于W A V格式又分为PCM和IMA ADPCM两种不同的格式,MATLAB中wavread函数只能对PCM格式的wav进行处理,而我用的MP4恰好是非PCM格式的wav文件,因此,由MP4录制的语音经过Adensoft Audio MP3 converter格式转换器转换后得到MATLAB能打开的PCM格式W A V文件。将其命名为“q”。

2、语音文件的打开方法

将得到的命名为“q”的W A V文件保存在MA TLAB文件下的WORK文件夹以下,然后用函数:

[y,Fs,bits]=wavread('q.wav')

能够打开这一串录制好的语音信号。其中,y代表着语音信号的变量名;FS是采样率,BITS是采样位数。q.wav是保存的源语音文件。wavread是函数名。当然,我们也可以回放这一串语音信号,通过调用sound函数即可:

sound(y,Fs,bits)

3、语音信号的时域波形显示

通过调用MA TLAB中的显示命令可以将这串语音信号的时域波形显示出来。通过编辑,从读取语音信号到时域显示部分的MATLAB语言程序如下:

[y,Fs,bits]=wavread('q.wav');%读取W A V语音文件并命名为y;

sound(y,Fs,bits);%回放语音一次;

figure;%产生一个新界面;

plot(y);%绘制时域波形;

注:由于这里的输入法不同,所产生的ASICALL码是不一样的,因此复制到MATLAB 里面是不被通过的,应重新输入才可。

通过运算,得到的原始时域波形如下图所示:

此时横坐标的长度是语音信号的名称y的数据序列长度,纵坐标的值是语音信号y的每一个序列值所对应的值得大小。其中可以看出录音一共产生了10次幅度突升的大集合,其实也正对应着0,1,2,3、、、9等10个数字键的按入。最后的一点幅度是关闭按钮时产生的噪音,可能会对分析的频谱产生噪音污染,但其总体功率不大,任然可以分辨出来。

录音信号的时域波形

采用以下程序处理后可以把横轴时间单位改为s:

n=length(y); %取y数据的长度;

t=(0:n-1)/Fs; %求时间单位s的运算公式;

plot(t,y);xlabel(‘s’);title(‘时域波形图’)%绘制以时间单位s的时域波形;

这样处理后的波形如下图所示:

换算为时间单位的时域波形图

4、语音信号的频域分析

在这里,我们采用快速傅里叶变换即FFT分析产生频谱结构的可视化界面,只需要调用相应的函数fft即可:

Y=fft(y);

做频谱分析并且显示的程序如下:

x=fft(y);%完成FFT运算,x即运算后的数组;

Y=abs(x);%对FFT运算后的数组x取绝对值,得到幅度值;

figure;%产生新界面;

plot(Y);title(‘原始信号幅度值’);%绘制幅度值图形;

经过分析后的时域幅度值波形如下图所示:

录音信号的频域波形图

由图中可知,此时得到的频域波形图是对称的并且由于全部显示没有拉开间距,经过以下程序处理后得到的波形将有所改观:

W=fftshift(Y);%移位处理,然后以0为中心;

f=linspace(—Fs/2,Fs/2,n);%设置显示范围并且将频域横轴改为以Hz为单位;

plot(f,W);xlabel(‘频率(Hz)’);title(‘频域波形图’);%绘制频域图形;

此时图形如下所示:

单位为Hz的频域波形图

由图中可知频率分量主要集中在500Hz和2KHz左右。

通过以下显示程序处理后会看到详细的频谱峰值,该显示处理程序主要是调用axis函数:

axis([100,2000,0,1600]);%设置横轴最小显示值和最大显示值分别为100Hz,2000Hz;纵轴最小显示值和最大显示值分别为0,1600;

截取波形图如下:

缩进频域波形图

由图中可以看出,目测峰值频率分量主要集中在700Hz、770Hz、850Hz、950Hz、1200Hz、1330Hz、1470Hz左右,共7个峰值点。这和双音多频数据表上的频率组合几乎完全重合。由于该串语音信号没有录制ABCD等按键,因此这里没有出现1630Hz左右的峰值点。这是通过图中的波形凭观测读取的,是一个大概值。

这样便对完整的分析一串语音信号的频谱建立起了程序分析基础。下面,我们分别分析0——9号键的频谱成分。

五、单个按键语音的频谱结构分析

1、1号键频谱结构

经过FFT运算,然后用语句:

axis([650,1300,0,1600])

加大缩进量后可以看到1号键的频谱结构如下图所示:

由图中可以看到其频谱结构主要由700Hz和1200Hz组成,这和理论值是非常接近的。如果用语句:

axis([697,1209,0,1600])

的话,将看到与理论值完整的重合。但由于这样的截图不太直观,因此没有截下来,下面也是一样不再阐述。

1号键的频谱结构

2、2号键的频谱结构

经过FFT运算后然后用语句:

axis([680,1350,0,1600])

加大缩进量后得到的2号键频谱结构如下图所示:

2号键的频谱结构

由图中可以看到2号键的频谱结构是由695Hz和1340Hz组成,和理论值697Hz和

1336Hz也非常的接近。

3、3号键的频谱结构

经过FFT运算后然后用语句:

axis([680,1500,0,1600])

加大缩进量后得到的3号键频谱结构如下图所示:

3号键的频谱结构

由图中可以看到3号键的频谱结构由700Hz和1480Hz构成,这只是目测数据具有误差的,和理论值697Hz和1477Hz已经非常的接近了。

4、4号键的频谱结构

经过FFT运算后然后用语句:

axis([750,1220,0,1600])

加大缩进量后得到的4号键频谱结构如下图所示:

4号键的频谱结构

由图中可以看到4号键的频谱结构由770Hz和1270Hz组成,和理论值770Hz和1209Hz 已经很接近。

5、5号键频谱结构

经过FFT运算后然后用语句:

axis([750,1350,0,1600])

加大缩进量后得到的5号键频谱结构如下图所示:

5号键频谱结构

由图中可以看到5号键频谱结构主要由770Hz和1340Hz组成,和理论值770Hz和1336Hz很接近。

6、6号键的频谱结构

经过FFT运算后然后用语句:

axis([750,1500,0,1500])

加大缩进量后得到的6号键频谱结构如下图所示:

6号键的频谱结构

由图中可以看到6号键的频谱结构主要由770Hz和1480Hz构成,和理论值770Hz和1477Hz也非常的接近。

7、7号键的频谱结构

经过FFT运算后然后用语句:

axis([800,1250,0,1000])

加大缩进量后得到的7号键频谱结构如下图所示:

7号键的频谱结构

由图中可以看到7号键的频谱结构由855Hz和1210Hz组成,这和理论值852Hz和1209Hz很接近。

8、8号键的频谱结构

经过FFT运算后然后用语句:

axis([800,1350,0,1600])

加大缩进量后得到的8号键频谱结构如下图所示:

8号键的频谱结构

由图中可以看到8号键的频谱结构主要由855Hz和1340Hz组成,和理论值852和1336Hz很接近。

9、9号键的频谱结构

经过FFT运算后然后用语句:

axis([800,1500,0,1100])

加大缩进量后得到的9号键频谱结构如下图所示:

9号键的频谱结构

由图中可以看到9号键的频谱结构主要由850Hz和1480Hz组成,和理论值852Hz和1477Hz很接近。

10、0号键的频谱结构

经过FFT运算后然后用语句:

axis([900,1350,0,600])

加大缩进量后得到的0号键频谱结构如下图所示:

0号键的频谱结构

由图中可以看到0号键的频谱结构主要是940Hz和1340Hz组成的,和理论值941Hz 和1336Hz很接近。

以上便是全部的双音多频从0——9号按键的频谱分析。

六、FFT分析程序

这里将所有的分析程序附在下面,其可以分析一串或者单个的语音信号。单个双音多频

按键的缩进语句在上面已经阐述,以下程序都采用统一的视野缩进显示。另外,以下程序输入法是经过处理的,可以通过直接复制到MA TLAB界面运行。如果要分析具体的一段语音,可以把语音文件名改为“q”,或者把程序第一条wavread语句里面的“q”改为相应的语音文件名即可:

[y,Fs,bits]=wavread('q.wav');

sound(y,Fs,bits);

figure;

plot(y);

n=length(y);

t=(0:n-1)/Fs;

figure;

plot(t,y);xlabel('s');title('时域波形');

x=fft(y);

Y=abs(x);

figure;plot(Y);title('原始信号幅度值');

W=fftshift(Y);figure;plot(W);title('中心频率点移位处理后的频谱图形');

f=linspace(-Fs/2,Fs/2,n);

figure;plot(f,W);xlabel('频率(Hz)');title('频域波形');

axis([100,2000,0,1600])

七、参考文献

1. 王艳芬,王刚,张晓光,刘卫东,数字信号处理原理及实现. 北京:清华大学出版社,2008.

2. 娄顺天,刘小东,李博涵,MATLAB7.X的系统分析与设计——信号处理(第二版).西安:西安电子科技大学出版社,1998.

3. 李辉,恩德,高娜,数字信号处理及MATLAB实现. 北京:机械工业出版社,2011.

matlab语音信号采集与初步处理要点

《matlab与信号系统》实验报告 学院: 学号: 姓名: 考核实验——语音信号采集与处理初步 一、课题要求 1.语音信号的采集 2.语音信号的频谱分析 3.设计数字滤波器和画出频率响应 4.用滤波器对信号进行滤波 5.比较滤波前后语音信号的波形及频谱 6.回放和存储语音信号 (第5、第6步我放到一起做了) 二、语音信号的采集 本段音频文件为胡夏演唱的“那些年”的前奏(采用Audition音频软件进行剪切,时长17秒)。运行matlab软件,在当前目录中打开原音频文件所在的位置,采用wavread函数对其进行采样,并用sound函数可进行试听,程序运行之后记下采样频率和采样点。 利用函数wavread对语音信号的采集的程序如下: clear; [y,fs,bits]=wavread('music.wav'); %x:语音数据;fs:采样频率;bits:采样点数sound(y,fs,bits); %话音回放 程序运行之后,在工作区间中可以看到采样频率fs=44100Hz,采样点bits=16

三、语音信号的频谱分析 先画出语音信号的时域波形,然后对语音号进行快速傅里叶变换,得到信号的频谱特性。语音信号的FFT频谱分析的完整程序如下: clear; [y,fs,bits]=wavread('music.wav'); %x:语音数据;fs:采样频率;bits:采样点数sound(y,fs,bits); %话音回放 n = length (y) ; %求出语音信号的长度 Y=fft(y,n); %傅里叶变换 subplot(2,1,1); plot(y); title('原始信号波形'); subplot(2,1,2); plot(abs(Y)); title('原始信号频谱'); 程序结果如下图: 四、设计数字滤波器和画出频率响应 根据语音信号的特点给出有关滤波器的性能指标: 1)低通滤波器性能指标,fp=1000Hz,fc=1200 Hz,As=100dB,Ap=1dB; 2)高通滤波器性能指标,fc=4800 Hz,fp=5000 Hz As=100dB,Ap=1dB。

基于matlab的语音信号的采集与处理

文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。 目录 第1章前言 ................................................................................................... 错误!未定义书签。第2章语音信号分析处理的目的和要求 ................................................... 错误!未定义书签。 2.1MATLAB软件功能简介................................................................. 错误!未定义书签。 2.2课程设计意义 .................................................................................. 错误!未定义书签。第3章语音信号的仿真原理..................................................................... 错误!未定义书签。第4章语音信号的具体实现..................................................................... 错误!未定义书签。 4.1语音信号的采集................................................................................ 错误!未定义书签。 4.2语音信号加噪与频谱分析................................................................ 错误!未定义书签。 4.3设计巴特沃斯低通滤波器................................................................ 错误!未定义书签。 4.4用滤波器对加噪语音滤波................................................................ 错误!未定义书签。 4.5比较滤波前后语音信号波形及频谱................................................ 错误!未定义书签。第5章总结................................................................................................... 错误!未定义书签。参考文献......................................................................................................... 错误!未定义书签。附录................................................................................................................. 错误!未定义书签。

基于MATLAB的语音信号滤波处理

基于MATLAB的语音信号滤波处理 题目:基于MATLAB的语音信号滤波处理 课程:数字信号处理 学院:电气工程学院 班级: 学生: 指导教师: 二O一三年十二月

目录CONTENTS 摘要 一、引言 二、正文 1.设计要求 2.设计步骤 3.设计内容 4.简易GUI设计 三、结论 四、收获与心得 五、附录

一、引言 随着Matlab仿真技术的推广,我们可以在计算机上对声音信号进行处理,甚至是模拟。通过计算机作图,采样,我们可以更加直观的了解语音信号的性质,通过matlab编程,调用相关的函数,我们可以非常方便的对信号进行运算和处理。 二、正文 2.1 设计要求 在有噪音的环境中录制语音,并设计滤波器去除噪声。 2.2 设计步骤 1.分析原始信号,画出原始信号频谱图及时频图,确定滤波器类型及相关指标; 2.按照类型及指标要求设计出滤波器,画出滤波器幅度和相位响应,分析该滤波器是否符合要求; 3.用所设计的滤波器对原始信号进行滤波处理,画出滤波后信号的频谱图及时频图; 4.对滤波前的信号进行分析比对,评估所设计滤波器性能。 2.3 设计内容 1.原始信号分析

分析信号的谱图可知,噪音在1650HZ和3300HZ附近的能量较高,而人声的能量基本位于1000HZ以下。因此,可以设计低通滤波器对信号进行去噪处理。 2.IIR滤波器设计 用双线性变换法分别设计了巴特沃斯低通滤波器和椭圆低通滤波器和带阻滤波器: ①巴特沃斯滤波器 fp=800;fs=1300;rs=35;rp=0.5; 程序代码如下: fp=800;fs=1300;rs=35;rp=0.5;Fs=44100; wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs)); [n,wn]=buttord(wp,ws,rp,rs,'s'); [b,a]=butter(n,wn,'s'); [num,den]=bilinear(b,a,Fs); [h,w]=freqz(num,den,512,Fs);

基于matlab的语音信号滤波处理——数字信号处理课程设计

数字信号处理课程设计 题目:基于matlab的语音信号滤波处理学院:物理与电子信息工程 专业:电子信息工程 班级: B07073041 学号: 200932000066 姓名:高珊 指导教师:任先平

摘要: 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求自己录制一段自己的语音后,在MATLAB软件中采集语音信号、回放语音信号并画出语音信号的时域波形和频谱图。再在Matlab中分别设计不同形式的FIR数字滤波器。之后对采集的语音信号经过不同的滤波器(低通、高通、带通)后,观察不同的波形,并进行时域和频谱的分析。对比处理前后的时域图和频谱图,分析各种滤波器对于语音信号的影响。最后分别收听进行滤波后的语音信号效果,做到了解在怎么样的情况下该用怎么样的滤波器。

目录 1.设计内容 (4) 2.设计原理 (4) 2.1语音信号的时域分析 (4) 2.2语音信号的频域分析 (5) 3.设计过程 (5) 3.1实验程序源代码 (6) 3.1.1原语音信号时域、频域图 (6) 3.1.2低通滤波器的设计 (6) 3.1.3高通滤波器的设计 (7) 3.1.4带通滤波器的设计 (8) 3.1.5语音信号的回放 (9) 3.2调试结果描述 (10) 3.3所遇问题及结果分析 (15) 3.3.1所遇主要问题 (16) 3.3.2结果分析 (16) 4.体会与收获 (17) 5.参考文献 (17)

语音信号处理matlab实现

短时能量分析matlab源程序: x=wavread('4.wav'); %计算N=50,帧移=50时的语音能量 s=fra(50,50,x);%对输入的语音信号进行分帧,其中帧长50,帧移50 s2=s.^2;%一帧内各种点的能量 energy=sum(s2,2);%求一帧能量 subplot(2,2,1); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=50'); axis([0,500,0,30]) %计算N=100,帧移=100时的语音能量 s=fra(100,100,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,2); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=100'); axis([0,300,0,30]) %计算N=400,帧移=400时的语音能量 s=fra(400,400,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,3); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=400'); axis([0,60,0,100]) %计算N=800,帧移=800时的语音能量 s=fra(800,800,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,4); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=800'); axis([0,30,0,200]) 分帧子函数: function f=fra(len,inc,x) %对读入语音分帧,len为帧长,inc为帧重叠样点数,x为输入语音数据 fh=fix(((size(x,1)-len)/inc)+1);%计算帧数 f=zeros(fh,len);%设一个零矩阵,行为帧数,列为帧长 i=1;n=1; while i<=fh %帧间循环 j=1; while j<=len %帧内循环 f(i,j)=x(n); j=j+1;n=n+1; end n=n-len+inc;%下一帧开始位置 i=i+1; end

基于某MATLAB地语音信号采集与处理

工程设计论文 题目:基于MATLAB的语音信号采集与处理 姓名: 班级: 学号:

指导老师: 一.选题背景 1、实践意义: 语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在于方便有效地提取并表示语音信号所携带的信息。所以理解并掌握语音信号的时域和频域特性是非常重要的。 通过语音相互传递信息是人类最重要的基本功能之一.语言是人类特有的功能.声音是人类常用工具,是相互传递信息的最重要的手段.虽然,人可以通过多种手段获得外界信息,但最重要,最精细的信息源只有语言,图像和文字三种.与用声音传递信息相比,显然用视觉和文字相互传递信息,其效果要差得多.这是因为语音中除包含实际发音容的话言信息外,还包括发音者是谁及喜怒哀乐等各种信息.所以,语音是人类最重要,最有效,最常用和最方便的交换信息的形式.另一方面,

语言和语音与人的智力活动密切相关,与文化和社会的进步紧密相连,它具有最大的信息容量和最高的智能水平。 语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,处理的目的是用于得到某些参数以便高效传输或存储;或者是用于某种应用,如人工合成出语音,辨识出讲话者,识别出讲话容,进行语音增强等. 语音信号处理是一门新兴的学科,同时又是综合性的多学科领域,是一门涉及面很广的交叉学科.虽然从事达一领域研究的人员主要来自信息处理及计算机等学科.但是它与语音学,语言学,声学,认知科学,生理学,心理学及数理统计等许多学科也有非常密切的联系. 语音信号处理是许多信息领域应用的核心技术之一,是目前发展最为迅速的信息科学研究领域中的一个.语音处理是目前极为活跃和热门的研究领域,其研究涉及一系列前沿科研课题,巳处于迅速发展之中;其研究成果具有重要的学术及应用价值. 数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、度快等优点。 数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数

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的语音信号的采集与处理

目录 第1章前言 (1) 第2章语音信号分析处理的目的和要求 (2) 2.1MATLAB软件功能简介............................................................................................ - 2 - 2.2课程设计意义 ............................................................................................................. - 2 - 第3章语音信号的仿真原理. (3) 第4章语音信号的具体实现 (4) 4.1语音信号的采集........................................................................................................... - 4 - 4.2语音信号加噪与频谱分析........................................................................................... - 5 - 4.3设计巴特沃斯低通滤波器........................................................................................... - 6 - 4.4用滤波器对加噪语音滤波........................................................................................... - 7 - 4.5比较滤波前后语音信号波形及频谱........................................................................... - 8 - 第5章总结.............................................................................................................................. - 9 - 参考文献.................................................................................................................................. - 10 - 附录.......................................................................................................................................... - 11 -

基于MATLAB的语音信号的处理

第一章语音信号的特点与采集 第一节语音信号采集的介绍 在Matlab环境中,主要可以通过以下几种方法驱动声卡,采集语音信号: 1.将声卡作为对象处理采集语音信号Matlab将声卡作为对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备(声卡)。操作时首先要对声卡产生一个模拟输入对象(ai),给ai对象添加一个通道设置采样频率后,就可以启动设备对象,开始采集数据,采集完成后停止对象并删除对象。 2.调用wavrecord功能函数采集语音信号。wavrecord功能函数只适用于windows95/98/N平台,它使用windows声音输入设备录制声音。函数调用方式:wavrecord(N,fs,ch,nbits); N:采集的样本数据量; fs:样本采集频率,为8000Hz、11025Hz、22050Hz和44100Hz之一,默认值为11025Hz; ch:样本采集通道,1为单声道,2为双声道,默认值为1(单声道); nbits:每个样本的位数(或称解析度),‘double’、‘single’或‘int16’为16位,‘uint8’为8位; 3.运用audiorecorder对象采集语音信号audiorecorder(fs,nbits,ch)可以创设一个audiorecorder对象。fs:样本采集频率,为8000Hz、11025Hz、22050Hz和44100Hz之一,默认值为8000Hz; nbits:每个样本的位数,8位或16位,默认值为8位; ch:样本采集通道,1为单声道,2为双声道,默认值为1(单声道); audiorecorder对象创设后,就可以进行相应的录音、暂停、停止、播放以及数据读取等操作。第二节语音信号的特点 通过对大量语音信号的观察和分析发现,语音信号主要有下面两个

MATLAB语音信号处理

基于MATLAB的语音信号采集与处理 一、实验的目的和要求 1. MATLAB软件功能简介 MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks公司推向市场。它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。 MATLAB软件包括五大通用功能,数值计算功能(Nemeric)、符号运算功能(Symbolic)、数据可视化功能(Graphic)、数字图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。目前,Mathworks公司已推出30多个应用工具箱。MATLAB在线性代数、矩阵分析、数值及优化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。 MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。例如解微分方程、傅里叶正反变换、拉普拉斯正反变换和z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析和零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础。2. 本题目的意义 本次课程设计的课题为《基于MATLAB的语音信号采集与处理》,学会运用MATLAB 的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟练使用MATLAB进行系统的分析仿真和设计奠定基础。 二、实验原理: 1.理论原理

如何利用matlab处理音频信号

Matlab处理音频信号 一、问题的提出:数字语音是信号的一种,我们处理数字语音信号,也就是对一种信号的处理,那信号是什么呢?信号是传递信息的函数。 一、问题的提出: 数字语音是信号的一种,我们处理数字语音信号,也就是对一种信号的处理,那信号是什么呢? 信号是传递信息的函数。离散时间信号%26mdash;%26mdash;序 列%26mdash;%26mdash;可以用图形来表示。 按信号特点的不同,信号可表示成一个或几个独立变量的函数。例如,图像信号就是空间位置(二元变量)的亮度函数。一维变量可以是时间,也可以是其他参量,习惯上将其看成时间。信号有以下几种: (1)连续时间信号:在连续时间范围内定义的信号,但信号的幅值可以是连续数值,也可以是离散数值。当幅值为连续这一特点情况下又常称为模拟信号。实际上连续时间信号与模拟信号常常通用,用以说明同一信号。 (2)离时间信号:时间为离散变量的信号,即独立变量时间被量化了。而幅度仍是连续变化的。 (3)数字信号:时间离散而幅度量化的信号。 语音信号是基于时间轴上的一维数字信号,在这里主要是对语音信号进行频域上的分析。在信号分析中,频域往往包含了更多的信息。对于频域来说,大概有8种波形可以让我们分析:矩形方波,锯齿波,梯形波,临界阻尼指数脉冲波形,三角波,余旋波,余旋平方波,高斯波。对于各种波形,我们都可以用一种方法来分析,就是傅立叶变换:将时域的波形转化到频域来分析。 于是,本课题就从频域的角度对信号进行分析,并通过分析频谱来设计出合适的滤波器。当然,这些过程的实现都是在MATLAB软件上进行的,MATLAB软件在数字信号处理上发挥了相当大的优势。

语音信号处理matlab仿真

语音信号处理的matlab设计仿真实验 彭杰12350049 12自动化 一、目的 通过利用matlab设计仿真实验,理解如下知识点: 信号的采样及混迭 信号的频谱分析 信号的幅度调制解调的方法 理想滤波器的时频域特性 数字滤波器的设计 二、内容 ①录制一段个人自己的语音信号。 ②采用合适的频率,对录制的信号进行采样,画出采样后语音信号的时域波形和频谱图。 ③给原始语音信号加噪声,画出加噪声后的语音信号和频谱图。 ④设计一个频域的理想带通信道。 ⑤对这个语音信号进行幅度调制,画出调制后的语音信号和频谱图。 ⑥利用理想带通信道对信号进行传输。 ⑦对接受到的信号进行解调,画出解调后的语音信号和频谱图。 ⑧设计性能良好的滤波器对信号进行滤波。 ⑨对语音进行回放,并与滤波后的语音信号进行对比。

三、实验设计与仿真结果 程序汇总如下:

1、原始语音信号的采集、读取与采样 利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。wavread 函数几种调用格式如下: ①y=wavread(file) 功能说明:读取file所规定的wav文件,返回采样值放在向量y中。 ②[y,fs,nbits]=wavread(file) 功能说明:采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。 ③y=wavread(file,N) 功能说明:读取钱N点的采样值放在向量y中。 ④y=wavread(file,[N1,N2]) 功能说明:读取从N1到N2点的采样值放在向量y中。 首先用手机录制一段音频信号(手机音频格式一般为.mp3)。然后用软件将音频

MATLAB语音信号采集与处理

MATLAB课程设计报告课题:语音信号采集与处理

目录 一、实践目的 (3) 二、实践原理: (3) 三、课题要求: (3) 四、MATLAB仿真 (4) 1、频谱分析: (4) 2、调制与解调: (5) 3、信号变化: (8) 快放: (8) 慢放: (8) 倒放: (8) 回声: (9) 男女变声: (9) 4、信号加噪 (11) 5、用窗函数法设计FIR滤波器 (12) FIR低通滤波器: (13) FIR高通滤波器: (14) FIR带通滤波: (15)

一、实践目的 本次课程设计的课题为《基于MATLAB的语音信号采集与处理》,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟练使用MATLAB进行系统的分析仿真和设计奠定基础。 此次实习课程主要是为了进一步熟悉对matlab软件的使用,以及学会利用matlab对声音信号这种实际问题进行处理,将理论应用于实际,加深对它的理解。 二、实践原理: 利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。语音信号的“ 短时谱”对于非平稳信号, 它是非周期的, 频谱随时间连续变化, 因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。如果利用加窗的方法从语音流中取出其中一个短断, 再进行傅里叶变换, 就可以得到该语音的短时谱。 三、课题要求: ○1 利用windows 自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声)。 ○2 对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉or 尖锐)。 ○3 利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。 ○4 对采集到的语音信号进行调制与解调,观测调制与解调前后信号的变化。 ○5 实现语音信号的快放、慢放、倒放、回声、男女变声。 ○6 对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。

MATLAB课程设计报告-语音信号的采集与处理

MATLAB 课程设计 学院:电气信息工程学院 课题:语音信号的采集与处理 班级:电信 1201 组长: 组员: 指导老师: 语音信号的采集与处理

一、实验要求 (1)本课程设计要求掌握 MATLAB 语言特性、数学运算和图形表示;掌握MATLAB 程序设计方法在信息处理方面的一些应用;掌握在 Windows 环境下,利用 MATLAB 进行语音信号采集与处理的基本方法。 (2)本课程设计分为基础与综合设计题目,其中基础题目为 MATLAB 基本训练(必做);对于综合设计题,需按照任务书要求,对设计过程所进行的有关步骤进行理论分析,并对完成的设计作出评价,总结自己整个设计工作中的经验教训、收获;在课设最后一天提交课程设计报告,报告必须按照统一格式打印,装订成册。 二、实验内容 1、利用 windows 自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声)。 2、对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉 or 尖锐?) 3、利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。这里涉及到采样下重采样的问题,请大家思考如何去做。 4、实现语音信号的快放、慢放、倒放、回声、男女变声。 5、对采集到的语音信号进行调制与解调,观测调制与解调前后信号的变化。 6、对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。 7、如果精力和时间允许,鼓励利用 MATLAB GUI 制作语音信号采集与分析演示系统。 三、MATLAB仿真 任务一(陈康负责) 1.利用频谱的分析 利用Windows下的录音机,录制一段男生和女生的语音,存为*.WA V的文件。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换(FFT变换),得到信号的频谱特性,分析语音信号频谱。 源程序: fs=44100; [x,fs,Nbits] =wavread('E:\GQQQ\leo') ; derta_fs = fs/length(x); t=0:1/44100:(length(x)-1)/44100; sound(x,fs) ; %对加载的语音信号进行回放 figure(1) plot(t,x) %做原始语音信号的时域图形 title('原始语音信号'); xlabel('time n'); ylabel('fuzhi n');

基于MATLAB的语音信号去噪处理(修改版)

摘要 语音信号在数字信号处理中占有极其重要的地位,因此选择通过对语音信号的研究来巩固和掌握数字信号处理的基本能力十分具有代表性。对数字信号处理离不开滤波器,因此滤波器的设计在信号处理中占有极其重要的地位。FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现对加噪声语音信号进行时域、频域分析和滤波。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制及仿真。 关键词滤波器;MATLAB;窗函数法;双线性变换

Abstract Voice signal occupies an extremely important position in digital signal processing, so the selection based on the research of the speech signal to consolidate and master the basic ability of digital signal processing is very representative. For digital signal processing (DSP) is dependent on the filter, so filter design occupies an extremely important role in signal processing. FIR digital filter and IIR filter is an important part of the filter design. MATLAB signal processing toolbox can be used to quickly and efficiently design all kinds of digital filter. Powerful and easy to learn, programming, high efficiency, is popular among the masses of scientific and technical workers. We can tear down the corresponding conclusion through theoretical derivation, using MATLAB as a programming tool for computer to add noise speech signal in time domain, frequency domain analysis and filtering. In the process of design implementation, we use window function method to design FIR digital filter, butterworth, chebyshev and bilinear reform IIR digital filter design, and the MATLAB as an auxiliary tool to complete the design of computing and graphics drawing and simulation. Keyword filter MATLAB Window function method Double linear transformation

基于Matlab的语音信号与处理介绍

基于Matlab的语音信号分析与处理 [摘要]语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。 滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。课题基于MATLAB 有噪音语音信号处理与设计与实现,本人综合运用数字信号处理的理论知识对加噪声清浊语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,用MATLAB平台对语音信号加入了不同的噪声,进一步用双线性变换法设计了一个的巴特沃思低通IIR滤波器和用窗函数法设计了FIR低通滤波器,然后对加噪的语音信号进行滤波处理。最后对比滤波前后的语音信号的时域和频域特性。 [关键词]清浊语音信号采集;傅里叶变换;滤波器设计;信号处理

目录 引言............................................. - 1 -1基本原理....................................... - 1 - 1.1语音信号概述................................... - 1 - 1.2数字滤波器原理................................. - 1 -2总体设计思想................................... - 2 - 2.1 语音信号的采集................................ - 2 - 2.2 语音信号处理工具的选择........................ - 2 - 2.3 数字滤波器的设计.............................. - 2 -3语音信号分析和滤波处理 ......................... - 4 - 3.1 语音信号的采集................................ - 4 - 3.2 语音信号的频谱分析............................ - 4 - 3.3语言信号处理................................... - 6 -4滤波器的设计[4]................................. - 10 - 4.1巴特沃斯低通滤波器............................ - 10 - 4.2频率响应S域到Z域的变换:.................... - 13 - 4.3设计数字带通滤波器............................ - 16 - 4.4窗函数法的FIR滤器波.......................... - 20 -5结果及分析.................................... - 23 -6总结.......................................... - 23 -参考文献........................................ - 24 -附录原程序.................................... - 25 -

Matlab的语音信号处理

课程设计论文 姓名:姜勇 学院:机电与车辆工程学院 专业:电子信息工程2班 学号:1665090208

语音信号分析与处理系统设计 一、语音信号分析与处理系统设计摘要 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。信号处理是Matlab重要应用的领域之一。 本论文主要介绍的是的语音信号的简单处理。本论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab7.0环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。我所做的工作就是在matlab7.0软件上编写一个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单的语音信号处理的目的。 二、关键字: 1.Matlab; 2.语音信号; 3.傅里叶变换; 4.信号处理。 三、语音信号处理的总体方案 1 系统基本概述、要求 本文是用Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析,在MATLAB应用软件下设计一个简单易用的图形用户界面(GUI),来解决一般应用条件下的各种语音信号的处理。 2 系统框架及实现 1)语音信号的采集 1

MATLAB对语音信号加随机噪声及去噪程序

M A T L A B对语音信号加 随机噪声及去噪程序 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

%对语言信号做原始的时域波形分析和频谱分析[y,fs,bits]=wavread('C:\DocumentsandSettings\Administrator\桌面\'); %sound(y,fs) %回放语音信号 n=length(y)%选取变换的点数? y_p=fft(y,n);%对n点进行傅里叶变换到频域 f=fs*(0:n/2-1)/n;%对应点的频率 figure(1) subplot(2,1,1); plot(y);%语音信号的时域波形图 title('原始语音信号采样后时域波形'); xlabel('时间轴') ylabel('幅值A') subplot(2,1,2); plot(f,abs(y_p(1:n/2)));%语音信号的频谱图 title('原始语音信号采样后频谱图'); xlabel('频率Hz'); ylabel('频率幅值'); %对音频信号产生噪声 L=length(y) %计算音频信号的长度 noise=*randn(L,2); %产生等长度的随机噪声信号(这里的噪声的大小取决于随机函数的幅度倍数) y_z=y+noise; %将两个信号叠加成一个新的信号——加噪声处理? %sound(y_z,fs) %对加噪后的语音信号进行分析 n=length(y);%选取变换的点数? y_zp=fft(y_z,n);%对n点进行傅里叶变换到频域 f=fs*(0:n/2-1)/n;%对应点的频率 figure(2) subplot(2,1,1); plot(y_z);%加噪语音信号的时域波形图 title('加噪语音信号时域波形');

相关文档
相关文档 最新文档