Add Example
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
% PRF: pulse repetition frequency
|
||||
% B: bandwidth
|
||||
% fs: sampling rate
|
||||
% D: duty ratio
|
||||
% gamma: compression ratio
|
||||
|
||||
% A: chirp matrix
|
||||
% signal_t: transmitting beam
|
||||
|
||||
|
||||
function [ A, signal_t ] = generate_chirp_mtx(PRF, B, fs, D, gamma, sign_mid)
|
||||
|
||||
% parameters
|
||||
if nargin < 5
|
||||
gamma = 0.5;
|
||||
end
|
||||
if nargin < 6
|
||||
sign_mid = 0;
|
||||
end
|
||||
Tr = 1 / PRF;
|
||||
Tp = Tr * D;
|
||||
K = B / Tp;
|
||||
|
||||
% generate_signal
|
||||
N = Tr * fs;
|
||||
N_high = Tp * fs;
|
||||
N_mtx = round(N / gamma);
|
||||
|
||||
signal_t = zeros(1, N);
|
||||
for i = 1: N_high
|
||||
tp = i * (1 / fs) - sign_mid * N_high / fs / 2;
|
||||
signal_t(1, i) = exp(1j * 2 * pi * 0.5 * K * tp .^ 2);
|
||||
end
|
||||
|
||||
signal_t_2fs = zeros(1, N_mtx);
|
||||
for i = 1: round(N_high / gamma)
|
||||
tp = (i+1) * (1 / fs / 2) - sign_mid * N_high / fs / 2;
|
||||
signal_t_2fs(1, i) = exp(1j * pi * K * tp .^ 2);
|
||||
end
|
||||
|
||||
% generate chirp matrix
|
||||
A = generate_matrix_by_signal2fs(transpose(signal_t_2fs));
|
||||
|
||||
end
|
||||
|
||||
|
||||
% generate chirp matrix when gamma=0.5
|
||||
function [ mtx ] = generate_matrix_by_signal2fs(signal)
|
||||
|
||||
mtx = [];
|
||||
l = round(length(signal) / 2);
|
||||
temp1 = signal(1:2:end);
|
||||
temp2 = circshift(signal(2:2:end), 1);
|
||||
if length(temp2) ~= length(temp1)
|
||||
temp2 = [temp2; 0];
|
||||
end
|
||||
|
||||
for i = 1:l
|
||||
t1 = circshift(temp1, i-1);
|
||||
t2 = circshift(temp2, i-1);
|
||||
if i - 1 > 0
|
||||
t1(1:i - 1,1) = 0;
|
||||
end
|
||||
if i - 1 > 0
|
||||
t2(1:i - 1,1) = 0;
|
||||
end
|
||||
mtx = [mtx,t1,t2];
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user