语音信号的频谱分析和FIR滤波器的设计_第1页
语音信号的频谱分析和FIR滤波器的设计_第2页
语音信号的频谱分析和FIR滤波器的设计_第3页
语音信号的频谱分析和FIR滤波器的设计_第4页
语音信号的频谱分析和FIR滤波器的设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 目     录1 绪论 1.课题背景.(2) 2.本次课程设计的目的.(2)2 设计原理及实验工具 1.设计原理 (1)采样频率、位数及采样定理.(3) (2)时域信号的FFT分析.(4) (3)基于窗函数的FIR数字滤波器设计法.(4) 2.实验工具.(5) 三仿真程序及频谱分析 1.语音信号的频谱分析.(5) 2.FFT频谱分析.(7) 3.FIR数字低通滤波器的设计.(8) 4.FIR数字高通滤波器的设计.(10) 5.FIR数字带通滤波器的设计.(13) 6.保存滤波后的声音文件.(15)五设计总结.(15)六参考文献.(16)1 绪

2、论1. 课题背景随着信息时代和数字世界的到来,数字信号处理己成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。任意一个信号都具有时域与频域特性,信号的频谱完全代表了信号,因而研究信号的频谱就等于研究信号本身。通常从频域角度对信号进行分析与处理,容易对信号的特性获得深入的了解。因此,信号的频谱分析是数字信号处理技术中的一种较为重要的工具。在工程领域中,MATLAB是一种倍受程序开发人员青睐的语言,对于一些需要做大量数据运算处理的复杂应用以及某些复杂的频谱分析算法MATLAB显得游刃有余。2. 本次课程设计的目的(1) 掌握傅

3、里叶变换的物理意义,深刻理解傅里叶变换的内涵(2) 了解matlab对声音信号的处理指令(3)聊二级计算机存储信号的方式及语音信号的特点(4)加深对采样定理的理解(5)加深对信号分析工程应用的理解,拓展学生在信号分析领域的综合应用能力(6)掌握用窗函数法设计FIR数字滤波器的原理和方法(7)掌握FIR滤波器的快速卷积实现原理。(8)学会调用MATLAB函数设计与实现FIR滤波器二实验原理、工具1.实验原理(1)采样频率、位数及采样定理 采样频率:定义了每秒从连续信号中提取并组成离散信号的采样个数,用赫兹(Hz)来表示。采样频率的倒数是采样周期,它是采样之间的时间间隔,是指计算机每秒钟采集多少个

4、声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准,采样频率越高,即采样的时间间隔越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。 采样位数:数值越大,解析度越高,录制的回放的声音数就越真实。由于语音信号是一种连续变化的模拟信号,而计算机只能处理和记录二进制的数字信号,因此,由自然音而得的音频信号必须经过采样、量化和编码,变成二进制数据后才能送到计算机进行再编辑和存储。语音信号输出时,则与上述过程相反,用计算机的声音编辑工具进行语音信号的录制时,已经利用了计算机上的A/D转换器,将模拟的声音信号转化成离散的量化了的数字信号。话音时,量化了的数字信号

5、又通过D/A转换器,把保存起来的数字数据恢复成原来的模拟的语音信号采样定理:采样就是利用抽样脉冲序列从连续信号中抽取一系列离散样值构成抽样信号。抽样的意义就在于能够从抽样信号中无失真地恢复元连续信号。在进行模拟/数字信号的转换过程中,当采样频率不小于信号中最高频率fm的2倍时,即fs>=2fm,则采样之后的数字信号完整地保留了原始信号中的信息。(2) 时域信号的FFT分析 信号的频谱分析就是计算机信号的傅里叶变换。FFT是一种时域和频域均离散化的变换,是DFT的一种快速算法,是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。当所处理的数据的长度为2的幂次时,采用基-2

6、算法进行计算,计算速度会显著增加。 FFT函数调用方式:1.Y=FFT(X); 2.YFFT(X,N); 3.YFFT(X,dim)或YFFT(X,N,dim)。(3) 基于窗函数的FIR数字滤波器设计法 用一定宽度窗函数截取无限脉冲响应序列,获得有限长的脉冲响应序列,从而得到FIR滤波器,它是在时域进行的由理想滤波器的频率响应推导出其单位冲激响应,再设计一个FIR数字滤波器的单位冲激响应h(n)去逼近,它表示,由此得到的离散滤波器的系统传递函数为无限长序列,因此是物理不可实现的。为了使系统变为物理可实现,且使实际的FIR滤波器频率响应尽可能逼近理想滤波器的频响特性,采用窗函数将无限脉冲响应截

7、取一段h(n)来近似表示,可得。从而有:式中N表示窗口长度,这样H(z)就是物理可实现的系统。并且从线性相位FIR滤波器的充要条件可知,为了获得线性相位FIR数字滤波器的脉冲响应h(n),那么h(n)应有t=(N-1)/2的延迟,由于窗函数的选择对结果起着重要的作用,针对不同的信号和不同的处理目的来确定窗函数的选择才能收到良好的效果。2. 实验工具:MATLAB 7.03 设计过程1. 语音信号的频谱分析(1) 利用录音软件录制一段自己的声音,保存为.wav格式,并将其保存在matlab的工作空间work中。Save and run ,得出频谱分析图(2) 程序:x1,fs,bits=wavr

8、ead('C:MATLAB7worksy.wav'); %读取语音信号的数据,赋给变量x1 figure(1) plot(x1) %做原始语音信号以44.1k采样后的时域图形 title('原始语音采样后时域信号'); xlabel('时间轴 n'); ylabel('幅值 A'); figure(2) freqz(x1) %绘制原始语音信号采样后的频率响应图 title('原始语音信号采样后频率响应图'); x1,fs,bits=wavread('sy.wav'); %读取语音信号的数据,赋给变量

9、x1 sound(x1,fs); %播放语音信号 (3)频谱图2. FFT频谱分析(1) 程序:x1,fs,bits=wavread('sy.wav'); %读取语音信号的数据,赋给变量x1y1=fft(x1,1024); %对采样后信号做1024点FFT变换f=fs*(0:511)/1024;figure(1)subplot(2,1,1);plot(f,abs(y1(1:512);title('原始语音信号频谱')xlabel('频率/Hz');ylabel('幅值')subplot(2,1,2);plot(abs(y1(1:1

10、024) %采样后信号的FFT频谱图title('原始语音信号FFT频谱')xlabel('点数N');ylabel('幅值');(2) 频谱图3.FIR数字低通滤波器的设计(1)程序:fs=10000;x1=wavread('sy.wav');wp=2*pi*1000/fs;ws=2*pi*1200/fs;Rp=1;Rs=100;wdelta=ws-wp;N=ceil(8*pi/wdelta); %取整wn=(wp+ws)/2;b,a=fir1(N,wn/pi,hamming(N+1); %选择窗函数,并归一化截止频率figur

11、e(1)freqz(b,a,512);title('FIR低通滤波器');f2=filter(b,a,x1);figure(2)subplot(2,1,1)plot(x1)title('FIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2);title('FIR低通滤波器滤波后的时域波形');sound(f2,7000); %播放滤波后的语音信号F0=fft(f2,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(

12、1:512);title('FIR低通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)F2=plot(f,abs(F0(1:512);title('FIR低通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel('幅值');(2) 频谱图4. FIR高通滤波器的设计(1)程序fs=22050;x1=wavread('sy.wav');wp=2*pi*5000/fs;ws=2*pi*4800/fs;Rp=1;Rs

13、=100;wdelta=wp-ws;N=ceil(8*pi/wdelta); %取整wn=(wp+ws)/2;b,a=fir1(N,wn/pi,'high'); figure(1)freqz(b,a,512);title('FIR高通滤波器');f2=filter(b,a,x1);figure(2)subplot(2,1,1)plot(x1)title('FIR高通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2);title('FIR高通滤波器滤波后的时域波形');sound(f2,20000); %播放滤

14、波后的语音信号F0=fft(f2,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512);title('FIR高通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)F2=plot(f,abs(F0(1:512);title('FIR高通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel('幅值');(2) 频谱图5

15、. FIR带通滤波器的设计(1) 程序fs=22050;x1=wavread('sy.wav');wp1=2*pi*1200/fs;wp2=2*pi*3000/fs;ws1=2*pi*1000/fs;ws2=2*pi*3200/fs;Rp=1;Rs=100;wp=(wp1+ws1)/2;ws=(wp2+ws2)/2;wdelta=wp1-ws1;N=ceil(8*pi/wdelta); %取整wn=wp ws;b,a=fir1(N,wn/pi,'bandpass'); figure(1)freqz(b,a,512);title('FIR带通滤波器'

16、;);f2=filter(b,a,x1);figure(2)subplot(2,1,1)plot(x1)title('FIR带通滤波器滤波前的时域波形');subplot(2,1,2)plot(f2);title('FIR带通滤波器滤波后的时域波形');sound(f2,10000); %播放滤波后的语音信号F0=fft(f2,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512);title('FIR带通滤波器滤波前的频谱')xla

17、bel('频率/Hz');ylabel('幅值');subplot(2,1,2)plot(f,abs(F0(1:512);title('FIR带通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel('幅值');(2) 频谱图4.在程序最后添加wavwrite(f2,'保存的名字')语句5 设计总结 本文主要是基于高级面向对象开发语言MATLAB的基本特征,以及MATLAB强大的工具箱功能,实现信号的预处理和频谱分析。通过做应用Matlab对语音信号进行谱分析及滤波这个课程设计,加深了

18、我对数字信号处理理论知识,尤其是采样频率,频谱特性和数字滤波器的设计;另一方面,使我在原来熟悉控制系统在Matlab运用的基础上进一步学习Matlab软件在信号分析和处理的运用。在整个课程设计过程中,从分析设计题目到设计程序框图再到具体的程序代码的编写,使我对课程设计有了比较熟悉的了解。分析课题题目:应用Matlab对语音信号进行谱分析及滤波,考虑到几个方面的内容:(1)加强对Matlab基础知识的学习,尤其是Matlab在信号处理方面的学习,(通过实例说明,基于MATLAB可以很好的达到对语音信号的频谱的分析处理。)这就需要多方面查找资料,如上互联网,图书馆等;(2)加强学习信号处理知识理论,尤其是FFT频谱变换理论和各种数字滤波器设计理论;(3)要突出重点,其重点是谱分析和数字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论