对语音信号进行分析及处理资料.docx
- 文档编号:15556189
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:21
- 大小:264.75KB
对语音信号进行分析及处理资料.docx
《对语音信号进行分析及处理资料.docx》由会员分享,可在线阅读,更多相关《对语音信号进行分析及处理资料.docx(21页珍藏版)》请在冰点文库上搜索。
对语音信号进行分析及处理资料
1、设计目的
1.进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;使自身对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解;
2.增强应用Matlab语言编写数字信号处理的应用程序及分析、解决实际问题的能力;
3.培养自我学习的能力和对相关课程的兴趣;
二、设计过程
1、语音信号的采集
采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。
采样位数可以理解为声卡处理声音的解析度。
这个数值越大,解析度就越高,录制和回放的声音就越真实
采样定理又称奈奎斯特定理,在进行模拟/数字信号的转换过程中,当采样频率fs不小于信号中最高频率fm的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。
利用Windows下的录音机,录制了一段发出的声音,内容是“数字信号”,时间在3s内。
接着在D盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。
[x1,fs,bits]=wavread('E:
\数字信号.wav');%读取语音信号的数据,赋给变量x1,返回频率fs44100Hz,比特率为16。
2、语音信号的频谱分析
(1)首先画出语音信号的时域波形;
程序段:
x=x1(60001:
1:
120000);%截取原始信号60000个采样点
plot(x)%做截取原始信号的时域图形
title('原始语音采样后时域信号');
xlabel('时间轴n');
ylabel('幅值A');
(2)然后用函数fft对语音号进行快速傅里叶变换,得到信号的频谱特性;
y1=fft(x,6000);%对信号做N=6000点FFT变换
figure
(2)
subplot(2,1,1),plot(k,abs(y1));
title('|X(k)|');
ylabel('幅度谱');
subplot(2,1,2),plot(k,angle(y1));
title('arg|X(k)|');
ylabel('相位谱');
(3)产生高斯白噪声,并且对噪声进行一定的衰减,然后把噪声加到信号中,再次对信号进行频谱特性分析,从而加深对频谱特性的理解;
d=randn(1,60000);%产生高斯白噪声
d=d/100;%对噪声进行衰减
x2=x+d;%加入高斯白噪声
3、设计数字滤波器
(1)IIR低通滤波器性能指标通带截止频
,阻带截止频率
,通带最大衰减
,阻带最小衰减
。
(2)FIR低通滤波器性能指标通带截止频率
,阻带截止频率
,通带衰减
1dB,阻带衰减
100dB。
(3)IIR高通滤波器的设计指标,
,
,阻带最小衰减
,通带最大衰减
。
(4)(4)FIR高通滤波器的设计指标,
,
,阻带最小衰减
,通带最大衰减
。
(5)用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
比较滤波前后语音信号的波形及频谱,在一个窗口同时画出滤波前后的波形及频谱。
在Matlab中,函数sound可以对声音进行回放。
其调用格式:
sound(x,fs,bits);可以感觉滤波前后的声音有变化。
3、结果分析
1、原始语音信号采样后的时域波形及FFT变换后频谱
图1.原始信号时域图
图2.原始信号的频谱图
2、加入噪声后信号的时域波形及FFT变换后频谱
图3.加入噪声后的时域信号
分析:
由图可以看出加入噪声后有明显的不一样,运行sound(x2,fs);播放加入高斯噪声后的语音,可以明显听出兹兹的噪声
图4.加入噪声后的频谱图
3、IIR滤波器及原始信号通过IIR后的时域波形频谱变化
图5.IIR低通滤波器
图6.IIR低通滤波器滤波前后时域波形
分析:
经过滤波器后的信号和原始信号很近似
图7.IIR低通滤波器滤波前后的频谱
分析:
从图7可以看出,经过IIR低通滤波器滤波后将高频部分滤除了。
4、FIR滤波器及原始信号通过FIR后的时域波形频谱变化
图8.FIR低通滤波器
图9.FIR低通滤波器滤波前后时域波形
图10.FIR低通滤波器滤波前后频谱
分析:
从图10可以看出,经过FIR低通滤波器滤波后将高频部分滤除了。
5、IIR高通滤波器的设计
图11.IIR高通滤波器
图12.IIR高通滤波器滤波前后时域波形
图13.IIR高通滤波器滤波前后频谱
6、FIR高通滤波器的设计
图14.FIR高通滤波器
图15.FIR高通滤波器滤波前后时域波形
图16.FIR高通滤波器滤波前后频谱
4、结束语
这次的数字信号处理大作业的题目是应用Matlab对语音信号进行频谱分析及滤波,首先通过网络和书籍查找有关本次作业所需的资料,编写相关程序,并通过Matlab软件运行得到相关波形频谱图。
在做作业的过程中,我将上课所学的理论知识运用到实践中。
通过这次应用Matlab对语音信号进行频谱分析及滤波,让我对Matlab的应用以及数字滤波器的设计有了更深层次的理解,每个程序中的语句表示什么意思也有了很清楚的了解。
在实践中增强了我的动手能力,并提高了我的综合能力,使自身得到了很大的锻炼。
另外,在设计滤波器的过程中由于个人知识学得不到位,后面的仿真结果不是很理想,我希望以后多查阅资料,多积累,多思考,只有这样,才能取得更大的进步,才能学有所用,学有所长。
5、程序附录
(1)采样+噪声
clear
clc
[x1,fs,bits]=wavread('E:
\数字信号.wav');%读取语音信号的数据,赋给变量x1
sound(x1,fs);%播放原始语音信号
N=length(x1)
fs%采样频率为44100Hz
bits%比特率为16
x=x1(60001:
1:
120000);%截取原始信号60000个采样点
N1=length(x)
figure
(1)
plot(x)%做截取原始信号的时域图形
title('原始语音采样后时域信号');
xlabel('时间轴n');
ylabel('幅值A');
sound(x,fs);%播放截取后语音信号,仍能清晰地听到“数字信号”
k=0:
5999;
y1=fft(x,6000);%对信号做N=6000点FFT变换
figure
(2)
subplot(2,1,1),plot(k,abs(y1));
title('|X(k)|');
ylabel('幅度谱');
subplot(2,1,2),plot(k,angle(y1));
title('arg|X(k)|');
ylabel('相位谱');
mean(x)%求得语音信号平均幅值-2.1368e-04
d=randn(1,60000);%产生高斯白噪声
mean(d)
d=d/100;%对噪声进行衰减
x2=x+d;%加入高斯白噪声
sound(x2,fs);%播放加入高斯噪声后的语音,可以明显听出噪声
figure(3)
plot(x2)
title('加入噪声后时域信号');
xlabel('时间轴n');
ylabel('幅值A');
k=0:
5999;
y2=fft(x2,6000);%对信号做N点FFT变换
figure(4)
subplot(2,1,1),plot(k,abs(y2));
title('加入噪声后|X(k)|');
ylabel('幅度谱');
subplot(2,1,2),plot(k,angle(y2));
title('加入噪声后arg|X(k)|');
ylabel('相位谱');
(2)IIR低通滤波器
%IIR低通滤波器
clear
clc
[x1,fs,bits]=wavread('E:
\数字信号.wav');%读取语音信号的数据,赋给变量x1
x=x1(60001:
1:
120000);%截取原始信号60000个采样点
d=randn(1,60000);%产生高斯白噪声
mean(d);
d=d/100;%对噪声进行衰减
x2=x+d;%加入高斯白噪声
sound(x2,fs);%播放加入高斯噪声后的语音,可以明显听出噪声
fs=44100;
Ts=1/fs;
wp=2*pi*45000/fs;%通带截止频率
ws=2*pi*50000/fs;%阻带截止频率
Rp=1;%通带衰减
Rs=100;%阻带衰减
wp1=2/Ts*tan(wp/2);%将模拟指标转换成数字指标
ws1=2/Ts*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');%选择滤波器的最小阶数
[Z,P,K]=buttap(N);%创建butterworth模拟低通滤波器
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);%将模拟原型低通滤波器转换为低通滤波器
[bz,az]=bilinear(b,a,fs);%用双线性变换法实现模拟滤波器到数字滤波器的转换
[H,W]=freqz(bz,az);%绘制频率响应曲线
figure
(1)
plot(W*fs/(2*pi),abs(H))
grid
xlabel('频率/Hz')
ylabel('频率响应幅度')
title('IIR低通滤波器')
f1=filter(bz,az,x2);
figure
(2)
subplot(2,1,1)
plot(x2)%画出滤波前的时域图
title('IIR低通滤波器滤波前的时域波形');
subplot(2,1,2)
plot(f1);%画出滤波后的时域图
title('IIR低通滤波器滤波后的时域波形');
sound(f1,44100);%播放滤波后的信号
F0=fft(f1,1024);
f=fs*(0:
511)/1024;
figure(3)
y2=fft(x2,1024);
subplot(2,1,1);
plot(f,abs(y2(1:
512)));%画出滤波前的频谱图
title('IIR低通滤波器滤波前的频谱')
xlabel('频率/Hz');
ylabel('幅值');
subplot(2,1,2)
F1=plot(f,abs(F0(1:
512)));%画出滤波后的频谱图
title('IIR低通滤波器滤波后的频谱')
xlabel('频率/Hz');
ylabel('幅值');
(3)FIR低通滤波
%FIR低通滤波
clear
clc
fs=44100;
x1=wavread('E:
\数字信号.wav');
x=x1(60001:
1:
120000);%截取原始信号60000个采样点
d=randn(1,60000);%产生高斯白噪声
d=d/100;%对噪声进行衰减
x2=x+d;%加入高斯白噪声
sound(x2,fs);%播放加入高斯噪声后的语音,可以明显听出噪声
wp=2*pi*1000/fs;
ws=2*pi*1200/fs;
Rp=1;
Rs=100;
wdelta=ws-wp;
N=ceil(8*pi/wdelta);%取整
wn=(wp+ws)/2
[b,a]=fir1(N,wn/pi,hamming(N+1));%选择窗函数,并归一化截止频率
figure
(1)
freqz(b,a,512);
title('FIR低通滤波器');
f2=filter(b,a,x2);
figure
(2)
subplot(2,1,1)
plot(x2)
title('FIR低通滤波器滤波前的时域波形');
subplot(2,1,2)
plot(f2);
title('FIR低通滤波器滤波后的时域波形');
sound(f2,44100);%播放滤波后的语音信号
F0=fft(f2,1024);
f=fs*(0:
511)/1024;
figure(3)
y2=fft(x2,1024);
subplot(2,1,1);
plot(f,abs(y2(1:
512)));
title('FIR低通滤波器滤波前的频谱')
xlabel('频率/Hz');
ylabel('幅值');
subplot(2,1,2)
F2=plot(f,abs(F0(1:
512)));
title('FIR低通滤波器滤波后的频谱')
xlabel('频率/Hz');
ylabel('幅值');
(4)IIR高通滤波器
wp=2*2000/fs;
ws=2*1000/fs;
ap=1;
as=30;
[N,Wc]=buttord(wp,ws,ap,as);
[B,A]=butter(N,Wc,'high');
[H,W]=freqz(B,A);
figure
(1)
plot(W,abs(H))
title('高通滤波的幅值响应')
f1=filter(B,A,x2);
sound(f1,fs)
figure
(2)
subplot(2,1,1)
plot(x2)
title('IIR高通滤波器滤波前的时域波形');
subplot(2,1,2)
plot(f1)
title('IIR高通滤波器滤波后的时域波形');
f0=fft(f1,2048);
f=fs*(0:
1023)/2048;
y=fft(x2,2048);
y0=fft(f1,2048);
figure(3)
subplot(2,1,1)
plot(f,abs(y(1:
1024)))
title('IIR高通滤波前的幅频图');
subplot(2,1,2)
plot(f,abs(y0(1:
1024)));
title('IIR高通滤波厚的幅频图');
(5)FIR高通滤波器
clc;
[x1,fs,bits]=wavread('E:
\数字信号.wav');
t=(0:
length(x1)-1)/fs;
Au=0.05;
d=[Au*cos(2*pi*11025*t)];
x2=x1'+d;
T=1/fs;
wp=2*pi*2000/fs;
ws=2*pi*1000/fs;
ap=1;
as=50;
B=wp-ws;
N0=ceil(6.6*pi/B);
N=N0+mod(N0+1,2);
wc=(wp+ws)/2/pi;
h=fir1(N-1,wc,'high',hanning(N));
t=1:
N;
figure
(1)
plot(t,h)
y=fftfilt(h,x2);
sound(y,fs)
figure
(2)
subplot(2,1,1)
plot(x2)
title('FIR高通滤波器滤波前的时域波形');
subplot(2,1,2)
plot(y)
title('FIR高通滤波器滤波后的时域波形');
f0=fft(y,2048);
f=fs*(0:
1023)/2048;
y0=fft(x2,2048);
figure(3)
subplot(2,1,1)
plot(f,abs(y0(1:
1024)))
title('FIR高通滤波前的幅频图');
subplot(2,1,2)
plot(f,abs(f0(1:
1024)));
title('FIR高通滤波厚的幅频图');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 信号 进行 分析 处理 资料