How to extract the unwrapped phase of exp(1i*2*pi*f_c*delta*sin(theta)/c)
Afficher commentaires plus anciens
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')
Réponses (1)
Nikhilesh
le 29 Mar 2023
0 votes
Please have a look at the unwrap function.
Catégories
En savoir plus sur Spectral Measurements dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!