📄 语音信号的时域分析.m
字号:
clear all;close all;clc;
Fs=8000;%采样率8000Hz
y=wavrecord(3*Fs,Fs,'single');%录音时长3秒,16位量化
wavplay(y,Fs);
figure(1);plot(y);
title('语音波形');
figure(2);
F1=enframe(y,200);
eng=sum(F1.^2);
subplot(2,2,1);plot(eng);xlabel('帧');ylabel('短时平均能量');title('N=200');
F2=enframe(y,150);
eng=sum(F2.^2);
subplot(2,2,2);plot(eng);xlabel('帧');ylabel('短时平均能量');title('N=150');
F3=enframe(y,100);
eng=sum(F3.^2);
subplot(2,2,3);plot(eng);xlabel('帧');ylabel('短时平均能量');title('N=100');
F4=enframe(y,50);
eng=sum(F4.^2);
subplot(2,2,4);plot(eng);xlabel('帧');ylabel('短时平均能量');title('N=50');
figure(3);
F1=enframe(y,200);
eng=sum(abs(F1));
subplot(2,2,1);plot(eng);xlabel('帧');ylabel('短时平均幅度');title('N=200');
F2=enframe(y,150);
eng=sum(abs(F2));
subplot(2,2,2);plot(eng);xlabel('帧');ylabel('短时平均幅度');title('N=150');
F3=enframe(y,100);
eng=sum(abs(F3));
subplot(2,2,3);plot(eng);xlabel('帧');ylabel('短时平均幅度');title('N=100');
F4=enframe(y,50);
eng=sum(abs(F4));
subplot(2,2,4);plot(eng);xlabel('帧');ylabel('短时平均幅度');title('N=50');
figure(4);
F1=enframe(y,200);
S1=F1>=0;
K1=diff(S1);
Z1=sum(abs(K1))./2;
subplot(2,2,1);plot(Z1);xlabel('帧');ylabel('短时平均过零率');title('N=200');
F2=enframe(y,150);
S2=F2>=0;
K2=diff(S2);
Z2=sum(abs(K2))./2;
subplot(2,2,2);plot(Z2);xlabel('帧');ylabel('短时平均过零率');title('N=150');
F3=enframe(y,100);
S3=F3>=0;
K3=diff(S3);
Z3=sum(abs(K3))./2;
subplot(2,2,3);plot(Z3);xlabel('帧');ylabel('短时平均过零率');title('N=100');
F4=enframe(y,50);
S4=F4>=0;
K4=diff(S4);
Z4=sum(abs(K4))./2;
subplot(2,2,4);plot(Z4);xlabel('帧');ylabel('短时平均过零率');title('N=50');
%close all;
figure(5);
%[y,fs,N]=wavread('Blip.wav');
F=enframe(y,200);
f75=F(:,75);
a=lpc(f75,12);
est_f75=filter([0-a(2:end)],1,f75);
e=f75-est_f75;
[acs,lags]=xcorr(e,'coeff');
subplot(2,2,1);
plot(1:199,f75(1:199),1:199,est_f75(1:199),'--');
title('原始信号 vs. LPC估计信号(清音帧)');
xlabel('样点');ylabel('幅度');grid;
legend('原始信号','LPC估计信号')
subplot(2,2,2);
plot(lags,acs);
title('预测误差的自相关(清音帧)');
xlabel('延时');ylabel('归一化值');grid;
f80=F(:,80);
a=lpc(f80,12);
est_f80=filter([0-a(2:end)],1,f80);
e=f80-est_f80;
[acs,lags]=xcorr(e,'coeff');
subplot(2,2,3);
plot(1:199,f80(1:199),1:199,est_f80(1:199),'-');
title('原始信号 vs. LPC估计信号(浊音帧)');
xlabel('样点');ylabel('幅度');grid;
legend('原始信号','LPC估计信号');
subplot(2,2,4);
plot(lags,acs);
title('预测误差的自相关(浊音帧)');
xlabel('延时');ylabel('归一化值');grid;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -