资源描述:
《数字信号处理课程设计---语音信号的频谱分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、目录1.课程设计的目的12.课程设计的要求1(1)熟悉离散信号和系统的时域特性1(2)掌握序列快速傅里叶变换FFT方法1(3)学会MATLAB的使用,掌握MATLAB的程序设计方法1(4)利用MATLAB对语音信号进行频谱分析1(5)掌握MATLAB设计FIR和IIR数字滤波器的方法13.课程设计报告内容14.设计步骤1(1)语音信号的获取1(2)语音信号的频谱分析3(3)设计FIR和IIR数字滤波器并画出频率响应4(4)对信号进行滤波8(5)被污染语音信号的频谱分析13(6)回放语音信号135.调试分析135.
2、1等间隔采样程序的编写135.2.m文件的命名145.3标点符号的使用155.4滤波器参数的使用156.结果分析与体会166.1总结166.2不足176.3思考176.4结束语17参考文献18附录:1921语音信号的频谱分析1.课程设计的目的综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解。2.课程设计的要求(1)熟悉离散信号和系统的时域特性。(2)掌握序列快速傅里叶变换FFT方法。(3)学会MATLAB的使用
3、,掌握MATLAB的程序设计方法。(4)利用MATLAB对语音信号进行频谱分析。(5)掌握MATLAB设计FIR和IIR数字滤波器的方法。3.课程设计报告内容录制一段自己的语音信号,取不同的数据点对语音信号进行频谱分析;对所有数据进行插值和抽取处理,改变抽样率再对信号进行频谱分析;设计FIR和IIR数字滤波器,并对被抽样后的语音信号进行滤波,分析滤波后信号的时域和频域特征,回放语音信号。4.设计步骤(1)语音信号的获取用Windows下录音机录制自己的声音,发音为汉语韵母"a",保存在D盘命名为5.wav。通过使
4、用wavread函数读取语音信号,实现语句如下:[x,fs,bits]=wavread('d:5.wav');为了得到原始信号的波形和频谱,可运行如下语句:xx=fft(x);subplot(2,1,1);plot(x);title('原始信号波形');subplot(2,1,2);plot(abs(xx));title('原始信号频谱');21运行后得到的波形、频谱图如下:原始的语音信号经过wavread函数的处理,由连续信号变成离散信号,抽样率如图中fs所示为22050Hz/s,为了使抽样率满足8000Hz
5、/s的要求,需要用到resample函数,实现语句如下:y=resample(x,8000,22050);经过重采样,原信号的抽样率变成8000Hz/s。由于采样频率的改变,在模拟信号中选取的点数也有所不同,采样频率由22050Hz/s变成8000Hz/s,采样点数也相应地由58520变成21232(如下图所示)。21为了得到重采样后的波形和频谱,可运行如下语句:yy=fft(y);subplot(2,1,1);plot(y);title('重采样信号波形');subplot(2,1,2);plot(abs(yy
6、));title('重采样信号频谱');运行后得到的波形、频谱图如下:(2)语音信号的频谱分析等间隔取8000个数据,首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在MATLAB中,可以利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性(幅度和相位谱)。等间隔取16000个数据,画出语音信号的时域波形,然后对语音信号进行频谱分析。运用“四舍五入”法对y信号进行等间隔抽取,编写程序如下:[m,n]=size(y);z1=zeros(1,8000);k1=1;fori=1:m/8000:mi=rou
7、nd(i);z1(k1)=y(i);k1=k1+1;21endz2=zeros(1,16000);k2=1;fori=1:m/16000:mi=round(i);z2(k2)=y(i);k2=k2+1;end分别运行如下程序,输出各自对应波形、频谱图y1=fft(z1);subplot(3,2,3);plot(z1);title('等间隔采样8000点的波形');subplot(3,2,4);plot(abs(y1));title('等间隔采样8000点的频谱');y2=fft(z2);subplot(3,2,5
8、);plot(z2);title('等间隔采样16000点的波形');subplot(3,2,6);plot(abs(y2));title('等间隔采样16000点的频谱');(3)设计FIR和IIR数字滤波器并画出频率响应根据有关的频谱特征,设计FIR和IIR数字滤波器。在MATLAB中,可以利用函数fir1设计FIR滤波器,利用函数butte、cheby1和ellip