资源简介
经测试可用的FFBP实现,提供给各位还在努力钻研的国内博士们参考
代码片段和文件信息
function [Bp Im]=ffbp_for_david_pearce(Sim Pos Bp f)
%FFBP Fast factorised backprojection of synthetic aperture sonar data
%
% Usage: [Bp Im]=ffbp(Sim Pos Bp f)
%
% Sim: struct containing important information about the simulation / raw data.
%
% Bp: struct containing important information about the
% backprojection.
%
% Pos: struct containing the positions of the transmitter and the
% receivers.
%
% See params_for_ffbp.m for a description of the required fields in Sim
% Bp and Pos.
%
% f: matrix containing the raw data.
%
% Im: resulting image
%
tic
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%---------Main---------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[Fact Bp Im f]=pre_allocate(Sim Bp Pos f);
[Sim Bp Fact f]=stages(Fact Sim Bp Pos f);
[Im Bp]=last_stage(Fact Sim Bp Pos f Im);
toc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%---------stages-----------------------------------
function [Sim Bp Fact f]=stages(Fact Sim Bp Pos f)
Fact.stage=0;
Bp.error=0;
Fact.noSubimages=0;
Fact.min_range_old(1:Bp.Q_image(1)^2)=Sim.y_image_start;
Fact.parent(1:Bp.Q_image(1)^2)=[1:Bp.Q_image(1)^2];
if strcmp(Bp.weighting ‘ones‘) %Setting weights
Bp.w(1:Fact.noReceivers)=ones(1 Fact.noReceivers);
else
Bp.w(1:Fact.noReceivers)=eval(strcat(Bp.weighting‘(Fact.noReceivers)‘));
end %if strcmp(Bp.weighting ‘ones‘)
for s=Fact.stage+1:Bp.totalNoStages-1
Fact.stage=Fact.stage+1;
disp([‘-----------------------------------‘])
disp([‘Stage=‘ num2str(Fact.stage)])
sc=1; %Subimage count
Fact.E=prod(Bp.Q_image(1:Fact.stage)); %Number of subimages on each side
Fact.noSubimages=Fact.E^2; %Total number of subimages in the current stage
Bp.error=Bp.error+(((Fact.xReceivers(12)-Fact.xReceivers(11))*Bp.Q_receivers(s)*Bp.xImageLength/Fact.E)/(4*Bp.y_image_start));
disp([‘Error must be less than lambda/4‘])
disp([‘Error=lambda/‘num2str(Sim.lambda/Bp.error)])
if Sim.lambda/Bp.error<=4
disp([‘Approximation error to large!‘])
else
disp([‘Approximation error OK‘])
end
if Bp.error>Bp.highest_error
Bp.highest_error=Bp.error;
end
disp([‘Number of subimages=‘num2str(Fact.noSubimages)])
disp([‘Number of receivers=‘num2str(Fact.noReceivers)])
Fact.xEdges=Bp.x_image_start:(Bp.x_image_stop-Bp.x_image_start)/Fact.E:Bp.x_image_stop; %Edges of the subimages in x-direction [m]
Fact.yEdges=Bp.y_image_start:(Bp.y_image_stop-Bp.y_image_start)/Fact.E:Bp.y_image_stop; %Edges of the subimages in y-direction [m]
xMiddle=Bp.x_image_start+0.5*(Fact.xEdges(2)-Fact.xEdges(1)):Fact.xEdges(2)-Fact.xEdges(1):Bp.x_image_start+0.5*(Fact.xEdges(2)-Fact.xEdges(1))+(Fact.E-1)*(Fact.xEdges(2)-Fact.xEdges(1)); %Middle point of the subimages in x-direction [m]
yMiddle=Bp.y_image_start+0.5*(Fact.yEdges(2)-Fa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11049 2012-06-15 11:15 ffbp.m
文件 1633 2012-06-15 11:15 params_for_ffbp.m
- 上一篇:精通MATLAB/GUIDE界面编程
- 下一篇:惯导轨迹生成
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论