基于+MATLAB+的语音信号分析与处理的课程设计

更新时间:2023-12-31 12:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计(论文)任务书

软件 学 院 06信息工程 专 业 2006-(1) 班

一、课程设计(论文)题目 基于 MATLAB 的语音信号分析与处理的课程设计

二、课程设计(论文)工作自 2008 年 12 月 29 日起至 2009 年 1 月 2 日止。 三、课程设计(论文) 地点: 信息学院机房 四、课程设计(论文)内容要求: 1.本课程设计的目的:

综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应 结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建 立概念。

2.课程设计的任务及要求 1)基本要求:

① 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 ② 掌握在 Windows 环境下语音信号采集的方法。 ③ 掌握数字信号处理的基本概念、基本理论和基本方法。 ④ 掌握 MATLAB 设计 FIR 和IIR 数字滤波器的方法。 ⑤ 学会用 MATLAB 对信号进行分析和处理。

2)创新要求:

在基本要求达到后,可进行创新设计,如界面优化等。

(1)要按照书稿的规格打印誊写毕业论文

(2)论文包括目录、绪论、正文、小结、参考文献、谢辞、附录等 (3)毕业论文装订按学校的统一要求完成

4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程:40分; (3)完成调试:20分; (4)回答问题:20分。

5)参考文献:

胡广书 数字信号处理-理论、算法与实现(第二版) 清华出版社 陈桂明 应用MATLAB语言处理数字信号与数字图像 科技出版社 程佩青 数字信号处理(第三版) 清华出版社

- 1 -

6)课程设计进度安排

内容 天数 地点

构思及收集资料 1 图书馆 组装与调试 3 实验室

撰写论文 1 图书馆、实验室

学生签名: 时元斌

2008年12月29日

课程设计(论文)评审意见

(1)完成原理分析(20分):优( )、良( )、中( )、一般( )、差( ); (2)设计分析 (40分):优( )、良( )、中( )、一般( )、差( ); (3)完成调试 (20分):优( )、良( )、中( )、一般( )、差( ); (4)回答问题 (20分):优( )、良( )、中( )、一般( )、差( ); (5)格式规范性及考勤是否降等级:是( )、否( )

评阅人: 职称: 讲师

2009年 月 日

- 2 -

目 录

1.课程设计目的………………………………………………………………(4)

2.课程设计基本要求……………………………………………...………….(4)

3.课程设计内容………………………………………..……………………..(4)

4.课程设计实现……………………………………………………..…..……………(4)

(1)语音信号的采集……………………………………………………..(4)

(2)语音信号的频谱分析………………………………………………..(5)

(3)设计滤波器和画出频率响应………………………………………..(5)

(4)用滤波器对信号进行滤波…………………………………………..(8)

(5)比较滤波前后语音信号的波形及其频谱…………………………..(8)

(6)回放语音信号………………………………………………………..(10)

(7)设计系统界面………………………………………………………..(10)

5、心得体会……………………………………………..……………………..(11)

6、参考文献…………………………………….……………………………..(11)

7、课程设计工作学生调查表…………….…………………………………..(12)

- 3 -

基于 MATLAB 的语音信号分析与处理的课程设计

1.课程设计目的

综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

2.课程设计基本要求 ① 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 ② 掌握在 Windows 环境下语音信号采集的方法。 ③ 掌握数字信号处理的基本概念、基本理论和基本方法。 ④ 掌握 MATLAB 设计 FIR 和IIR 数字滤波器的方法。 ⑤ 学会用 MATLAB 对信号进行分析和处理。

3.课程设计内容

录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用 MATLAB 设计一信号处理系统界面。

4.课程设计实现

(1)语音信号的采集

选取一段语音信号,然后在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。通过使用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中。

对语音信号ermiao.wav进行采样其程序如下: [y,fs,nbits]=wavread(‘ermiao’) >> ……

fs =

44100 nbits =

16

y=wavread(file,[20000,65000]) >>

- 4 -

(2)语音信号的频谱分析

首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在matlab中利用fft对信号进行快速傅里叶变换,得到信号的频谱特性。

其程序如下:

[y,fs,nbits]=wavread(‘ermiao’, [20000,65000]);

sound(y,fs,bits); Y=fft(y,4096);

subplot(211);plot(y);title(‘原始信号波形’); subplot(212);plot(abs(Y));title(‘原始信号频谱’); 程序结果如下图:

原始信号波形10.50-0.5-100.511.522.533.544.5x 10原始信号频谱15010054500050010001500200025003000350040004500

(3)设计滤波器和画出频率响应

根据语音信号的特点给出有关滤波器的新能指标: ① 低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB; ② 高通滤波器的性能指标:fp=4800Hz,fc=5000Hz,As=100dB,Ap=1dB; ③ 带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,

As=100dB,Ap=1dB;

低通

用窗函数设计低通滤波器的程序如下: fp=1000;fc=1200;As=100;Ap=1;fs=22050; wc=2*fc/fs;wp=2*fp/fs;

N=ceil((As-7.95)/(14.36*(wc-wp)/2))+1; beta=0.1102*(As-8.7); Win=Kaiser(N+1,beta);

- 5 -

b=fir1(N,wc,Win);

freqz(b,1,512,fs);

程序运行结果如下图所示:

原始信号波形100Magnitude (dB)0-100-2000200040006000Frequency (Hz)8000100000Phase (degrees)-2000-4000-6000-80000200040006000Frequency (Hz)800010000

用双线性变换设计的低通滤波器的程序如下: fp=1000;fc=1200;As=100;Ap=1;fs=22050; wc=2*fc/fs;wp=2*fp/fs;

[n,wn]=ellipord(wp,wc,Ap,As); [b,a]=ellip(n,Ap,As,wn); freqz(b,a,512,fs);

程序运行结果如下图所示:

50Magnitude (dB)0-50-100-1500200040006000Frequency (Hz)8000100000Phase (degrees)-200-400-600-800-10000200040006000Frequency (Hz)800010000

- 6 -

高通

高通滤波器的程序如下: ws1=4800; wp1=5000; wc=22050; wp=wp1/wc; ws=ws1/wc;

[N,Wn]=buttord(wp,ws,1,100); [b,a]=butter(N,Wn,'high') freqz(b,a,521,10000)

程序运行结果如下图所示:

40Magnitude (dB)200-20-40050010001500200025003000Frequency (Hz)350040004500500010000Phase (degrees)50000-5000050010001500200025003000Frequency (Hz)3500400045005000

带通

设计带通滤波器的程序如下: wp1=[1200 3000]; ws1=[1000 3200]; wx=11025; wp=wp1/wc; ws=ws1/wc;

[n,Wn]=cheb1ord(wp,ws,1,100') [b,a]=cheby1(n,1,Wn); freqz(b,a,512,1000)

- 7 -

程序运行结果如下图所示: n =

24

Wn =

0.0544 0.1361

400Magnitude (dB)2000-200-400050100150200250300Frequency (Hz)35040045050010000Phase (degrees)50000-5000050100150200250300Frequency (Hz)350400450500

(4)用滤波器对信号进行滤波

比较两种滤波器的性能,然后用性能较好的滤波器对采集的信号进行滤波。在MATLAB中,FIR咯其利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。

(5)比较滤波前后语音信号的波形及其频谱

要求在一个窗口同时画出滤波前后的波形及其频谱, FIR滤波:其程序如下: x=fftfilt(b,a,y);

X=fft(x,4096);

subplot(221);plot(y);title('原始信号波形'); subplot(222);plot(abs(Y));title('原始信号频谱'); subplot(223);plot(x);title('滤波后信号的波形'); subplot(224);plot(abs(X));title('滤波后信号的频谱');

- 8 -

运行结果如下:

原始信号波形10.50-0.5-1024x 10滤波后信号的波形10.50-0.5-105101543210020004000600064原始信号频谱1501005000200040006000滤波后信号的频谱

IIR滤波:其程序如下: x=filter(b,a,y);

X=fft(x,4096);

subplot(221);plot(y);title('原始信号波形');

subplot(222);plot(abs(Y));title('原始信号频谱'); subplot(223);plot(x);title('滤波后信号的波形');

subplot(224);plot(abs(X));title('滤波后信号的频谱'); 运行结果如下:

原始信号波形10.50-0.5-1024x 10滤波后信号的波形10.50-0.5-1024x 1064原始信号频谱150100500640200040006000滤波后信号的频谱1501005000200040006000

- 9 -

(6)回放语音信号

在MATLAB中,函数sound可以对声音进行回放。其调用格式为: Sound(x,fs,bits)

可以感觉滤波前后的声音变换。

(7)设计系统界面

系统界面-低通滤波器-滤波 后(运行结果):

原始信号波形10.50-0.5-1024x 10滤波后信号的波形10.50-0.5-105101543210020004000600064

原始信号频谱1501005000200040006000滤波后信号的频谱

- 10 -

本文来源:https://www.bwwdw.com/article/2jjx.html

微信扫码分享

《基于+MATLAB+的语音信号分析与处理的课程设计.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文
范文搜索
下载文档
Top