基于Matlab的语音信号传输系统的分析与仿真(D.L.K.5-14)

发布时间 : 星期六 文章基于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

联系合同范文客服:xxxxx#qq.com(#替换为@)