realft.m
来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 49 行
M
49 行
% realft.m
function [data]=realft(data,n,isign)
c1=0.5;
theta=3.141592653589793/n;
if (isign == 1)
c2 = -0.5;
data=four1(data,n,1);
else
c2=0.5;
theta = -theta;
end
wtemp=sin(0.5*theta);
wpr = -2.0*wtemp*wtemp;
wpi=sin(theta);
wr=1.0+wpr;
wi=wpi;
n2p3=2*n+3;
for i=2:n/2,
i1=i+i-1;
i2=1+i1;
i3=n2p3-i2;
i4=1+i3;
h1r=c1*(data(i1)+data(i3));
h1i=c1*(data(i2)-data(i4));
h2r = -c2*(data(i2)+data(i4));
h2i=c2*(data(i1)-data(i3));
data(i1)=h1r+wr*h2r-wi*h2i;
data(i2)=h1i+wr*h2i+wi*h2r;
data(i3)=h1r-wr*h2r+wi*h2i;
data(i4) = -h1i+wr*h2i+wi*h2r;
wtemp=wr;
wr=wtemp*wpr-wi*wpi+wr;
wi=wi*wpr+wtemp*wpi+wi;
end
if (isign == 1)
h1r=data(1);
data(1) = h1r+data(2);
data(2) = h1r-data(2);
else
h1r=data(1);
data(1)=c1*h1r+data(2);
data(2)=c1*(h1r-data(2));
data=four1(data,n,-1);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?