📄 func_occ_root.m
字号:
function [FTacdata,acdata]=OCC_root(tvdata,T,Num_C)
%功能:循环对消法
%输入变量:tvdata输入的时域(fft之前)数据(列向量)
% T数据采样间隔(扫频周期)
% Num_C迭代对消次数
%输出变量:acdata对消后的时域数据
% FTacdata对消后的频域(fft之后)数据
for k=1:Num_C
N=length(tvdata);
ta=N*T; %相干积累时间
delta_dop=1/ta; %多普勒分辨率
t=T*(0:N-1);
FTdata=fftshift(fft(tvdata));
[Amax,p_Amax]=max(abs(FTdata));
a=Amax/N; %幅度估计
f=(p_Amax-(N/2+1))*delta_dop; %频率估计
fai=0:pi/N:2*pi;
sum_error=zeros(size(fai));
for n=1:N
error=abs(tvdata(n)-a*exp(j*(2*pi*f*(n-1)*T+fai))).^2; %最小二乘法
sum_error=sum_error+error;
end
[summin,p_summin]=min(sum_error); %误差最小
ph_initial=fai(p_summin); %频率估计
s=a*exp(j*(2*pi*f*t'+ph_initial)); %估计的正弦信号
acdata=tvdata-s; %剔除该正弦信号
tvdata=acdata;
end
FTacdata=fft(acdata);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -