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

조회 수: 4 (최근 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 CenterFile Exchange에서 Descriptive Statistics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by