% SFW信号 FFT 两个点目标 散射矩阵提取 Zhao[D] edit by lzf on 2013.01.07
% function [error_S1_abs,error_S2_abs]=SFW(SNR)
%clear;
c=3e8;
fs=80e6; %采样率
freq_0=93e9; %起始频点
delt_freq=5e6; %步进频率
freq_N=512; %频率步进点数
PRI=50e-6; %脉冲重复周期
% duty_circle=0.1;
pulse_wide=2e-6; %脉宽
t_fs=1/fs; %采样周期
pulse_n=freq_N;
SNR=30;
t_pulse=t_fs:t_fs:PRI;
S1=[1,-1i;-1i,1];
R1=595;
v0_1=0;
S2=[1,0;0,-1];
R2=603;
v0_2=0;
t_return_1=(2*R1/c)*ones(1,PRI*fs);
pulse_return_1=[zeros(1,round((2*R1/c)*fs)),ones(1,pulse_wide*fs),zeros(1,((PRI-pulse_wide)*fs)-round((2*R1/c)*fs))];
t_return_2=(2*R2/c)*ones(1,PRI*fs);
pulse_return_2=[zeros(1,round((2*R2/c)*fs)),ones(1,pulse_wide*fs),zeros(1,((PRI-pulse_wide)*fs)-round((2*R2/c)*fs))];
E_HH_separate=zeros(pulse_n,PRI*fs);
E_HV_separate=zeros(pulse_n,PRI*fs);
E_VH_separate=zeros(pulse_n,PRI*fs);
E_VV_separate=zeros(pulse_n,PRI*fs);
for i2=1:pulse_n
E_H_separate_1 = S1*[exp(1i*2*pi*(freq_0+(i2-1)*delt_freq)*(t_pulse+(i2-1)*PRI-t_return_1-2*v0_1*(t_pulse+(i2-1)*PRI)/c)).*pulse_return_1;zeros(1,PRI*fs)];
E_V_separate_1 = S1*[zeros(1,PRI*fs);exp(1i*2*pi*(freq_0+(i2-1)*delt_freq)*(t_pulse+(i2-1)*PRI-t_return_1-2*v0_1*(t_pulse+(i2-1)*PRI)/c)).*pulse_return_1];
E_H_separate_2 = S2*[exp(1i*2*pi*(freq_0+(i2-1)*delt_freq)*(t_pulse+(i2-1)*PRI-t_return_2-2*v0_2*(t_pulse+(i2-1)*PRI)/c)).*pulse_return_2;zeros(1,PRI*fs)];
E_V_separate_2 = S2*[zeros(1,PRI*fs);exp(1i*2*pi*(freq_0+(i2-1)*delt_freq)*(t_pulse+(i2-1)*PRI-t_return_2-2*v0_2*(t_pulse+(i2-1)*PRI)/c)).*pulse_return_2];
% E_H_separate=awgn(E_H_separate,m);
% E_V_separate=awgn(E_V_separate,m);
E_H_separate = E_H_separate_1 + E_H_separate_2;
E_V_separate = E_V_separate_1 + E_V_separate_2;
% E_HH_separate(:,j2)=real(E_H_separate(1,:));
% E_HV_separate(:,j2)=real(E_H_separate(2,:));
% E_VH_separate(:,j2)=real(E_V_separate(1,:));
% E_VV_separate(:,j2)=real(E_V_separate(2,:));
% E_HH_separate_o(i2,:) = E_H_separate(1,:);
E_HH_separate(i2,:) = awgn(E_H_separate(1,:),SNR,4);
E_VH_separate(i2,:) = awgn(E_H_separate(2,:),SNR,4);
E_HV_separate(i2,:) = awgn(E_V_separate(1,:),SNR,4);
E_VV_separate(i2,:) = awgn(E_V_separate(2,:),SNR,4);
end
% figure(3);
% plot(t_pulse,real(E_HH_separate(1,:)));
% N_2_sampling = abs(real(E_HH_separate(1,:)));
% S_2 = mean(N_2_sampling(1,round((2*R2/c)*fs):round((2*R2/c)*fs)+pulse_wide*fs));
% N_2 = mean(N_2_sampling(end-1000:end));
% S2N_0 = 20*log10((S_2 - N_2)/N_2)
% figure(1);
% plot(t_pulse,E_HH_separate(:,1));
%
% figure(2);
% plot(t_pulse,E_HV_separate(:,1));
%
%
% figure(4);
% plot(t_pulse,E_VV_separate(:,1));
%doppler_offset
for i3=1:pulse_n
down_wave=exp(-1i*2*pi*(freq_0+(i3-1)*delt_freq)*(t_pulse+(i3-1)*PRI));
E_HH_separate(i3,:)=E_HH_separate(i3,:).*down_wave;
E_VH_separate(i3,:)=E_VH_separate(i3,:).*down_wave;
E_HV_separate(i3,:)=E_HV_separate(i3,:).*down_wave;
E_VV_separate(i3,:)=E_VV_separate(i3,:).*down_wave;
end
n0=round((2*R1/c)*fs + pulse_wide*fs/2);
E_HH_separate_angle = angle(E_HH_separate(:,n0));
E_HH_separate_abs = abs(E_HH_separate(:,n0));
E_HH_separate_fft = fft(E_HH_separate);
E_VH_separate_fft = fft(E_VH_separate);
E_HV_separate_fft = fft(E_HV_separate);
E_VV_separate_fft = fft(E_VV_separate);
for i3=1:PRI*fs
E_HH_separate_fft(:,i3) = fftshift(E_HH_separate_fft(:,i3));
E_VH_separate_fft(:,i3) = fftshift(E_VH_separate_fft(:,i3));
E_HV_separate_fft(:,i3) = fftshift(E_HV_separate_fft(:,i3));
E_VV_separate_fft(:,i3) = fftshift(E_VV_separate_fft(:,i3));
end
%
% figure(1);
% mesh(1:PRI*fs,(-freq_N/2:freq_N/2-1)*c/(2*freq_N*delt_freq),abs(E_HH_separate_fft));
% figure(2);
% mesh(1:PRI*fs,(-freq_N/2:freq_N/2-1)*c/(2*freq_N*delt_freq),abs(E_VH_separate_fft));
% figure(3);
% mesh(1:PRI*fs,(-freq_N/2:freq_N/2-1)*c/(2*freq_N*delt_freq),abs(E_HV_separate_fft));
% figure(4);
% mesh(1:PRI*fs,(-freq_N/2:freq_N/2-1)*c/(2*freq_N*delt_freq),abs(E_VV_separate_fft));
E_HH_separate_fft_sampling = fliplr(conj(E_HH_separate_fft(:,n0)'));
E_VH_separate_fft_sampling = fliplr(conj(E_VH_separate_fft(:,n0)'));
E_HV_separate_fft_sampling = fliplr(conj(E_HV_separate_fft(:,n0)'));
E_VV_separate_fft_sampling = fliplr(conj(E_VV_separate_fft(:,n0)'));
S_Measure_1 = zeros(1,4);
S_Measure_2 = zeros(1,4);
%
figure(1);
subplot(2,2,1);
plot((-freq_N/2+1:freq_N/2)*c/(2*freq_N*delt_freq),abs(E_HH_separate_fft_sampling),'k');title('HH极化HRRP');
figure(1);
subplot(2,2,2);
plot((-freq_N/2+1:freq_N/2)*c/(2*freq_N*delt_freq),abs(E_VH_separate_fft_sampling),'k');title('VH极化HRRP');
figure(1);
subplot(2,2,3);
plot((-freq_N/2+1:freq_N/2)*c/(2*freq_N*delt_freq),abs(E_HV_separate_fft_sampling),'k');title('HV极化HRRP');
figure(1);
subplot(2,2,4);
plot((-freq_N/2+1:freq_N/2)*c/(2*freq_N*delt_freq),abs(E_VV_separate_fft_sampling),'k');title('VV极化HRRP');
max_point = find_max_point_new(E_HH_separate_fft_sampling,2);
%
%N_3_sampling = abs(E_HV_separate_fft_sampling);
%N_3 = mean(N_3_sampling(end-40:end));
%S2N = 20*log10((max(N_3_sampling)-N_3)/N_3)
if max_point(1)>max_point(2)
xx = max_point(1);
max_point(1) = max_point(2);
max_point(2) = xx;
end
S_Measure_1(1) = 1;
S_Measure_1(2) = E_VH_separate_fft_sampling(max_point(1))/E_HH_separate_fft_sampling(max_point(1));
S_Measure_1(3) = E_HV_separate_fft_sampling(max_point(1))/E_HH_separate_fft_sampling(max_point(1));
S_Measure_1(4) = E_VV_separate_fft_sampling(max_point(1))/E_HH_separate_fft_sampling(max_point(1));
S_Measure_2(1) = 1;
S_Measure_2(2) = E_VH_separate_fft_sampling(max_point(2))/E_HH_separate_fft_sampling(max_point(2));
S_Measure_2(3) = E_HV_separate_fft_sampling(max_point(2))/E_HH_separate_fft_sampling(max_point(2));
S_Measure_2(4) = E_VV_separate_fft_sampling(max_point(2))/E_HH_separate_fft_sampling(max_point(2));
S_vector_1=[S1(1,:),S1(2,:)];
S_vector_2=[S2(1,:),S2(2,:)];
% S_error_1 = S_Measure_1 - S_vector_1;
S_error_1 = abs(S_Measure_1) - abs(S_vector_1);
error_S1 = sqrt(abs(S_error_1(2))^2+abs(S_error_1(3))^2+abs(S_error_1(4))^2);
error_S1_abs = abs(error_S1);
% S_error_2 = S_Measure_2 - S_vector_2;
S_error_2 = abs(S_Measure_2) - abs(S_vector_2);
error_S2 = sqrt(abs(S_error_2(2))^2+abs(S_error_2(3))^2+abs(S_error_2(4))^2);
error_S2_abs = abs(error_S2);