如何求兩個訊號的相位差

2021-10-01 15:54:03 字數 1869 閱讀 6665

1.

在訊號處理裡經常會碰到,用於相位差的非引數估計,我接觸到的典型的用處就是在isar成像中用於平動相位估計。

假設兩個頻率相同具有相位差的訊號

其時間互相關函式為

相位差% 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.乙個簡單的辦法是構造乙個沒有lag的,頻率相同的標準訊號。然後做兩者的cross-correlation, 然後找出最大的lag, 看它對應的時間點是什麼。

舉例來說

比如你有訊號s2, 延時是0.35s(相位差為2pi.35 那麼你可以構造乙個0相位的s1

t = [0:127]0.02;

f = 1.0;

s1 = sin(2pift);

s2 = sin(2pif*(t-0.35));

做cross-correlation

x的最大值那點所對應的橫座標(tx)就是延時。

3.兩個訊號分別與cos(2πft)和sin(2πft)做內積,結果記為x1,y1;x2,y2

求出real和imag 使用atan2(real,imag)求得相位

atan2(y1,x1) 和 atan2(y2,x2)分別是兩個訊號的絕對相位,取值範圍是 (-π,π]

把絕對相位做差得到相對相位

4.

% h=hilbert(x);%hilbert變換

% ang=angle(h) %求摺疊相位 ,這個就是瞬時相位

**5.**另有:z為乙個複數時,r=abs(z),theta=angle(z),之後利用z=r.exp(itheta)可以將z復原.

如何理解電容 電感產生的相位差

正確性有待證實 一 元器件的基本工作原理 電阻 電能 熱能 電感 電能 磁場能,磁場能 電能 電容 電勢能 電場能,電場能 電流 由此可見,電阻 電感 電容就是能源轉換的元件。電阻 電感實現不同種類能量間的轉換,電容則實現電勢能與電場能的轉換。1 電阻 電阻的原理是 電勢能 電流 熱能。電源正負兩端...

Stm32產生兩路相位差為180度的pwm

stm32產生兩路相位差為180度的pwm by derrick wang 由於上次用高階定時器產生的兩路互補帶死區的pwm訊號不能滿足應用需求。如標題所示需要的是兩路相位差為180度的pwm訊號,占空比和頻率都是相同的,只是相位不同。仔細重讀高階定時器的資料手冊,發現產生的兩路互補訊號達不到這個要...

python絕對中位差 如何得到兩個數的絕對差?

您可以使用 語法在shell中直接執行簡單的整數運算。在function abs diff 然後簡單地使用abs diff 10 5 在你的 裡。在 更新 如果你能解釋一下邏輯,那就太好了。我們開始 基本思想是我們編寫乙個bash函式,它接受兩個整數作為引數,並返回它們的絕對差。在 bash函式可以...