数字信号处理课程规划报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理课程设计报告《应用Matlab对信号进行频谱分析及滤波》
专业:
班级:
姓名:
指导老师:
二0 0五年一月一日
目录
设计过程步骤()
2.1 语音信号的采集()
2.2 语音信号的频谱分析()
2.3 设计数字滤波器和画出其频谱响应()
2.4 用滤波器对信号进行滤波()
2.5滤波器分析后的语音信号的波形及频谱()
●心得和经验()
设计过程步骤
2.1 语音信号的采集
我们利用Windows下的录音机,录制了一段开枪发出的声音,时间在1 s内。接着在C盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。通过wavread函数和sound的使用,我们完成了本次课程设计的第一步。其程序如下:
[x,fs,bite]=wavread('c:\alsndmgr.wav',[1000 20000]);
sound(x,fs,bite);
2.2 语音信号的频谱分析
首先我们画出语音信号的时域波形;然后对语音信号进行频谱分析,在Matlab中,我们利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性性。到此,我们完成了课程实际的第二部。
其程序如下:
n=1024;
subplot(2,1,1);
y=plot(x(50:n/4));
grid on ;
title('时域信号')
X=fft(x,256);
subplot(2,1,2);
plot(abs(fft(X)));
grid on ;
title('频域信号');
运行程序得到的图形:
2.3 设计数字滤波器和画出其频谱响应
紧接着着我们做了一个数字滤波器:
采样频率10Hz,通带截止频率fp=3Hz,阻带截止频率fs=4Hz通带衰减小于1dB,阻带衰减大于20dB,我们主要使用双线性变换法由模拟滤波器原型设计数字滤波器。程序最后我们还利用Matlab中的函数freqz 画出了该滤波器的频率响应。
其程序如下:
%采样频率10Hz,通带截止频率fp=3Hz,阻带截止频率fs=4Hz
%通带衰减小于1dB,阻带衰减大于20dB
%使用双线性变换法由模拟滤波器原型设计数字滤波器
T=0.1; FS=1/T;
fp=3;fs=4;
wp=fp/FS*2*pi;
ws=fs/FS*2*pi;
Rp = 1; % 通带衰减
As = 20; % 阻带衰减
% 频率预畸
OmegaP = (2/T)*tan(wp/2); % Prewarp Prototype Passband freq
OmegaS = (2/T)*tan(ws/2); % Prewarp Prototype Stopband freq
%设计butterworth低通滤波器原型
N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS )));
OmegaC = OmegaP/((10^(Rp/10)-1)^(1/(2*N)));
[z,p,k] = buttap(N); %获取零极点参数
p = p*OmegaC;
k = k*OmegaC^N;
B = real(poly(z));
b0 = k;
cs = k*B;
ds = real(poly(p));
% 双线性变换
[b,a] = bilinear(cs,ds,FS);
% 绘制结果
freqz(b,a,512,FS);
运行程序得到的图形:
2.4 用滤波器对信号进行滤波
我们做的是IIR滤波器,所以我们利用函数filter对信号进行滤波。其程序如下:
z=filter(b,a,x);
subplot(2,1,1);
plot(z);
title('滤波后信号波形');
Z=fft(z,256);
subplot(2,1,2);
plot(abs(Z));
title('滤波后信号频谱');
2.5滤波器分析后的语音信号的波形及频谱
运行2.4程序得到滤波后的语音信号的波形及频谱图如下:
●心得和经验
心得和经验
在这次“应用Matlab对信号进行频谱分析及滤波”的课程设计中,我们首先感谢我们班的班主任韩国军老师在我们课程设计的过程中所给予的热情帮助和细心辅导,他在课程设计刚开始就很有耐性向我们讲解怎样从几方面来进行这次的课程设计和当设计过程出现问题时应该从那些方面检查错误,以及应该注意的设计滤波器常见的问题,特别是怎样正确运用Matlab。他的敬业精神,对学生耐心辅导深深地鼓舞着我们以一种热情和自信的心态投入在本次课程设计当中。
做课程设计是为了加深我们对平时学习的理论知识的理解,在理论和实验教学基础上进一步巩固所学基本理论和提高应用所学知识并加以综合应用的能力,培养学生将所学知识应用于实际的思想,提高分析和解决问题的能力,增强学生的综合能力,开发学生的智力,激发学生的创新精神,为毕业设计和以后工作打下必要基础。
这次为期一周的数字信号处理课程设计,使我们弄明白了不少的知识,也学到了不少的东西。首先我们认识到了MATLAB工具箱的强大的功能和方便的操控性,通过软件可以使设计简化,运算简单,而且可以使设计者腾出时间来把重点放在一些困难概念的理解和掌握上。MATLAB的功能很强大,可用于电子,通信,图像等领域的信号处理与系统设计。要精通MATLAB并不是件很容易的事,这得花较多的时间来研究和分析。通过使用软件,我们不仅加深了对书本知识