regarding phase compensation?
古いコメントを表示
Hello,
I am trying to do simple phase compensation. However, the code is always making some extra phase correction. Its not making an exact compensation. Please have a look at the code. I think I am formulating it wrongly. Although theta estimation is pretty correct.
theta = pi/5;
t=(0:1000)/1000;
freq = 20;
s1 = sin(2*pi*freq*t);
s2 = sin(2*pi*freq*t + theta);
theta_estimate = acos( 2*mean( s1.*s2) );
s3=s2*(cos(theta_estimate)+(1i*sin(theta_estimate)));
s3 and s1 are not completely phase synced.
採用された回答
その他の回答 (1 件)
BRIAN PENG
2021 年 12 月 13 日
0 投票
Hello, sir, in the code above:
- S3 = S2.*exp(-i*theta_estimate/(length(S2)));
Why we have to divide it by length(S2)?
2. plot(t+time_shift_num,real(s3p),'b--')
Why we have to add "time_shift_num" to do phase shift since suppose we have done the phase shift
in frequence already [S3 = S2.*exp(-i*theta_estimate/(length(S2)));]
3. It seems the phase shift is compensated by time shift, not frequency multiplication. Can you share articles or documentation on this?
Thank you!
カテゴリ
ヘルプ センター および File Exchange で Spectral Measurements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!