用matlab对信号进行频谱分析及滤波Word文档格式.docx
《用matlab对信号进行频谱分析及滤波Word文档格式.docx》由会员分享,可在线阅读,更多相关《用matlab对信号进行频谱分析及滤波Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
学生签名:
20年月日
课程设计(论文)评阅意见
评阅人 职称
20年月日
●
设计过程步骤(5)
2.1语音信号的采集(5)
2.2语音信号的频谱分析(6)
2.3设计数字滤波器和画出其频谱响应(7)
2.4用滤波器对信号进行滤波(9)
2.5滤波器分析后的语音信号的波形及频谱(10)
●心得和经验(11)
●参考文献………………………………………………(12)
●设计过程步骤
2.1语音信号的采集
我们利用Windows下的录音机,录制了一段开枪发出的声音,时间在1s内。
接着在C盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。
通过wavread函数和sound的使用,我们完成了本次课程设计的第一步。
其程序如下:
[x,fs,bite]=wavread('
c:
\alsndmgr.wav'
[100020000]);
sound(x,fs,bite);
2.2语音信号的频谱分析
首先我们画出语音信号的时域波形;
然后对语音信号进行频谱分析,在Matlab中,我们利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性性。
到此,我们完成了课程实际的第二部。
n=1024;
subplot(2,1,1);
y=plot(x(50:
n/4));
gridon;
title('
时域信号'
)
X=fft(x,256);
subplot(2,1,2);
plot(abs(fft(X)));
频域信号'
);
运行程序得到的图形:
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);
%PrewarpPrototypePassbandfreq
OmegaS=(2/T)*tan(ws/2);
%PrewarpPrototypeStopbandfreq
%设计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);
plot(z);
滤波后信号波形'
Z=fft(z,256);
plot(abs(Z));
滤波后信号频谱'
2.5滤波器分析后的语音信号的波形及频谱
运行2.4程序得到滤波后的语音信号的波形及频谱图如下:
心得和经验
对录音的采集后,需要保存在C盘根目录下,否则用Matlab读取音频文件读取不了。
其余操作只要输入函数按确定键得出图形后,保存就行。
参考文献
[1]谢希仁.计算机网络(第五版)[M].北京:
电子工业出版社,2008年2月
[2]胡小强计算机网络[M]北京:
北京邮电大学出版社2005年1月
致谢
(注:
可编辑下载,若有不当之处,请指正,谢谢!