matlab 短时自相关实现
Posted 胡刚2016
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 短时自相关实现相关的知识,希望对你有一定的参考价值。
使用的voice.txt内容如下,是由很多行组成的
fid=fopen('voice.txt', 'rt');
x=fscanf(fid, '%f');
fclose(fid);
%矩形窗做自相关
s1=x(1: 320);%取数组x的前320个数字
N=320;
A=[];
for k=1:320
sum=0;
for m=1:N-k+1
sum=sum+s1(m)*s1(m+k-1);%自相关
end
A(k)=sum;
end
disp(A);
for k=1:320
A1(k)=A(k)/A(1); %归一化A(k);
end
%hamming窗做自相关
f=zeros(1, 320);
n=1;
j=1;
while j<=320
f(1, j)=x(n)*[0.54-0.46*cos(2*pi*n/319)];%x(n)*hamming窗
j=j+1;
n=n+1;
end
B=[];
for k=1:320
sum=0;
for m=1:N-k+1
sum=sum+f(m)*f(m+k-1);%自相关
end
B(k)=sum;
end
for k=1:320
B1(k)=B(k)/B(1);%归一化
end
s2=s1/max(s1);
figure(1);
subplot(3,1,1);
plot(s2);
xlabel('样点数');
ylabel('幅值');
axis([0, 320, -1, 1]);
subplot(3, 1, 2);
plot(A1);
xlabel('延时k');
ylabel('R(k)');
axis([0, 320, -1, 1]);
subplot(3,1,3);
plot(B1);
xlabel('延时k');
ylabel('R(k)');
axis([0, 320, -1, 1]);
以上是关于matlab 短时自相关实现的主要内容,如果未能解决你的问题,请参考以下文章
Matlab_spectrogram_短时傅里叶分析_实现与讨论 [未完成]