91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .m
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-05-05
  • 語言: Matlab
  • 標簽:

資源簡介

SAR成像自聚焦算法——最大對比度算法,matlab實現(xiàn),很好用哦,畢業(yè)設計編寫的陳谷

資源截圖

代碼片段和文件信息

function?fdr?=?AutoFocusing_Contrast(InputRealFile?InputImagFile?Range?Azimuth?FocusDepthPoint?INITIAL_STEP?MAX_ITERATIVE_NUM?FINAL_STEP?fdr0f_prf)
%----------------------------最大對比度法自聚焦-----------------------------------%
%?輸入:距離壓縮后轉(zhuǎn)角存儲的I/Q兩路數(shù)據(jù)文件
%?輸出:按聚焦深度估計出的多普勒調(diào)頻率
%?算法:最大對比度法
%?準則:選取每個聚焦深度內(nèi)對比度最大的距離門為參考信號,搜索使該距離門信號成像結果聚焦比最大的fdr作為估計結果
%?調(diào)用本模塊需要設定的參數(shù)詳見源代碼
%?tic;
ta?=?(0?:?Azimuth-1)*(1/f_prf)?;
T_max?=?Azimuth*(1/f_prf);
%--------------------------------進行方位壓縮,選取參考信號-------------------------------%
Ndepth?=?ceil(Range?/?FocusDepthPoint);??????????%?測繪帶內(nèi)的聚焦深度數(shù)
%?打開距離壓縮后轉(zhuǎn)角存儲的I/Q兩路數(shù)據(jù)文件
FidReadReal?=?fopen(InputRealFile‘r‘);
FidReadImag?=?fopen(InputImagFile‘r‘);
if((Range?-?FocusDepthPoint?*?Ndepth)?~=?0)
????temp_shy?=?1;
else
????temp_shy?=?0;
end
max_value?=?zeros(1Ndepth);
max_pos?=?zeros(1Ndepth);
for?i?=?1?:?Ndepth????
????AzimuthRef?=?conj(exp(j*pi*fdr0(i)*?(?ta?-T_max/2?).^2?));
????if((temp_shy?==?1)?&&?(i?==?Ndepth))
????????m_stop?=?Range?-?FocusDepthPoint?*?(Ndepth?-?1);
????else
????????m_stop?=?FocusDepthPoint;
????end
????focus_rate?=?zeros(1m_stop);????
????%?取每個聚焦深度內(nèi)聚焦比最大的距離門作為參考信號
????for?m?=?1?:?m_stop
????????TempRe?=?fread(FidReadReal?Azimuth?‘float32‘);
????????TempIm?=?fread(FidReadImag?Azimuth?‘float32‘);
????????Temp?=?(TempRe?+?j*TempIm).‘;
????????Hout?=?Temp?.*?AzimuthRef;
????????out_effective?=?abs(fft(Hout));????????
????????%?計算聚焦比
????????focus_rate(m)?=?var(out_effective)?/?mean(out_effective);
???end????
????[max_value(i)?max_pos(i)]?=?max(focus_rate);
end

%-----------------------------------最大對比度法自聚焦-----------------------------------%

first_validfdr_pos?=?-1;????????%?存放第一個自聚焦成功的聚焦深度,是測繪帶內(nèi)的第幾個聚焦深度
update_step?=?0;????????????????%?清除步長更新標識
fdr_step?=?INITIAL_STEP;????????%?設定自聚焦估計的初始搜索步長;注意:fdr的步長是在初始步長的基礎上,每次減小一倍,直到步長不大于1Hz;
????????????????????????????????%?因此,如果初始步長是2的整數(shù)次冪,則fdr的估計精度為1Hz
iterative_num?=?1;??????????????%?初始化迭代次數(shù)標識
autofocusing_over?=?0;??????????%?初始化自聚焦結束表示
autofocusing_fail?=?0;??????????%?初始化自聚焦失敗標識

fdr?=?zeros(1?Ndepth);
focus_rate_current_fdr?=?zeros(13);
for?i?=?1?:?Ndepth
????%?當前聚焦深度的fdr初值
????current_fdr?=?fdr0(i);
????%?讀入當前聚焦深度的參考信號
????fseek(FidReadReal?((i?-?1)?*?FocusDepthPoint?+?max_pos(i)?-?1)?*?Azimuth?*?4?-1);
????fseek(FidReadImag?((i?-?1)?*?FocusDepthPoint?+?max_pos(i)?-?1)?*?Azimuth?*?4?-1);

????%?得到參考信號頻譜
????TempRe?=?fread(FidReadReal?Azimuth?‘float32‘);
????TempIm?=?fread(FidReadImag?Azimuth?‘float32‘);
????Temp?=?(TempRe?+?j*TempIm).‘;
%?%?%?%?%?????HTemp?=?fft(Temp);
????
????%?反復迭代,直到估計出當前聚焦深度的fdr
????while(autofocusing_over?~=?1)
????????%?反復迭代,直到在當前搜索步長下估計出fdr
????????while(update_step?~=?1)
????????????%?判斷當前搜索步長是否為初始步長
????????????if(fdr_step?==?INITIAL_STEP)
????????????????%?判斷是否為基于初始步長的第一次迭代
????????????????%?是,則需要計算三個聚焦比,即:current_fdr-fdr_step、current_fdr、current_fdr+fdr_step
????????????????if(iterative_num?==?1)
????????????????????leftpos_fdr??=?-1

評論

共有 條評論

相關資源