MATLAB课程设计报告1.docx
- 文档编号:25159917
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:11
- 大小:150.12KB
MATLAB课程设计报告1.docx
《MATLAB课程设计报告1.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计报告1.docx(11页珍藏版)》请在冰豆网上搜索。
MATLAB课程设计报告1
MATLAB课程设计
题目:
基于MATLAB的数字语音信号的处理
专业:
信息工程
班级:
XXX
姓名:
XXX
学号:
XXX
教师:
XXXXX
2014年1月基于MATLAB的数字语音信号的处理
一、设计背景
数字语音是信号的一种,我们处理数字语音信号,也就是对一种信号的处理.信号是传递信息的函数。
离散时间信号——序列——可以用图形来表示。
按信号特点的不同,信号可表示成一个或几个独立变量的函数。
例如,图像信号就是空间位置(二元变量)的亮度函数。
一维变量可以是时间,也可以是其他参量,习惯上将其看成时间。
信号有以下几种:
(1)连续时间信号:
在连续时间范围内定义的信号,但信号的幅值可以是连续数值,也可以是离散数值。
当幅值为连续这一特点情况下又常称为模拟信号。
实际上连续时间信号与模拟信号常常通用,用以说明同一信号。
(2)离时间信号:
时间为离散变量的信号,即独立变量时间被量化了。
而幅度仍是连续变化的。
(3)数字信号:
时间离散而幅度量化的信号。
语音信号是基于时间轴上的一维数字信号,在这里主要是对语音信号进行频域上的分析。
在信号分析中,频域往往包含了更多的信息。
对于频域来说,大概有8种波形可以让我们分析:
矩形方波,锯齿波,梯形波,临界阻尼指数脉冲波形,三角波,余旋波,余旋平方波,高斯波。
对于各种波形,我们都可以用一种方法来分析,就是傅立叶变换:
将时域的波形转化到频域来分析。
于是,本课题就从频域的角度对信号进行分析,并通过分析频谱来设计出合适的滤波器。
当然,这些过程的实现都是在MATLAB软件上进行的,MATLAB软件在数字信号处理上发挥了相当大的优势。
二、设计目的
1.通过该设计,要求对语音信号的采集、处理、传输、显示、和存储等有一个系统的掌握和理解。
2.理解信号采样频率的概念,掌握对语音信号进行时域和频域分析方法,了解滤波器的概念及原理。
3.通过课下的自我的学习,加深对书本理论知识的理解,提升自身的实际应用能力;
4.培养自我学习的能力和对相关课程的兴趣;
三、具体实现方式
1.利用Windows下的录音机或其他软件,录制一段语音信号,时间控制在1s左右,然后再MATLAB软件平台下,利用函数wavread对录制的语音信号进行采样,记住采样频率和采样点数。
MATLAB函数:
Wavread功能对语音信号进行采样,wavread函数的格式为:
[y,fs,bits]=wavread('E:
\Music.wav',[1000,2000]);,返回文件中语音信号从n1到n2之间的样本。
2.先画出语音信号的时域波形,然后对语音信号进行快速傅里叶变换,得到信号的频谱特性。
MATLAB函数:
fft功能是实现快速傅里叶变换,fft函数的格式为:
y=fft(y),返回向量x的不连续fourier变换。
3.根据低通滤波器的性能指标设计出滤波器。
MATLAB函数:
Ellipord功能是要求低通滤波器的参数,ellipord函数的格式为:
[N,Wn]=ellipord(Wp,Ws,Rp,Rs),返回设计滤波器的阶数和截止频率。
Ellip功能是设计IIR滤波器,ellip函数的格式为:
[b,a]=ellip(N,Rp,Rs,Wn),返回设计滤波器的低通滤波器的参数。
4.用设计的滤波器对采集的语音信号进行滤波。
MATLAB函数:
filter功能对信号进行滤波,filter函数的格式为:
y=filter(b,a,x),由给定的滤波器对x进行滤波。
5.分析滤波后得到的语音信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化
6.对滤波后的语音信号进行回放,对比滤波前后声音的变化。
MATLAB函数:
sound转化向量为音符的发声指令,sound函数的格式为:
sound(y,fs),把以采样频率fs的语音信号y以声音的形式播放。
四、主要参数
y
返回文件中语音信号从1000到2000之间的样本
fs
表示采样频率(Hz)
bits
bits表示采样位数
y1
返回向量y的不连续fourier变换
N,Wn
返回设计滤波器的阶数和截止频率。
b,a
返回设计滤波器的低通滤波器的参数,即求传递函数的分子分母系数
h,f,N1
计算离散系统在0—pi范内的N1个频率等分店的频率响应的值。
p
返回复数组h中每一个元素的相位角的,单位为弧度的相角
y2
由给定的滤波器对x进行滤波,返回滤波后的信号
y3
返回向量y2的不连续fourier变换
五、源程序
>>clear;
>>clearall;
>>[y,fs,bits]=wavread('E:
\Music.wav',[1000,2000]);
>>plot(y)
>>title('采样后语音信号的时域波形')
>>xlabel('time(s)')
>>ylabel('Amplitude')
>>y1=fft(y);
>>plot(abs(y1))
>>title('采样后语音信号频谱图')
>>xlabel('Frequency')
>>ylabel('Amplitude')
>>Rs=100;
>>Rp=1;
>>Wp=0.5;
>>Ws=0.8;
>>[N,Wn]=ellipord(Wp,Ws,Rp,Rs);
>>[b,a]=ellip(N,Rp,Rs,Wn);
>>N1=2^6;
>>[h,f]=freqz(b,a,N1,fs);
>>plot(f,abs(h))
>>title('滤波器幅频响应图')
>>xlabel('Frequency')
>>ylabel('Amplitude')
>>p=angle(h);
>>ph=p*180/pi;
>>plot(f,ph)
>>title('滤波器相频响应图')
>y2=filter(b,a,y);
>>plot(y2)
>>title('滤波后语音信号时域波形')
>>xlabel('time(s)')
>>ylabel('Amplitude')
>>y3=fft(y2);
>>plot(abs(y3))
>>title('滤波后语音信号频谱图')
>>xlabel('Frequency')
>>ylabel('Amplitude')
>>sound(y,fs)
六、仿真结果
1)采样后语音信号的时域波形
2)采样后语音信号频谱图
3)滤波器幅频响应图
4)滤波器相频响应图
5)滤波后语音信号频谱图
6)滤波后语音信号时域波形
七、设计总结
应用MATLAB进行语音信号的处理是与我们所学课程及专业紧密相连的,有着很强的实践性。
实验过程中,我们很清楚的感觉到初始语音信号和滤波输出后的语音信号在音色上有一定的差别,这说明了信号在处理、传输过程中有损耗。
用处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。
我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析。
通过课设我认识到MATLAB的功能很强大,使得用户在使用时可直接调用这些函数,只要赋予其实际参数即可,有极高的编程效率。
同时感受到MATLAB的优越性,操作界面简练。
处理速度较快。
由于整个操作过程存在多个分步骤,并且每个步骤的联系不是很紧密,所以每个步骤中的运行速度很快。
程序简短,清晰,明了,程序的可读性也非常强。
但MATLAB也有自己的不足,由于软件本身很大,开启时占用内存相当大,对计算机硬件的要求较高。
这次设计使我了解了MATLAB的使用方法,提高了分析和动手实践能力。
同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。
这次的课程设计是一次难得的锻炼机会,能让我所学过的理论知识在实践中得以运用。
使所学的知识得以强化。
我也熟悉了MATLAB的工作环境,可以对其进行一些简单的操作,如进行编程和仿真。
如果熟悉其中的函数及其用法,设计是很容易的。
掌握MATLAB的用法是对我们以后的学习和工作是很有帮助的。
我们现在掌握的只是其中一小部分而已,所以我以后还需要认真学习。
总之,这次课程设计我的收获很大。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 课程设计 报告