基于matlab的语音信号滤波处理——数字信号处理课程设计2_第1页
基于matlab的语音信号滤波处理——数字信号处理课程设计2_第2页
基于matlab的语音信号滤波处理——数字信号处理课程设计2_第3页
基于matlab的语音信号滤波处理——数字信号处理课程设计2_第4页
基于matlab的语音信号滤波处理——数字信号处理课程设计2_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 数字信号处理课程设计数字信号处理课程设计题目:题目: 基于 matlab 的语音信号滤波处理学院:学院: 专业:专业: 班级:班级: 学号:学号: 姓名:姓名: 指导教师:指导教师: 摘要本课程设计旨在熟悉在Windows环境下语音信号采集的方法,掌握数字信号处理的基本概念、基本理论和基本方法,掌握MATLAB设计FIR和IIR数字滤波器的方法并且学会用MATLAB对信号进行分析和处理。课题的制作过程中,首先对语音信号进行采集和频谱分析,然后再分别用低通、高通和带通三种滤波器进行滤波处理,最后回放语音信号。语音信号经过滤波器滤波处理后,杂音有所减少,效果变的更好。目录实验内容:实验内容:.4

2、一、语音信号的采集.4二、语音信号的频谱分析.4三、用滤波器对语音信号进行滤波.4四、回放语音信号.4实验原理:实验原理:.4一、数字滤波器.4二、MATLAB.5实验步骤实验步骤:.61、语音信号的采集.6二、语音信号的频谱分析.6三、信号经低通滤波器滤波.8四、信号经高通滤波器滤波.9五、信号经带通滤波器滤波.12六、回放语音信号.14结论:结论:.14参考文献:参考文献:.14实验内容:实验内容:1 1、语音信号的采集、语音信号的采集 利用 Windows 下的录音机, 录制一段自己的话音, 时间在几秒内。然后在 Matlab 软件平台下, 利用函数 wavread 对语音信号进行采样,

3、 记住采样频率和采样点数。y,fs,bits=wavread();2 2、语音信号的频谱分析、语音信号的频谱分析 首先画出语音信号的时域波形, 然后对语音信号进行频谱分析。 在 Matlab 中, 可以利用函数 fft 对信号进行快速傅里叶变换, 得到信号的频谱特性。3 3、用滤波器对语音信号进行滤波、用滤波器对语音信号进行滤波 设计滤波器对采集的信号进行滤波, 比较滤波前后语音信号的波形及频谱。要求自己确定滤波器的性能指标,用冲激响应不变法、双线性变换法或窗函数法设计 3 种滤波器:低通、高通和带通滤波器。4 4、回放语音信号、回放语音信号 在 Matlab 中, 函数 sound 可以对声

4、音进行回放,其调用格式: sound (x, fs, bits);实验原理:实验原理:1 1数字滤波器数字滤波器数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使用最广泛的一种线性系统。数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机

5、来执行。从数字滤波器的单位冲击响应来看,可以分为两大类:有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF)。在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。因此,指标的形式应为频域中的幅度和相位响应。在通带中,通常希望具有线性相位响应。在 FIR滤波器中可以得到精确的线性相位。FIR 滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR 滤波器所要求的

6、阶数可能比 IIR 滤波器高 5-10 倍,结果成本高信号延时也较大,如果按线性相位要求来说,则 IIR 滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。而 FIR 滤波器却可以得到严格的线性相位。不论是 IIR 滤波器还是 FIR 滤波器的设计都包括三个步骤:(1) 按照实际任务的要求,确定滤波器的性能指标。(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求 可以用 IIR 系统函数,也可以用 FIR 系统函数去逼近。(3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。2MATLABMATLAB 是矩阵实验室(Matr

7、ix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完相同的事情简捷得多,工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。MATLAB 具有许多的优点比如:语言简洁紧凑,使用方便灵活,库函数极其丰富;M

8、ATLAB既具有结构化的控制语句(如 for 循环,while 循环,break 语句和 if 语句),又有面向对象编程的特性;程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行,等等优点。MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。 实验步骤:实验步骤: 一、语音信号的采集一、语音信号的采集y,fs,bits=wavread();fs = 22050bits = 16二、

9、二、语音信号的频谱分析语音信号的频谱分析实验程序:x1,Fs,bits=wavread(C:WINNTMediading.wav);%sound(y,Fs,bits);figure(1);plot(x1); %做原始语音信号的时域图形title(原始语音信号);xlabel(时间 n);ylabel(音量 n);figure(2);y1=fft(x1); %做 length(x1)点的 FFTy1=fftshift(y1);%平移,是频率中心为 0derta_Fs = Fs/length(x1);%设置频谱的间隔,分辨率plot(-Fs/2:derta_Fs: Fs/2-derta_Fs,ab

10、s(y1);%画出原始语音信号的频谱图title(原始语音信号的频谱);grid on;三、信号经三、信号经低通滤波器低通滤波器滤波滤波:fs=22050;fc1=1100;wc1=2*pi*fc1/fs;wp1=2*pi*1000/fs;ws1=2*pi*1200/fs;N1=ceil(200*2*pi/ws1-wp1);Window=boxcar(N1+1); %长度为 N1 的矩形窗 Windowb1=fir1(N1,wc1/pi,Window);figure(3);freqz(b1,1,512);title(低通滤波器的频率响应);x1_low = filter(b1,1, x1);%

11、对信号进行低通滤波figure(4);plot(x1_low);title(信号经过低通滤波器(时域);figure(5);plot(-Fs/2:derta_Fs: Fs/2-derta_Fs,abs(fftshift(fft(x1_low);title(信号经过低通滤波器(频域));四、信号经高四、信号经高通滤波器通滤波器滤波滤波:fc2=4900;wc2=2*pi*fc2/fs;wp2=2*pi*4800/fs;ws2=2*pi*5000/fs;N2=ceil(4*pi/(ws2-wp2);Window=boxcar(N2+1);b2=fir1(N2,wc2/pi,Window);figu

12、re(6);freqz(b2,1,512);%数字滤波器频率响应title(高通滤波器的频率响应);x1_high = filter(b2,1,x1);%对信号进行高通滤波figure(7);plot(x1_high);title(信号经过高通滤波器(时域);figure(8);plot(-Fs/2:derta_Fs: Fs/2-derta_Fs,abs(fftshift(fft(x1_high);title(信号经过高通滤波器(频域));五、信号经带五、信号经带通滤波器通滤波器滤波滤波:f1=1100;f2=3100; %带通滤波器的通带范围w1=2*pi*f1/fs; %0.1567=0.

13、0499piw2=2*pi*f2/fs; %0.4417=0.1407piw=w1,w2;N3=ceil(4*pi/(2*pi*200/fs);b3=fir1(N3,w/pi,high);%带通滤波器figure(9);freqz(b3,1,512);%数字滤波器频率响应title(高通滤波器的频率响应);x1_daitong = filter(b3,1,x1);%对信号进行高通滤波figure(10);plot(x1_daitong);title(信号经过高通滤波器(时域);figure(11);plot(-Fs/2:derta_Fs: Fs/2-derta_Fs,abs(fftshift(fft(x1_daitong);title(信号经过带通滤波器(频域));六、回放语音信号:六、回放语音信号:在Matlab中, 函数sound 可以对声音进行回放,其调用格式: sound (x, fs, bits);sound(x1_low,Fs); sound(x1_high,Fs); sound(x1_daitong,Fs);可以感觉滤波前后的声音变化。结论:结论:通过此次课程设计,让我了解到数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。还了解到MATLAB具有许多

温馨提示

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

评论

0/150

提交评论