声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 卡索

[其他] 求救cot 阶比重采样 问题

[复制链接]
发表于 2018-4-3 21:37 | 显示全部楼层
xinhaochulixs 发表于 2018-4-3 19:14
主任,怎么仿真阶比的脉冲信号啊,谢谢

http://forum.vibunion.com/forum. ... 7%B1%C8%B8%FA%D7%D9
这儿有个简单的模拟键相脉冲
回复 支持 反对
分享到:

使用道具 举报

发表于 2018-8-21 22:24 | 显示全部楼层
楼主可否帮助下小弟,我也有关于重采样的问题
发表于 2018-8-22 08:43 | 显示全部楼层
Samuel95 发表于 2018-8-21 22:24
楼主可否帮助下小弟,我也有关于重采样的问题

什么问题?
发表于 2018-8-22 15:38 | 显示全部楼层

你好,我之前看到一个算法,仿真出来的重采样角域信号不对,不知道怎么处理。


%%------阶比跟踪算法-----
function [Tn,xtn] = getCOT(x,t,fs,Dmax,pf,order,wu)
    %xtn为输出:等角度采样的信号序列
    %输入:x为等时间间隔采样信号序列,
    %t为时间,fs采样频率,Dmax为最大阶次,
    %pf为频率曲线序列,order:拟合频率曲线的阶次,wu:舍弃的点数
   
    t = t - min(t);%保证时间从0开始
     
    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); %计算重采样后的数据长度 fix为取整函数
    lenXtn = lenXtn -wu;
   
    Tn = zeros(1,lenXtn); % 计算键相时标
    for ii = 1 : lenXtn      %   求解方程
        temp = ii/(2*Dmax);
        r = roots([a -temp]);
        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: 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
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 03:29 , Processed in 0.065978 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表