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

7 ビュー (過去 30 日間)
Jung Hsuan 2023 年 3 月 21 日

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;
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)
title('delta=',num2str(delta));
legend('extract','I want','wrap phase')

サインインしてコメントする。

### 回答 (1 件)

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