• xycasey
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 1
    收藏次数
  • 10 积分
    下载积分
  • 9
    下载次数
  • 2020-12-07 11:10
    上传日期
适用于ISAR系统的自聚焦算法,迭代次数可以自行设计
PGA.rar
  • PGA.m
    3.3KB
内容介绍
function [dataout,phase_correction,entropy_his] = PGA(datain,varlim,iteration_num) %PGA phase gradient autofocus of ISAR % function [dataout]=PGA(datain) performs phase gradient % autofocus of ISAR. % % datain is range-time data of ISAR. % dataout is range-time data that have been removed translational % phase error. % % Reference: % D.E. Wahl, P.H. Eichel, D.C. Ghiglia, C.V. Jakowatz, "Phase % gradient autofocus-a robust tool for high resolution SAR phase % correction," IEEE Trans. Aero. & Elec. Sys., vol. 30, no. 3, 1994. if nargin < 2 varlim = 0.2; iteration_num=10; end [M,N] = size(datain); dataout = datain; % varlim = 0.2; [datasl,vars,len] = sltbin(datain,varlim); clear datain datain = datasl; phase_correction = ones(1,N); % 实验 % datain=dataout; % temp=0; % Iterative Phase Correction % iteration_num=10 for iii = 1:iteration_num orig_img = fftshift(fft(datain,[],2),2); % Circular Shifting center_az_idx = ceil(N/2); [tmp maximum_az_idx] = max(abs(orig_img), [], 2); new_img = zeros(len,N); for i = 1:size(orig_img,1) new_img(i,:) = circshift(transpose(orig_img(i,:)), center_az_idx - maximum_az_idx(i)); end % % figure,contour(abs(new_img),20),xlabel('方位'),ylabel('距离') % Windowing if 1 window = 20*log10(sum(abs(new_img).^2, 1)); scatter_power = window; db_down = 30; window_cutoff = max(window)-db_down; leftidx = find(window(1:center_az_idx) - window_cutoff<0, 1, 'last' ); rightidx = find(window(center_az_idx+1:end) - window_cutoff<0, 1, 'first'); leftidx = leftidx+1; rightidx = rightidx + center_az_idx - 1; else window_len=(N+1)/(2^(iii)); leftidx=(N+1)/2-window_len/2; rightidx=(N+1)/2+window_len/2; end window = zeros(1,N); window(leftidx:rightidx) = 1; % figure(10),plot(window) % figure,plot(scatter_power),hold on,plot(window.*max(scatter_power)) % xlabel('距离单元'),ylabel('分贝值') new_img = new_img.*repmat(window,len,1); % Phase Gradient Estimation fft_length = N; new_data = ifft(fftshift(new_img,2),fft_length,2); if 1 delta_phase = angle( sum( conj(new_data(:, 1:end-1 )) .* new_data(:, 2:end) , 1)); phase_estim = [0 cumsum(delta_phase)]; else % This is the LUMV phase estimator delta_data = new_data(:,2:end)-new_data(:,1:end-1); delta_phase = sum(imag(conj(new_data(:,1:end-1)).*delta_data), 1) ./ sum(abs(new_data(:,1:end-1)).^2, 1); phase_estim = [0 cumsum(delta_phase)]; end % Remove linear trend in phase error and unwrap linear_coefs = polyfit(1:length(phase_estim), phase_estim, 1); phase_estim = unwrap(phase_estim - polyval(linear_coefs, 1:length(phase_estim))); new_data = new_data .* repmat(exp(-1j*phase_estim), len, 1); img_corrected = fftshift(fft(new_data, [], 2), 2); datain = new_data; dataout = dataout .* repmat(exp(-1j*phase_estim), M, 1); phase_correction = phase_correction.*exp(-1j*phase_estim); entropy_his(iii) = my_entropy(fft(dataout,[],2)); % temp=temp+phase_estim; if std(phase_estim)<1e-3 break; end end % figure,plot(temp) phase_correction = unwrap(angle(phase_correction));
评论
    相关推荐
    • PGA.rar
      功能[DATAOUT]= PGA(DATAIN),执行相位梯度 %ISAR自动对焦。 % %DATAIN ISAR范围内的实时数据。 DATAOUT%范围内的实时数据已被删除平移 %相位误差。 % %参考: %D.E.瓦尔,P.H.艾歇尔,特区吉利亚...
    • SAR_process.rar
      This software release consists of an implementation to obtain the ISAR images of the target using the algorithm described in the paper: idex
    • USB-COM(HL340).rar
      usb转串口,找了很久才找到,现在别的地方很难下到,要不用不了,我这个可以用 HL340D 的
    • NAND FLASH的读写程序.rar
      Nand flash 读写程序 C语言代码,可以给U盘开发者参考 可以读写三星各种型号的Nand flash芯片
    • USB_2.0.rar
      USB2.0开发例程,基于51单片机,包括pc端程序
    • 串口温度数据采集并实时显示.rar
      串口温度数据采集并实时显示 读串口数据的原理是,只要当有数据向串口发数据来时,计算机就会自动将其数据写到一个特定的缓冲区,我们只要写程序去读那个特定的缓冲区就可以了. 有数据向串口发过来时,程序可以将数据接收到,接收的数据是字符型的,那么将数据转化为数字型的,再将这个数据的大小作为画图的某一个点的纵坐标,横坐标为数据的序号.将这些点用线连起来就是一个曲线图了,这个就是图形显示基本原理. 查看原来的数据的原理也是这样的,不同的地方就是,数据是从文件中来,同样的也是将多个数据分成一个一个的,然后这一个数据的大小就是画图的某一个点的纵坐标,横坐标同样为数据的序号,再将这些点用线连起来就是曲线图. 图形能移动的原理,是我们首先改变的只是数据,图形并没有变,但图形的形式是由这些数据来确定的,当数据发生变化后,我们通过刷新显示区来变化的.
    • gps.rar
      GPS应用程序设计,内含GPS卫星原理、方法及详细源代码
    • MSCOMM32.OCX.rar
      串口编程控件MSCOMM32.OCX mscomm32.ocx是微软提供的串口通讯开发控件。支持串口通讯的软件大部分都是使用这个控件来实现串口通讯功能的。 安装方法:请您把它复制到系统目录下,对于windows9x系列(win95、win98、winme)是x:\windows\system\,对于 windowsNT、windows2000、windowsXP系列是x:\winnt\system32\。然后打开一个命令行提示符窗口(MSDOS方式窗口), 用"cd x:\windows\system\"命令或者"cd x:\winnt\system32\"切换到系统目录下,再执行"regsvr32 mscomm32.ocx"这个命令。
    • VSer.rar
      虚拟串口的完整源代码,包括注释和开发日志。据说市值5万人民币!
    • USB-shujucaiji.rar
      USB数据采集系统论文-自己的毕业设计论文,花了很长时间做的,内容十分详细,包括核心代码和开发环境的设置。