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_短时傅里叶分析_实现与讨论 [未完成]

短时幅度谱短时幅度谱估计在语音增强方面的MATLAB仿真

matlab中的AR模型短时预测交通流

spectrogram函数做短时傅里叶分析

短时能量基于matlab语音信号短时能量含Matlab源码 1719期

matlab 画短时平均幅度谱