所以我有一个简单的程序,我想在其中移动一个简单的正弦函数 pi/2。现在我知道这将非常容易,只需插入一个偏差(即 A*sin(2*pi*frequency + bias)。但这个程序是测试理论的简单方法。我需要移动复杂的磁数据,但是shift 与频率有关。所以要弄清楚如何做到这一点,我只想将这个正弦波移动一个设定的移位,但我想在频域中进行。虽然下面的代码没有显示任何错误,但它确实无法正确移动数据并影响幅度。代码如下。谢谢!
clear all
time = 1:0.01:2*pi; %Create time vector
mag = sin(2*pi*time);
Y = fft(mag); %transform
Pnewr = pi/2;
%t = angle(mag);
t = imag(Y);
%t_fin = t-Pnewr; %Subtract the pahse delay from the original phase vector
R=real(Y);
I=t;
k = I./R
Phi = tan(k);
PhiFinal = Phi-Pnewr;
PhiFinal = PhiFinal'
IFinal = R * atan(PhiFinal);
spec=complex(R,IFinal);
Finalspec = ifft(spec); %Invert the transform
Final = Finalspec;
plot(time,mag);
hold on
plot(time,Final,'r')
grid on