当前位置:文档之家› 信号与系统综合作业

信号与系统综合作业

13级工程信号与系统大作业题目语音信号的采集与频谱分析成绩班级学号姓名日期2015-06-22语音信号的采集与频谱分析【摘要】本设计采集了一段语音,对其进行了时域分析,频谱分析,分析语音信号的特性。

并应用matlab 平台对语音信号加入噪声,进一步设计了一个的低通滤波器,然后对加噪的语音信号进行滤波处理。

【关键词】语音信号;时域特性;频域特性; 滤波器1绪论1.1题目介绍利用本课程中关于信号处理的相关内容,进行简单的语音信号采集及频谱分析工作,已达到加深对本课程信号与系统相关知识的理解,熟悉matlab工具的目的,并初步建立系统设计的概念。

1.2具体要求(1)自己语音采集自己唱一首歌,利用相关工具采集并存储为MATLAB可处理格式。

(2)歌星语音采集将自己翻唱歌曲原曲处理为matlab可处理格式。

注意:自己语音与歌星语音应具有可比性,曲目、伴奏、时长等应相同(3)频谱分析利用matlab软件对两段音乐分别进行频谱分析,分析特性。

2基本原理2.1 语音信号概述语言是人类创造的,是人类区别于其他地球生命的本质特征之一。

人类用语言交流的过程可以看成是一个复杂的通信过程,为了获取便于分析和处理的语音信源,必须将在空气中传播的声波转变为包含语音信息并且记载着声波物理性质的模拟(或数字)电信号,即语音信号,因此语音信号就成为语音的表现形式或载体。

语音学和数字信号处理的交叉结合便形成了语音信号处理。

语音信号处理建立在语音学和数字信号处理基础之上。

2.2数字滤波器原理2.2.1数字滤波器的概念数字滤波器的实质是用一有限精度算法实现的离散时间线性时不变系统,以完成对信号进行滤波处理的过程。

它是数字信号处理的一个重要分支,具有稳定性好、精度高、灵活性强、体积小、质量轻等诸多优点。

2.2.2数字滤波器的分类数字滤波器根据不同的分类标准可以将滤波器分成不同的类别。

(1)根据单位冲激响应h(n)的时间特性分类无限冲激响应(IIR)数字滤波器有限冲激响应(FIR)数字滤波器(2)根据实现方法和形式分类递归型数字滤波器非递归型数字滤波器快速卷积型(3)根据频率特性分类低通数字滤波器、高通数字滤波器、带通数字波器、带阻数字滤波器3具体实现3.1声音信号获取使用软件COOK EDIT PRO进行声音信号采集。

对于44100Hz、22050Hz、11025Hz三种不同采样率共进行三次采集。

采集完毕后使用COOL EDIT PRO软件进行后期处理,加入背景音乐。

原唱音乐通过网络获得所有音乐信号通过COOL EDIT PRO处理,统一音量大小、起始位置、时间长度并转换为matlab 可处理格式。

3.2声音信号的读取与打开MATLAB中,[x,Fs,bits]=wavread('DATA');用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。

wavplay(x,Fs); 用于对声音的回放。

向量x则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。

程序代码[x,Fs,nbits,readinfo]=wavread('e:\myvoice');t=(0:length(x)-1)/Fs;X=fft(x); %快速傅里叶变换Lx=length(X);fx=(0:Lx-1)'*(Fs-1)/Lx;figure(1);subplot(211);plot(t,x);grid on; hold on;title('我的声音信号波形');xlabel('t/s');ylabel('x(t)'); subplot(212);plot(fx(1:length(fx)),abs(X(1:length(fx))));title('我的声音信号的频谱');xlabel('f/Hz');ylabel('幅值'); grid on; hold on;原唱信号处理相同,只需将文件名更改即可。

结果波形如下。

分析:排除跑调,抢拍等因素,翻唱原唱差距依然存在。

由于录音器材缘故,翻唱获得的音乐左右声道几乎相同,图中中蓝绿色差别可以看出。

同时,由于录音环境不同,翻唱存在大量杂音干扰,原唱则在专业录音室中进行,也导致了波形的差异。

而翻唱音乐的频谱更集中,而翻唱的频谱更离散。

3.3声道分离与合并因双声道处理后所得图形显示不直观,故将双声道合并再进行归一化后再对音频信号进行处理。

程序代码x1=x(:,1); % 提取第一声道x2=x(:,2); % 提取第二声道x12=x1+x2; % 两声道合并为单声道x12m=max(max(x12),abs(min(x12))),X=x12/x12m; % 归一化处理注:因声音信号读取命令,绘制波形命令除文件名变量名外基本一致,此处省略。

值得一提的是,若使用x12=[x1,x2]进行合并,则声道合并后变为双声道,与原音乐相同。

结果波形如下。

两声道直接相加合并为单声道后声音过大丢失细节信息,所以进行归一化处理,将音量缩小。

wav文件的默认采样速率为44.1KHz,仍然远远高于我们通常说的语音信号需要的频谱宽度,例如在电话对语音信号的采样中,我们仅仅使用8KHz的采样速率。

3.4.1录音时使用不同采样率共使用44100Hz、22050Hz、11025Hz三种不同采样率进行声音采集。

结果波形如下分析:在此分辨率下波形差异显示不是很明显,仔细辨别可以发现采样率越小波形越稀疏。

使用wavplay命令试听后发现采样率越小声音细节丢失越多,而44100Hz声音还原度最高。

不同采样率下声音信号会产生较大差异3.4.2对声音信号进行不同速率的降采样使用命令x1=x(1:2:length(x)),就可以将原序列x每隔1个采样后放入序列x1中,这时x1序列对应的采样频率即为22KHz。

程序代码x1=x(1:2:length(x)); %将采样率降为22050Hzx2=x(1:4:length(x)); %将采样率降为11025Hzwavplay(x,Fs);wavplay(x1,Fs);wavplay(x2,Fs);分析:命令播放后发现x1相当于两倍速快进,x2则相当于四倍速度。

采样率越低,声音播放速度越快、越尖锐。

若将程序改为wavplay(x1,Fs/2);则为原速度播放。

相当于3.4.1中22050Hz采集的信号。

同样,采样率越小声音信号细节丢失越多,还原度越低。

3.5加噪声测试Matlab中可以使用命令randn(A,B)产生一段高斯白噪声,这里为图方便使用命令y=awgn(A,B,'measured')在原声音信号中直接加入噪声信号。

程序代码y=awgn(x,5,'measured');%’measured’表示噪声加入前测定声音信号强度结果波形如下声音播放后发现明显多了许多杂音。

噪声信号由命令n=y-x获取,分析如下3.6滤波器测试3.6.1滤波器设计设计为低通滤波器,性能参数为fp=1500;fc=1700;As=100;Ap=1;程序如下fp=1500;fc=1700;As=100;Ap=1;wc=2*pi*fc/Fs; wp=2*pi*fp/Fs;wdel=wc-wp;beta=0.112*(As-8.7);N=ceil((As-8)/2.285/wdel); wn= kaiser(N+1,beta);ws=(wp+wc)/2/pi;b=fir1(N,ws,wn);freqz(b,1);滤波器频率特性如下3.6.2加噪滤波后分析程序代码如下y=awgn(x,5,'measured');x_1=fftfilt(b,x);结果波形如下分析;由于低通滤波器同低频阻高频,滤波后声音变得低沉许多。

同时也丢失了一些声音细节。

滤波实质相当于降噪。

但实际操作中滤波器设计太过简单,所以效果相当不理想4心得体会通过此次综合作业,深入了解了大量有关声音信号处理的知识。

较为熟练地掌握了matlab 中简单声音信号处理的使用。

通过直观的图形对比,将复杂且不能量化的声音信号进行比较。

加深了对傅里叶变换的理解,了解数字音频信号处理的一些原理,也深入了对课程的了解。

附录程序源代码声音信号读取******************************************************************************* [x,Fs,nbits,readinfo]=wavread('e:\myvoice');t=(0:length(x)-1)/Fs;X=fft(x);Lx=length(X);fx=(0:Lx-1)'*(Fs-1)/Lx;figure(1);subplot(211);plot(t,x);grid on; hold on;title('我的声音信号的波形');xlabel('t/s');ylabel('x(t)');subplot(212);plot(fx(1:length(fx)),abs(X(1:length(fx))));title('我的声音信号的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;声道分离与合并******************************************************************************* [x,Fs,nbits,readinfo]=wavread('e:\ myvoice');t=(0:length(x)-1)/Fs;x1=x(:,1);x2=x(:,2);x12=x1+x2;x12m=max(max(x12),abs(min(x12))),X=x12/x12m;X4=fft(x);Lx=length(X);fx=(0:Lx-1)'*(Fs-1)/Lx;X1=fft(x1);Lx1=length(X1);fx1=(0:Lx1-1)'*(Fs-1)/Lx1;X2=fft(x2);Lx2=length(X2);fx2=(0:Lx2-1)'*(Fs-1)/Lx2;X3=fft(X);Lx3=length(X3);fx3=(0:Lx3-1)'*(Fs-1)/Lx3;figure(1);subplot(421);plot(t,x);grid on; hold on;title('我的声音信号的波形');xlabel('t/s');ylabel('x(t)');subplot(422);plot(fx(1:length(fx)),abs(X4(1:length(fx))));title('我的声音信号的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;subplot(423);plot(t,x1);grid on; hold on;title('我的声音信号声道1的波形');xlabel('t/s');ylabel('x(t)');subplot(424);plot(fx1(1:length(fx1)),abs(X1(1:length(fx1))));title('我的声音信号声道1的波形');xlabel('f/Hz');ylabel('幅值');grid on; hold on;subplot(425);plot(t,x2);grid on; hold on;title('我的声音信号声道2的波形');xlabel('t/s');ylabel('x(t)');subplot(426);plot(fx2(1:length(fx2)),abs(X2(1:length(fx2))));title('我的声音信号声道2的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;subplot(427);plot(t,X);title('我的声音声道合并后信号的波形');xlabel('t/s');ylabel('x(t)');grid on; hold on;subplot(428);plot(fx3(1:length(fx3)),abs(X3(1:length(fx3))));title('我的声音声道合并后信号的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;不同采样率下声音信号分析******************************************************************************* [x,Fs,nbits,readinfo]=wavread('e:\original');t=(0:length(x)-1)/Fs;x1=x(1:2:length(x)); %x1对应采样率为22050Hzx2=x(1:4:length(x)); %x2对应采样率为11025Hzx3=x(1:8:length(x)); %x3对应采样率为5512Hzwavplay(x,Fs);wavplay(x1,Fs);wavplay(x2,Fs);[x,Fs,nbits,readinfo]=wavread('e:\myvoice.wav');t=(0:length(x)-1)/Fs;[x_1,Fs_1,nbits_1,readinfo_1]=wavread('e:\myvoice_22050.wav');t_1=(0:length(x_1)-1)/Fs_1;[x_2,Fs_2,nbits_2,readinfo_2]=wavread('e:\myvoice_11025');t_2=(0:length(x_2)-1)/Fs_2;subplot(311);plot(t,x);title('我的声音信号(44100Hz)的波形');xlabel('t/s');ylabel('x(t)');subplot(312);plot(t_1,x_1);title('我的声音信号(22050Hz)的波形');xlabel('t/s');ylabel('x_1(t)'); subplot(313);plot(t_2,x_2);title('我的声音信号(11025Hz)的波形');xlabel('t/s');ylabel('x_2(t)');加噪声后分析******************************************************************************* [x,Fs,nbits,readinfo]=wavread('e:\original');t=(0:length(x)-1)/Fs;x1=x(:,1);x2=x(:,2);x12=x1+x2;x12m=max(max(x12),abs(min(x12))),x=x12/x12m;y=awgn(x,5,'measured');X=fft(x);Lx=length(X);fx=(0:Lx-1)'*(Fs-1)/Lx;Y=fft(y);Ly=length(Y);fy=(0:Ly-1)'*(Fs-1)/Ly;figure(1);subplot(221);plot(t,x);grid on; hold on;title('我的声音信号的波形');xlabel('t/s');ylabel('x(t)');subplot(222);plot(fx(1:length(fx)),abs(X(1:length(fx))));title('我的声音信号的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;subplot(223);plot(t,y);grid on; hold on;title('我的声音信号加噪声后的波形');xlabel('t/s');ylabel('x(t)');subplot(224);plot(fy(1:length(fy)),abs(Y(1:length(fy))));title('我的声音信号加噪声后的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;加噪声滤波******************************************************************************* [x,Fs,nbits,readinfo]=wavread('e:\myvoice.wav');t=(0:length(x)-1)/Fs;X=fft(x);Lx=length(X);fx=(0:Lx-1)'*(Fs-1)/Lx;y=awgn(x,5,'measured');fp=1500;fc=1700;As=100;Ap=1;wc=2*pi*fc/Fs; wp=2*pi*fp/Fs;wdel=wc-wp;beta=0.112*(As-8.7);N=ceil((As-8)/2.285/wdel);wn= kaiser(N+1,beta);ws=(wp+wc)/2/pi;b=fir1(N,ws,wn);x_1=fftfilt(b,y);X_1=fft(x_1);Lx_1=length(X_1);fx_1=(0:Lx_1-1)'*(Fs-1)/Lx_1;subplot(221);plot(t,x);title('我的声音信号的波形');xlabel('t/s');ylabel('x(t)');grid on; hold on;subplot(222);plot(fx(1:length(fx)),abs(X(1:length(fx))));title('我的声音信号的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;subplot(223);plot(t,x_1);title('我的声音信号加噪滤波后的波形');xlabel('t/s');ylabel('x_1(t)');grid on; hold on;subplot(224);plot(fx_1(1:length(fx_1)),abs(X_1(1:length(fx_1))));title('我的声音信号加噪滤波后的频谱');xlabel('f/Hz');ylabel('幅值');grid on; hold on;。

相关主题