0
我正试图找到信号的功率谱。信号长度为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);
我只是更新了代码。我不知道,但是当我添加噪音来表明这两个地块看起来转移。
谢谢你的帮助。请,我不知道,但是当我给信号添加噪音时,这两个地块看起来转移了。我只是更新代码来看看。 – user6052232
我无法重现该问题。从你的代码中删除下面'bin'中的所有内容,并将其替换为我发布的代码。 (显然将'A'重命名为'Y') – mpaskov