2016-03-28 78 views
0

我想要如下所示的相移一个正弦波。如何相移一个正弦波 - MATLAB?

enter image description here

这里发生的事情是,相移发生在红线的地步。因此,它不是遵循其自然路径(虚线),而是开始沿着移动的路径(虚线)。

我试图编码如下。

clear; 

t =(0:10000)/10000'; 

for ii = 1:length(t) 

x(ii)=exp(i*2*100*t(ii)); 

    if ii == 235  % point at which the phase shift occurs 

     x(ii) = x(ii)*exp(-i*(pi/4)); 

    end 

end 
plot(t,real(x)); 

有人能告诉我我的代码中的错误吗?

回答

1
clear; 

t =(0:1000)/10000'; 

for ii = 1:length(t) 

x(ii)=exp(i*2*100*t(ii)); 

    if ii >= 235  % point at which the phase shift occurs 

     x(ii) = x(ii)*exp(i*(pi/4)); 

    end 

end 
plot(t,real(x)); 

只要在if语句中将==更改为> =。

结果如下。

enter image description here

+0

我改变一两件事,EXP(-i *(π/ 4))为exp(I *(π/ 4)),使结果更类似于您的图片。 – KKS

+0

这是有效的。非常感谢。 – nashynash

+0

您的欢迎〜.... – KKS