📄 correlate22.m
字号:
%%%%%%% -------------------------------------------------------------------
%%%%% -----correlate2.m的改进,用于逼近求解delta_f(频率偏差)
%%%%% -----相关法用于频率估计
%%%%% -----复相关、频率校正算法
%
function fe = correlate22(x,fs,N)
%
% x:输入数据
% fs:数据采样率
% N:FFT的点数
% fe:估计出的频率
n = 0:N-1; %%% ?
Z = fft(x,N);
P = abs(Z);
[Pm mi] = max(P);
fo = fs*(mi-1)/N
x = hilbert(x); %%% x的解析信号
for i = 1:2 %%% ---两次逼近???
y = exp(-j*2*pi*fo*n./fs); %%% 创建标准信号
z = x.*y; %%% 相关
m = floor(N/2); %%%???
g = sum(conj(z(1:N-m)).*z(m+1:N));
phase_g = angle(g);
delta_f = phase_g/(2*pi*m/fs)
fe = fo+delta_f;
fo = fo+1*delta_f; %%% ---收敛因子???
end
% fe = fo;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -