フィルターのクリア

How to extract the unwrapped phase of exp(1i*2*p​i*f_c*delt​a*sin(thet​a)/c)

3 ビュー (過去 30 日間)
Jung Hsuan
Jung Hsuan 2023 年 3 月 21 日
回答済み: Nikhilesh 2023 年 3 月 29 日
I just want to obtain 2*pi*f_c*delta*sin(theta)/c from exponential, but the command 'angle' and 'phase' will return the wrap phase.
I have tried 'phase = dsp.PhaseExtractor('TreatFramesIndependently',false)', then ploted three kinds of matlab computation.
The results turns out in the following figure.
It still have an intercept between the phase I want(Red line) and the output of dsp.PhaseExtractor(Blue line).
please give me the suggestion! Thank you!
clear;close all;clc;
f_c=2*10^9;
c=3*10^8;
D=50;
theta_deg=-D/2:D/2;
theta=deg2rad(theta_deg);
dis=zeros(D,1);
delta=6*0.15; % delta will change
for j=1:D
dis(j)=exp(1i*2*pi*f_c*delta*sin(theta(j))/c);
end
phase = dsp.PhaseExtractor('TreatFramesIndependently',false);
ph_ex=phase(dis);
ph_Iwant=2*pi*f_c*delta*sin(theta)/c; %unwrap phase
ph_ph=angle(dis);
plot(ph_ex,'LineWidth',1)
hold on
plot(ph_Iwant,'LineWidth',1)
plot(ph_ph,'LineWidth',1)
grid;ylabel('angle(rad/s)')
title('delta=',num2str(delta));
legend('extract','I want','wrap phase')

回答 (1 件)

Nikhilesh
Nikhilesh 2023 年 3 月 29 日
Please have a look at the unwrap function.

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by