簡體   English   中英

信號相移

[英]Phase shift in a signal

這就是我編寫代碼的方式

fc = 10;
td = 5000;
fs = 3*fc;
ts = 1/fs;
t = 0:ts:1-ts;
a = cos(2*pi*fc*t);
figure, plot(a);
Y = fftshift(fft(a));
nfft = length(Y);
p = 0:fs/nfft:1-fs/nfft;
p1 = Y.*exp(-1i*2*pi*p*td);
p2 = ifft(ifftshift(p1));
figure, plot(abs(p2));

這是我實現的結果。 但是,具有相移的信號與沒有相移的信號相同。

在此處輸入圖片說明

在此處輸入圖片說明

如果要添加相移,則只需執行以下操作:

a = cos(2*pi*fc*t + S);

其中S是偏移(弧度)。
另外,如果您仍想繪制ifft(p1) ,則不應該執行abs(p2)而應該執行real(p2)
我希望這有幫助

您可以乘以exp(-1i*2*pi*p*td)在FT域中添加延遲,這是正確的。

但是默認情況下fft不在居中(為此使用fftshift ),DC位於索引1。因此p不正確,請嘗試p = 0:fs/nfft:1-fs/nfft; 代替。

編輯:似乎不完全清楚。 如果使用p = 0:fs/nfft:1-fs/nfft; ,請勿使用fftshift 如果要使用fftshift ,則p必須為-1/2+fs/nfft:fs/nfft:1/2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM