生成不同频率不同相位的两个正弦信号相加并叠加高斯白噪声 估计频率

生成一个信号:s(n)=Asin(2πf1n+s1)+Bsin(2πf2n+s2)+W(n) //W(n)是高斯白噪声
估计f1 f2
用matlab完成

编写代码如下


A = 10;
B = 10;
f1 = 10;
f2 = 30;
Fs = 200;
t = 0:1/Fs:2;
s1 = 0.1*pi;
s2 = 0.2*pi;
s = A*sin(2*pi*f1*t + s1) + B*sin(2*pi*f2*t + s2) + wgn(1,numel(t),1);
plot(t,s)
Y = fft(s);
L = numel(t);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
plot(f,P1) 
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')

img

可见f1=10, f2=30