安徽财经大学管理科学与工程学院本科毕业论文
附 录
语音信号读入、采样、自相关运算的源程序: function a1
x=wavread('a1.wav');%读取声音文件 x=x(11001:22000); figure(1);
stem(x,'.'); %显示声音信号的波形
n=220; %取20ms的声音片段,即220个样点 for m=1:length(x)/n; %对每一帧求短时自相关函数 for k=1:n; Rm(k)=0;
for i=(k+1):n;
Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n); end end
p=Rm(10:n); %防止误判,去掉前边10个数值较大的点 [Rmax,N(m)]=max(p); %读取第一个自相关函数的最大点 end %补回前边去掉的10个点 N=N+10;
T=N/8; %算出对应的周期
figure(2);stem(T,'.');axis([0 length(T) 0 10]);
xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');
T1= medfilt1(T,5); %去除野点
figure(3);stem(T1,'.');axis([0 length(T1) 0 10]);
xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期'); 语音信号读入、采样、平均幅度差运算源程序: function a11
x=wavread('a1.wav');%读取声音文件 b1=x(11001:22000); figure(1);
stem(b1,'.'); %显示声音信号的波形 N=200;%窗长 A=[];
for k=1:200%延迟长度 sum=0; for m=1:N
sum=sum+abs(b1(m)-b1(m+k-1)); end
A(k)=sum; end
22
安徽财经大学管理科学与工程学院本科毕业论文
s=x(11001:22000); figure(2) subplot(211); plot(s);
subplot(212); plot(A);
低通滤波器设计,滤波的源程序: [x,fs,bits]=wavread('a1.wav'); x1=x(11001:22000); figure(1);
plot(x1);%做原始语音信号的时域图形 title('原始语音信号'); fc1=500;
N1=2*pi*0.9/(0.1*pi) wc1=2*pi*fc1/fs; if rem(N1,2)==0 N1=N1+1; end
Window= boxcar (N1+1); %长度为N1的矩形窗Window b1=fir1(N1,wc1/pi,Window); figure(2);
freqz(b1,1,512);
title('低通滤波器的频率响应');
y= filter(b1,1,x1);%对信号进行低通滤波 figure(3); plot(y);
title('信号经过低通滤波器(时域)');
语音文件a2.wav语音滤波前后基音轨迹图:
23
安徽财经大学管理科学与工程学院本科毕业论文
图1 a2滤波前基音轨迹图
图2 a2滤波后基音轨迹图
24
安徽财经大学管理科学与工程学院本科毕业论文
语音文件a3.wav语音滤波前后基音轨迹图:
图3 a3滤波前基音轨迹图
25
安徽财经大学管理科学与工程学院本科毕业论文
图4 a3滤波后基音轨迹图
语音文件a4.wav语音滤波前后基音轨迹图:
图5 a4滤波前基音轨迹图
26
安徽财经大学管理科学与工程学院本科毕业论文
图6 a4滤波后基音轨迹图
27