【发布时间】:2016-11-08 21:33:06
【问题描述】:
我正在尝试查找信号的功率谱。信号长度100000,采样频率1000Hz,点数100000。我使用两种方法找到了功率谱。第一种是将所有长度作为一个部分并为其找到功率谱,而第二种方法是将信号划分为100*1000并找到每一行的频谱,然后获得所有行的平均值。我的问题是我必须在两种方法中得到相同的答案,但我得到了不同的答案。我不知道我的代码有什么错误。
N=100000;
SF=1000;
a=0.1;
b=0.3;
amplitude1=1;
amplitude2=0.5;
t=0:1/SF:100;
f1=SF*a;
f2=SF*b;
A=amplitude1*sin(2*pi*f1*t)+amplitude2*sin(2*pi*f2*t);
Y=2*randn(1,length(A))+A;
bin=[0 :N/2];
fax_Hz=(bin*SF)/N;
FFT=fft(Y);
spectra=2/(SF*length(Y))*(FFT.*conj(FFT));
plot(fax_Hz,spectra(1,1:50001));
D=reshape(Y(1,1:100000),[100,1000]);
M=length(D(1,:));
for i=1:100
FFT_1(i,:)=fft(D(i,:));
S(i,:)=(2/(SF*M))*(FFT_1(i,:).*conj(FFT_1(i,:)));
end
S_f=mean(S);
figure
plot (S_f);
我只是更新代码。我不知道,但是当我添加噪声来表示这两个图看起来发生了变化。
【问题讨论】: