2016-03-28 80 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