山东建筑大学信电学院课程设计说明书
magY1=abs(Y1);%把傅里叶变换后的复数值取模
subplot(2,2,4);plot(f,magY1(1:2048));title('加噪后信号频谱');%绘制波形
程序结果如下图:
图3.2 噪声及加噪后图形
由图3.1和图3.2可以看出,在5000~10000之间噪声明显,加入噪声后得到的信号和原始的语音信号有明显的不同。
3.4 数字滤波器设计
设计数字滤波器的任务就是寻找一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。
本实验采用MATLAB工具箱函数buttord设计数字低通IIR滤波器。 低通滤波器的性能指标为: f_p=5000;f_s=6500; Rp=3;Rs=25;
用伯特沃斯型设计滤波器程序如下:
f_p=5000;f_s=6500; Rp=3;Rs=25;%设置滤波器参数 Ws=f_s/(fs/2);Wp=f_p/(fs/2);
9
山东建筑大学信电学院课程设计说明书
[N,wc]=buttord(Wp,Ws,Rp,Rs);%计算滤波器阶数N和3dB截止频率wc [b,a]=butter(N,wc);%计算滤波器系统函数分子分母多项式系数
freqz(b,a,1000,fs);%绘制滤波器特性曲线 W 就是j后面的s或z,其实着看频谱图就行,H和W没什么用n是至你的数据点数后面还应该有个Fs,即采样率这样可以讲频谱图横轴变成Hz,不然就是个0~1的*pi/FS比例系数
axis([0 8000 -30 3]); 程序结果如下图:
图3.3 数字低通滤波器图
3.5 信号处理
巴特沃斯滤波器利用函数filter进行滤波。用设计的滤波器对含噪声的语音信号进行滤波,对滤波后的信号进行FFT进行频谱分析。函数fft的调用格式是y=fft(b,x),低通滤波器:Z=fft(z,4096);
其程序如下:
z=filter(b,a,y);%把加噪后的信号滤波
subplot(2,1,1);plot(z);title('滤波后的波形');%绘制波形
10
山东建筑大学信电学院课程设计说明书
Z=fft(z,4096);%对信号做4096点FFT变换 magZ1=abs(Z);%把傅里叶变换后的复数值取模 magZ=magZ1(1:2048);%取点
subplot(2,1,2);plot(magZ);title('滤波后的信号频谱');%绘制波形 程序结果如下图:
图3.4 滤波后的图形
将原始信号波形和滤波后的图形相比较,大致相同,说明滤波器有效果,滤波成功。
11
山东建筑大学信电学院课程设计说明书
总 结
本设计采用MATLAB实现了语音信号的采集,对语音信号的加噪及设计滤波器滤除噪声等一系列工作,从频率图可以看出,巴特沃斯滤波器具有单调下降的幅频特性,通带内是光滑的。我已基本完成设计任务,里面也有很多不足。通过本次教学实践,使我加深了对课堂知识的巩固和理解,并能掌握语音信号处理中的基本方法、理论应用和基于软硬件平台的算法实现技术。通过MATLAB中几个命令函数的调用,使得在实际应用和理论知识之间建立了联系,为以后的学习带来了非常的帮助。
12