发布时间 : 星期六 文章基于Matlab的语音信号传输系统的分析与仿真(D.L.K.5-14)更新完毕开始阅读
江西理工大学应用科学学院毕业设计
图4.4频率调整后波形图
与原语音信号相比,经过调整后的信号周期变为原来的1/2,此时的语速明显变快,即实现了信号的2倍频功能。
4.3.2.2 语音信号的振幅调整
在设计中,可以将语音信号的幅度进行提高或降低操作,来实现语音信号的调整,得到声音音量大小不同的语音信号,例如将原语音信号的幅度提高一倍,得到如下图4.5的信号波形图,可以通过GUI操作界面的输出功能试听调整后的效果。
图4.5 幅度调整后波形图
此时听到的调整后声音声调变高,但不是很明显,可以将幅度的变化值设置的比较大,
那样的话就可以得到效果相当明显的语音信号了。
19
彭凯华:基于Matlab的语音信号传输系统的分析与仿真
4.3.3 语音信号的傅里叶变换
倒谱分析是指信号短时振幅谱的对数进行傅里叶反变换。它具有可近似地分离并提取出频谱包络信息和细微结构信息的特点。
对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得
到信号的频谱图,并进行倒谱分析,得到倒谱图。 傅里叶变换的部分程序如下:
x=y(44101:55050,1); %提取原语音信号的一部分 t=(0:length(x)-1)/fs; %计算样本时刻 subplot(3,1,1); %确定显示位置 plot(t,x); %画波形图 legend('波形图'); xlabel( 'Time(s)'); ylabel('Amplitude');
Y=fft(x,hamming(length(x))); %做加窗傅里叶变换 fm=5000*length(Y)/fs; %限定频率范围 f=(0:fm)*fs/length(Y); %确定频率刻度 subplot(3,1,2);
plot(f,20*log10(abs(Y(1:length(f)))+eps)); legend('频谱图'); %画频谱图 ylabel('幅度(db)'); xlabel('频率(Hz)');
c=fft(log(abs(x)+eps)); %倒频谱计算 ms1=fs/1000; ms20=fs/50
q=(ms1:ms20)/fs; %确定倒频刻度 subplot(3,1,3);
plot(q,abs(c(ms1:ms20))); %画倒谱图 legend('倒谱图'); xlabel('倒频(s)'); ylabel('倒频谱幅度(Hz)');
运行Process? Transform,对语音信号的一部分进行傅里叶变换,并进行倒谱分析,得
20
江西理工大学应用科学学院毕业设计
到如图4.6
图4.6 声音样本波形图、频谱图和倒谱图
从上面的倒谱图可以看出.当读“主人,信息收到了”时,所对应的频率大概在200Hz左右。这与人的语音信号频率集中在200 Hz到4.5 kHz之间是相一致的。而在未发声的时间段内,相对的小高频部分(200500Hz)应该属于背景噪声。
下面的一段程序是语音信号在MATLAB中的最简单表现,它实现了语音的读入打开,以及绘出了语音信号的波形频谱图。
[x,fs,bits]=wavread('ding.wav',[1024 5120]); sound(x,fs,bits); X=fft(x,4096); magX=abs(X); angX=angle(X);
subplot(221);plot(x);title('原始信号波形'); subplot(222);plot(X); title('原始信号频谱'); subplot(223);plot(magX);title('原始信号幅值');
21
彭凯华:基于Matlab的语音信号传输系统的分析与仿真
subplot(224);plot(angX);title('原始信号相位'); 程序运行可以听到声音,得到的结果如图4.7所示:
图4.7 语音信号的读入与打开
写出程序并画出它的时域波形和频谱
fs=8000; %语音信号采样频率为8000 x1=wavread('pb8k.wav'); t=(0:length(x1)-1)/8000;
y1=fft(x1,2048); %对信号做2048点FFT变换 f=fs*(0:1023)/2048; figure(1)
plot(t,x1) %做原始语音信号的时域图形 grid on;axis tight; title('原始语音信号'); xlabel('time(s)'); ylabel('幅度'); figure(2)
plot(f,abs(y1(1:1024))) %做原始语音信号的FFT频谱图 grid on;axis tight;
title('原始语音信号FFT频谱') xlabel('Hz'); ylabel('幅度');
22