基于matlab的语音信号滤波处理.docx

上传人:啊飒飒 文档编号:9585963 上传时间:2021-03-09 格式:DOCX 页数:20 大小:984.07KB
返回 下载 相关 举报
基于matlab的语音信号滤波处理.docx_第1页
第1页 / 共20页
基于matlab的语音信号滤波处理.docx_第2页
第2页 / 共20页
基于matlab的语音信号滤波处理.docx_第3页
第3页 / 共20页
基于matlab的语音信号滤波处理.docx_第4页
第4页 / 共20页
基于matlab的语音信号滤波处理.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于matlab的语音信号滤波处理.docx》由会员分享,可在线阅读,更多相关《基于matlab的语音信号滤波处理.docx(20页珍藏版)》请在三一文库上搜索。

1、数字信号处理课程设计基于 matlab 的语音信号滤波处理学专班学姓院: 物电学院 业: 电子信息 级:号:名:指导教师:2目录第一章 绪论.11.1数字滤波器.11. 2MATLAB.1第二章 语音信号处理.22.1语音信号的采集.22.2语音信号的频谱分析.22.3信号经低通滤波器滤波.32.4信号经高通滤波器滤波.6第三章 总结.8参考文献:.82第一章 绪论11 数字滤波器数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具 有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多 维滤波等优点。在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使 用最

2、广泛的一种线性系统。数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间 线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因 此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数 字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。从数字滤波器的单位冲击响应来看,可以分为两大类 : 有限冲击响应 (FIR)数 字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为低通滤波 器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF)。在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。 因

3、此,指标的形式应为频域中的幅度和相位响应。在通带中,通常希望具有线性 相位响应。在 FIR 滤波器中可以得到精确的线性相位。FIR 滤波器传递函数的极 点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要 达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR 滤波器所 要求的阶数可能比 IIR 滤波器高 5-10 倍,结果成本高信号延时也较大,如果按 线性相位要求来说,则 IIR 滤波器就必须加全通网络进行相位校正,同样大大增 加了滤波器的阶数和复杂性。而 FIR 滤波器却可以得到严格的线性相位。 不论是 IIR 滤波器还是 FIR 滤波器的设计都包括三个步骤:(

4、1) 按照实际任务的要求,确定滤波器的性能指标。(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用 IIR 系统函数,也可以用 FIR 系统函数去逼近。(3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。12MATLABMATLAB 是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能 力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制1等功能。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用 的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言

5、完相同的事 情简捷得多,工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理及实 时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工 具包,通信工具包等都属于此类。MATLAB 具有许多的优点比如:语言简洁紧凑,使用方便灵活,库函数极其 丰富;MATLAB 既具有结构化的控制语句(如 for 循环,while 循环,break 语句 和 if 语句),又有面向对象编程的特性;程序的可移植性很好,基本上不做修改 就可以在各种型号的计算机和操作系统上运行,等等优点。MATLAB 的应用范围非常广,包括信号和图像处理、通

6、讯、控制系统设计、 测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单 独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特 定类型的问题。第二章 语音信号处理2.1 语音信号的采集首先利用 Windows 下的录音机,录制一段自己的话音,时间在 1 s 内,存为 文件:music.wav。然后在 MATLAB 软件平台下,利用函数 wavread 对语音信号 进行采样,记下采样频率和采样点数为:PCM 44.100 kHz, 16 位。通过 wavread 函数的使用,我们能很快理解采样频率、采样位数等概念。利用函数 wavread 对

7、语音信号的采集的程序如下:function x=yuanshixinhao(j)x,fs,bits=wavread(C:Documents and Settingsgsz桌面 信号课程设计 matlab程序程序girlsday.wav); %x:语音数据;fs:采样频率;bits:采样 点数sound(x,fs,bits); %话音回放N=length(x);2n=0:N-1;figure(1);subplot(2,1,1);plot(n,x); %画出原始语音信号的波形xxxxxx (n);yyyyyy (x(n);title(原始语音信号);subplot(2,1,2);y=fft(x);

8、 %做length(x1)点的FFTy=fftshift(y);%平移,是频率中心为0F= fs/length(x);%设置频谱的间隔,分辨率 plot(-fs/2:F:fs/2-F,abs(y);%画出原始语音信号的频谱图 xlabel(f/HZ);ylabel(Y);title(原始语音信号的频谱);end2.2语音信号的频谱分析由2.1节的程序可以得到频谱图图1:图132.3信号经低通滤波器滤波:先设计低通FIR滤波器,由2.1节可以得到采样频率Fs为44100HZ,bits=16。 设计通带截止频率为1000HZ,阻带截止频率为1200HZ,阻带最大衰减40db。通过 指标可以考虑用h

9、anning窗口实现此低通滤波,程序如下:function hn_flp=FLP(i)fp=1000;fs=1200;as=40;Fs=44100;%确定技术指标wp=2*pi*fp/Fs; ws=2*pi*fs/Fs;%求归一化频率bt=ws-wp;N0=ceil(6.2*pi/bt);%求过渡带 %用hanning窗N=N0+mod(N0+1,2);wc=(wp+ws)/2;hn_flp=fir1(N-1,wc/pi,hanning(N);freqz(hn_flp,1,512);title(FIR低通滤波器);end其频谱图如图2:图24信号经过此滤波器,实现功能:放大信号并且滤除高频成分

10、。程序如下:hn=FLP(0);x,fs,bits=wavread(C:Documents and Settingsgsz桌面 信号课程设计 matlab程序程序girlsday.wav); %x:语音数据;fs:采样频率;bits:采样 点数x_low0= filter(hn,1,x);x_low=100*x_low0;sound(x_low,fs,bits); %话音回放subplot(2,1,1);plot(x_low);xxxxxx (t);yyyyyy (x_low);title(信号经过低通滤波器(时域);subplot(2,1,2);y=fft(x_low); %做length(

11、x1)点的FFTy=fftshift(y);%平移,是频率中心为0F= fs/length(x_low);%设置频谱的间隔,分辨率plot(-fs/2:F:fs/2-F,abs(y);%画出原始语音信号的频谱图xxxxxx (f/HZ);yyyyyy (Y);title(信号经过低通滤波器(频域);程序运行频谱图如图3,可对比原信号图图1,可以看出高频成分减少。图352.4、信号经高通滤波器滤波:设计高通滤波器,通带截止频率5000HZ,阻带截止频率设置为4500HZ,阻带 最小衰减40db。所以可以考虑用hanning高通窗口设计该高通滤波器,其程序如 下:function hn=FHP(i

12、)fp=5000;fs=4500;Fs=44100;as=40;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;%确定技术指标 %求归一化频率bt=wp-ws;N0=ceil(6.2*pi/bt);%求过渡带 %用hanning窗N=N0+mod(N0+1,2);wc=(wp+ws)/2;hn=fir1(N-1,wc/pi,high,hanning(N);freqz(hn,1,512);title(FIR高通滤波器的幅频特性);end其频谱图如下图4:图4让原始信号通过此高通滤波器,通过图5(信号通过高通滤波器后的频谱图)6可以和图1对比,可以明显发现低频成分被滤除,程序如下:hn=F

13、HP(0);x,fs,bits=wavread(C:Documents and Settingsgsz桌面 信号课程设计 matlab程序程序girlsday.wav); %x:语音数据;fs:采样频率;bits:采样 点数x_low0= filter(hn,1,x);x_low=100*x_low0;sound(x_low,fs,bits); %话音回放subplot(2,1,1);plot(x_low);xxxxxx (t);yyyyyy (x_low);title(信号经过高通滤波器(时域);subplot(2,1,2);y=fft(x_low); %做length(x1)点的FFTy=

14、fftshift(y);%平移,是频率中心为0F= fs/length(x_low);%设置频谱的间隔,分辨率plot(-fs/2:F:fs/2-F,abs(y);%画出原始语音信号的频谱图xxxxxx (f/HZ);yyyyyy (Y);title(信号经过高通滤波器(频域);图57第三章 总结本次设计让我有了很大的收获,终于清楚的理解了从原始信号到滤波再到 还原的过程,实现一种看的见的功能,加深了对基础知识的理解,同时也更加熟 悉了 matlab 这个软件。不过通过这次设计也发现了自身的缺点,那就是自己理 论知识没有那么贯通,还缺乏一个整体的布局。以后的日子里,要更加注重对原 理的理解,同时自己应该多动手做,那样记忆才会深刻。不管怎样,在这有限的 时间里我会更加努力的提高自己,为自己的梦想奋斗。参考文献:高西全、丁玉美数字信号处理第三版西安电子科技大学出版社.忽略此处.8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1