语音信号谱分析及去噪处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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); %根据参数求出频率响应

相关文档
最新文档