阶比跟踪的一些问题
function = getCOT(x,t,fs,Dmax,pf,order,wu)%xtn为输出:等角度采样的信号序列
%输入:x为等时间间隔采样信号序列,t为时间,fs采样频率,Dmax为最大阶次,pf为频率曲线序列,order:拟合频率曲线的阶次,wu:舍弃的点数
t = t - min(t);
dw = pi/Dmax; %重采样角度间隔
dt = 1/fs ;%采样时间间隔
a = polyfit(t,pf,order); %3阶拟合:ft = a(1)*t.^3 + a(2)*t.^2 + a(3)*t+a(4);
ft = polyval(a,t);%得到拟合后的频率曲线序列
Na = length(a);
for j = 1:Na
a(j) = a(j)/(Na-j+1);
end
lenXtn = fix(2*pi*sum(ft*dt)/dw); %计算重采样后的数据长度
lenXtn = lenXtn -wu;
Tn = zeros(1,lenXtn); % 计算键相时标
for ii = 1 : lenXtn % 求解方程
temp = ii/(2*Dmax);
r = roots();
for kk = 1: length(r)
if isreal(r(kk))
if r(kk) > 0 && r(kk) < 10000
Tn(ii) = r(kk);
end
end
end
end
xtn = zeros(1,lenXtn);
for ii = 1: lenXtn
nn = sum(t<Tn(ii));
xtn(ii) = x(nn) + (x(nn+1)-x(nn)/(t(nn+1)-t(nn)))*(Tn(ii)-t(nn));
end
% for ii = 1: length(x)-1
% for jj = 1:lenXtn
% if Tn(jj)>=t(ii) && Tn(jj)<=t(ii+1)
% xtn(jj) = x(ii) + (x(ii+1)-x(ii)/(t(ii+1)-t(ii)))*(Tn(jj)-t(ii));
% end
% end
% end
end
如上,是从网上下载得来的一份阶比跟踪代码,但是用起来似乎没有得到正确的数据,本人对这份代码不是特别理解,谁能指导下这份代码靠谱么?总感觉哪里有问题的样子。
令附一段仿真信号,有没有能帮忙处理下,得到等角度重采样的数据,我想看看重采样完是什么样子。
如上利用上述代码进行了仿真操作,结果如图,不知道重采样的信号会这样模糊。 自顶一下 重采样后的波形,如果还是采用时间坐标,几乎和原来波形重合,因为重采样实际上也是对原有信号的重构,在角度域坐标中才能看出等角度采样。 impulse 发表于 2016-8-15 21:41
重采样后的波形,如果还是采用时间坐标,几乎和原来波形重合,因为重采样实际上也是对原有信号的重构,在角 ...
啊,知道了,多谢。 额怎么改的? jiangwj 发表于 2016-8-16 08:37
额怎么改的?
?我没有改呢 fearless 发表于 2016-8-16 09:02
?我没有改呢
我还以为你改完了呢 jiangwj 发表于 2016-8-16 13:03
我还以为你改完了呢
改完了效果估计不会那么差了,哈哈。话说,楼主也是在做阶比么? fearless 发表于 2016-8-16 14:27
改完了效果估计不会那么差了,哈哈。话说,楼主也是在做阶比么?
我不是 如果有改完的我想运行一下试试 jiangwj 发表于 2016-8-16 14:42
我不是 如果有改完的我想运行一下试试
嗯,你也可以根据自己的理解修改,到时候一起交流。 fearless 发表于 2016-8-16 15:43
嗯,你也可以根据自己的理解修改,到时候一起交流。
ok我试一下 楼主,请问你这个仿真信号的采样频率是多少呢? fearless 发表于 2016-8-16 10:41
如上利用上述代码进行了仿真操作,结果如图,不知道重采样的信号会这样模糊。
请问楼主改了吗,为啥我用的这段代码跑出来的重采样波形跟原波形差别较大? pf为频率曲线序列是指什么
页:
[1]
2