Azzera filtri
Azzera filtri

ofdm time delay modeling

22 visualizzazioni (ultimi 30 giorni)
제 허
제 허 il 4 Lug 2021
Risposto: Vaibhav il 25 Apr 2024
hello.
I want to know ofdm time delay modeling for ofdm radar.
% simulation setting
target_pos = 500;
target_speed = 20;
t_d = 2*target_pos/c; % time delay
f_d = 2*target_speed/c*fc; % doppler frequency
t_delay = exp(-1j.*2.*pi.*(1:n_fft).*t_d.*f_s); %n_fft : fft points, f_s : frequency spacing
t_delay = t_delay.';
f_doppler = exp(1j.*2.*pi.*(0:n_sym-1).*To.*f_d); % To : Symbol duration including time guard
RD = t_delay * f_doppler;
After IFFT computing at Tx, I multiply RD matrix to IFFT result.
Its correct method??..

Risposte (1)

Vaibhav
Vaibhav il 25 Apr 2024
Hi 제 허
You are heading in the right direction with your approach to simulating time delay and Doppler shift effects in an OFDM radar system.
Below code simulates a basic OFDM system with parameters that you can adjust according to your needs. It generates random OFDM symbols, applies time delay and Doppler shift effects in the frequency domain, performs the IFFT to convert symbols to the time domain, and adds a cyclic prefix to each symbol.
clear; clc;
% Simulation parameters
c = 3e8; % Speed of light (m/s)
fc = 2.4e9; % Carrier frequency (Hz)
n_fft = 64; % FFT points
n_sym = 10; % Number of OFDM symbols
f_s = 15e3; % Subcarrier spacing (Hz)
To = 1/f_s; % OFDM symbol duration excluding guard interval
BW = n_fft * f_s; % System bandwidth
target_pos = 500; % Target position (m)
target_speed = 20; % Target speed (m/s)
% Calculate time delay and Doppler frequency
t_d = 2*target_pos/c; % Time delay
f_d = 2*target_speed/c*fc; % Doppler frequency
% Generate a random OFDM symbol (in frequency domain)
X = randn(n_fft, n_sym) + 1j*randn(n_fft, n_sym); % Random OFDM symbols
% Apply time delay and Doppler shift in frequency domain
for k = 1:n_fft
for l = 1:n_sym
% Time delay effect
t_delay = exp(-1j*2*pi*(k-1)*t_d*f_s);
% Doppler shift effect
f_doppler = exp(1j*2*pi*(l-1)*To*f_d);
% Apply effects to OFDM symbols
X(k, l) = X(k, l) * t_delay * f_doppler;
end
end
% Perform IFFT to get time-domain OFDM signal
ofdm_td_signal = ifft(X, n_fft);
% Add cyclic prefix (CP) to each OFDM symbol if needed
cp_length = n_fft / 4; % Example CP length
ofdm_td_signal_cp = [ofdm_td_signal((end-cp_length+1):end, :); ofdm_td_signal];
% Reshape the signal for transmission (serial stream)
tx_signal = ofdm_td_signal_cp(:);
% Plot the real part of the transmitted signal
figure;
plot(real(tx_signal));
title('Real Part of the Transmitted OFDM Signal with Time Delay and Doppler Shift');
xlabel('Sample Index');
ylabel('Amplitude');
I hope this gets you started.

Categorie

Scopri di più su Detection, Range and Doppler Estimation in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by