📄 feqtq.m
字号:
function [del_f,I,Q]=feqtq(Fl,Fs,I1,Q1)
error(nargchk(4,4,nargin));
if Fs/Fl/2~=floor(Fs/Fl/2)
error('Fs/(2*Fl) must be integer!')
end
[r,c]=size(I1);
if c==1
I1=I1.';
Q1=Q1.';
c=r;
r=1;
end
%Fl=5000;
Fd=2*Fl;
a=Fs/Fd;
i1=I1(1:length(I1)-a);
i2=I1(a+1:length(I1));
q1=Q1(1:length(I1)-a);
q2=Q1(a+1:length(I1));
Y1=i2.*q1-q2.*i1;
X1=i1.*i2+q1.*q2;
% LPF 2*del_f
Wp=2*200/Fs;
Ws=2*800/Fs;
[n,Wn]=buttord(Wp,Ws,1,30);
[b,a]=butter(n,Wn);
Y2=filtfilt(b,a,Y1);
X2=filtfilt(b,a,X1);
%Y2=LPF(Y1);
%X2=LPF(X1);
[Y]=mean(Y2);
[X]=mean(X2);
Z1=-Y/X;
del_w=atan(Z1)*Fd;
del_f=del_w/(2*pi);
t=0:1/Fs:(r*c-1)/Fs;
Z=(I1+j*Q1).*exp(-j*del_w*t);
I=real(Z);
Q=imag(Z);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -