如何求兩個(gè)信號的相位差

1.在信號處理里經(jīng)常會(huì)碰到,用于相位差的非參數(shù)估計(jì),我接觸到的典型的用處就是在ISAR成像中用于平動(dòng)相位估計(jì)。

假設(shè)兩個(gè)頻率相同具有相位差的信號


其時(shí)間互相關(guān)函數(shù)為


相位差


% test programme for phase error estimation
clc; clear;

%% Signal
f0 = 200; % signal frequency (Hz)
fs = 1000; % sampling frequency (Hz)
T = 5 / f0; % sampling time (s)
N = round(T * fs);
N = N + mod(N, 2);
t = [0: N - 1] / fs;

phase_1 = pi * rand(1, 1);
phase_2 = pi * rand(1, 1);
phase_error = phase_1 - phase_2
s1 = exp(1i * 2 * pi * f0 * t + 1i * phase_1);
s2 = exp(1i * 2 * pi * f0 * t + 1i * phase_2);

%% Phase error estimation
corr = xcorr(s1, s2); % cross-correlation function
corr_abs = abs(corr);

phase_error_estimated = angle(corr(corr_abs == max(corr_abs)) / abs(corr(corr_abs == max(corr_abs))))

2.一個(gè)簡單的辦法是構(gòu)造一個(gè)沒有l(wèi)ag的,頻率相同的標(biāo)準(zhǔn)信號。然后做兩者的cross-correlation, 然后找出最大的Lag, 看它對應(yīng)的時(shí)間點(diǎn)是什么。

舉例來說
比如你有信號s2, 延時(shí)是0.35s(相位差為2pi.35 那么你可以構(gòu)造一個(gè)0相位的s1

t = [0:127]0.02;
f = 1.0;
s1 = sin(2pift);
s2 = sin(2pif*(t-0.35));

做cross-correlation

x = xcorr(s1,s2,‘coeff’);
tx = [-127:127]*0.02;


image.png

x的最大值那點(diǎn)所對應(yīng)的橫坐標(biāo)(tx)就是延時(shí)。

兩個(gè)信號分別與cos(2πft)和sin(2πft)做內(nèi)積,結(jié)果記為X1,Y1;X2,Y2
求出real和imag 使用atan2(real,imag)求得相位
atan2(Y1,X1) 和 atan2(Y2,X2)分別是兩個(gè)信號的絕對相位,取值范圍是 (-π,π]
把絕對相位做差得到相對相位

% H=hilbert(x);%Hilbert變換
% ang=angle(H) %求折疊相位 ,這個(gè)就是瞬時(shí)相位

5.另有:Z為一個(gè)復(fù)數(shù)時(shí),R=abs(Z),theta=angle(Z),之后利用Z=R.exp(itheta)可以將Z復(fù)原
原文鏈接:https://blog.csdn.net/xiexiaoyu1996/article/details/103661391

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容