语音信号谱分析及去噪处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:语音信号谱分析及去噪处理
1、实验目的
(1)通过对实际采集的语音信号进行分析和处理,获得数字信号处理实际应用的认识。(2)掌握数字信号谱分析的知识。
(3)掌握数字滤波器设计的知识,并通过对语音信号的去噪处理,获得数字滤波器实际应用的知识。
2、实验内容
(1)用麦克风自行采集两段语音信号[高频噪声、人声+高频噪声](.wav格式)。
(2)通过Matlab读入采集信号,观察其采样频率,并绘图采样信号。
(3)通过Matlab对语音信号进行谱分析,分析出噪声的频带。
(4)设计一滤波器,对叠加入噪声的语音信号进行去噪处理。绘图并发声去噪后的信号。3、实验步骤
(1)利用麦克风采集一段5s以内的语音信号。利用格式工厂软件对语音信号进行预处理。通常语音信号为单声道,采样频率为8000Hz,语音信号为.wav格式。
(2)通过Matlab读入语音信号及其采样频率(使用Matlab库函数wavread),在Matlab软件的workspace工作平台上观察读入的语音信号,在Matlab中,对入的语音信号为一维矩阵。应注意,库函数wavread自动将语音信号幅度归一化[-1,1]区间范围。使用Matlab库函数plot 绘图语音信号,并使用库函数sound发音语音信号。
(3)分析噪声的频谱。在这里进行谱分析的目的,是了解噪声信号的频谱特性,为去噪滤波器的技术指标提供依据。
(4)通过Matlab对语音信号进行谱分析。应注意,对信号进行谱分析,在实验一中已经详细介绍过。在这里进行谱分析的目的,是了解本段语音信号的频谱特性,为去噪滤波器的技术指标提供依据。
(5)根据语音信号及噪声信号的频谱特性,自行设计一滤波器,对叠加入噪声的语音信号进行去噪处理。最后绘图并发声去噪后的信号。应注意,数字滤波器的实际应考虑实际需求,合理制定滤波器的技术指标。
4、实验原理
用麦克风采集一段语音信号,绘制波形并观察其频谱,添加一段随机信号,给定相应的滤波器指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯IIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。
5、实验内容
5.1设计流程图
语音信号滤波去噪——使用双线性变换法设计的巴特沃斯滤波器的设计流程如图
5.2原始语音信号的频谱分析
源代码:
clear all;
%语音信号的读入和打开,画出语音信号的频谱图
[x,fs]=wavread('yinpin.wav')%调用音频文件,采样值放在x 中,fs 为采样频率
x=x(:,1);%取矩阵x 的第一列赋值到x 矩阵中
FS=length(x); % 矩阵x 的长度
f=0:fs/FS:(FS-1)*fs/FS; %生成一个一维数组赋给f
X=fft(x,4096); %对信号做4096点FFT 变换
magX=abs(X); %取X 的幅值给magX
t=(0:FS-1)/fs;
subplot(2,1,1);plot(t,x); %绘制原始语音信号的时域波形图
title('原始语音信号时域波形图');
xlabel('时间/n');
ylabel('幅值/n');
grid on;
f=fs*(0:511)/1024; %生成一个一维数组赋给f
figure(1)
subplot(2,1,2);plot(magX);
title('原始信号频域图');
grid on;
5.3 加入一个随机噪声
%利用下列程序对原始语音信号进行加噪处理,并绘制出加随机噪声后语音信号的时域图和频谱图。
noise_mu=0; %取噪声的均值为0
noise_var=0.000005; %取噪声的方差为0.00005
x_noise=randn(size(x)).*sqrt(noise_var)+noise_mu;%语句产生与原始语音长度相同的随机噪声x1=x+x_noise; %把这个噪声添加到原始语音中,得到加噪语音信号
ts=1/fs;
ta=(length(x)-1)/fs;
t=0:ts:ta;
figure(2); subplot(2,1,1);
plot(t,x1); %绘制加随机噪声后语音信号时域图
title('加随机噪声后语音信号时域图');
xlabel('t'); ylabel('x1'); grid on;
y2=fft(x1,1024); %对信号做1024点FFT变换
f=fs*(0:511)/1024;
subplot(2,1,2); %绘制原始语音信号的频率响应图
plot(f,abs(y2(1:512)));
title('加随机噪声后的语音信号频谱图')
xlabel('f/Hz'); ylabel('幅度'); grid on;
5.4 根据指标设计IIR数字滤波器
低通滤波器的性能指标:
fp=1200Hz,fs=1100Hz,ft=8000Hz, As=20db ,Ap=1dB
%根据指标设计IIR数字滤波器
Fp=1200;%阻带截止频率
Fs=1100;%通带截止频率
Ft=8000;%采集频率
As=20;%通带波纹Ap=1
Ap=1;%阻带波纹As=20
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Ft*tan(ws/2);
[n,wn]=buttord(wp,ws,Ap,As,'s'); %求低通滤波器的阶数和截止频率[b,a]=butter(n,wn,'s'); %求S域的频率响应的参数
[B,A]=bilinear(b,a,1); %双线性变换实现S域到Z域的变换
[h,w]=freqz(B,A); %根据参数求出频率响应