23 lines
520 B
Matlab
23 lines
520 B
Matlab
function fd = cal_doppler_shift(va, vb, ra, rb, fc)
|
|
% va, vb : 각각 물체 a, b의 속도 벡터 [vx vy vz]
|
|
% ra, rb : 각각 물체 a, b의 위치 벡터 [x y z]
|
|
% fc : 송신 주파수 (Hz)
|
|
|
|
c = 3e8; % 빛의 속도 (m/s)
|
|
|
|
% 단위 방향 벡터 r_hat 계산
|
|
r_ab = rb - ra; % a에서 b로 향하는 벡터
|
|
r_hat = r_ab / norm(r_ab); % 단위 벡터
|
|
|
|
% 속도 차이 벡터 계산
|
|
v_rel = vb - va;
|
|
|
|
% 도플러 시프트 계산
|
|
fd = (fc / c) * dot(v_rel, r_hat);
|
|
end
|
|
|
|
|
|
|
|
|
|
|