📄 cleaning3.m
字号:
function [cleaned, indexc] = cleaning3(data,origin,mm,nn,Pfa); %
% Cleanes the data in the spatial domain to raise
% SNR. The noise level is estimated using Weibull
% distribution and thrshold level is determined.
% Linear filtering is used to clean the data.
%
[m n] = size(data); leng=length(data); if m ~= leng temp=m; m = n; n = temp ; data = data.'; end Pfa=Pfa*10; nmul=16; numnn=nmul*m; d7mat=fftshift2(fft(data,numnn)); d727c=abs(d7mat); vecindr=noisesect(d727c,8,4); [norm,fact]=normalize(vecindr); [weibb,weiba]=weibmen(norm); TQ=(abs(log(Pfa))./weiba).^(1./weibb); T=TQ.*fact; absvecd=[]; for it = 1:n absve = d727c(:,it) > T(it); absvecd = [absvecd,absve]; end mask1=medfilt2(absvecd); mask2=morph(mask1,0,0,3,5); mask=morpharea(mask2).'; [centro,maximo]=filtindex(mask,nmul); indexb=(centro-(m/2+1))*2*pi/m; [modorig,inxc]=shiftzero(origin,indexb); indexd=indexb-inxc; if maximo <= 9 maximo = 9; end
indexc=maximo/m; centm=centerm(indexd,m); pnum=tranfreqm(n,m); dtemlow=centm.*pnum; dlowt=(exp(-j*dtemlow).*modorig).'; f=[0 indexc-0.03 indexc+0.03 1]; fm=[1 1 0 0]; lowcoef=remez(83,f,fm); dlowmat=filtfilt(lowcoef,1,dlowt); dlowmatt=dlowmat.'; doriginal=dlowmatt.*exp(j*dtemlow); cleaned=repnan(doriginal);% imagesc(abs(fft(cleaned.')));% pause
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -