关于hilbert求解析信号的问题,自己编的东西抖动厉害
function =blyf(N,L,T);%FMLIN Signal with linear frequency modulation.
% N : 采样点数
% L: 传感距离(default: 1000)
% T: 初始温度(default: 25)
% P : 应变 (default:0).
% Y : signal
if (nargin == 0),
error ( 'The number of parameters must be at least 1.' );
elseif (nargin == 1),
L=1000; T=25;
elseif (nargin == 2),
T=25;
end;
if (N <= 0),
error ('The signal length N must be strictly positive' );
elseif (T > 120) | (T < 20),
error ( 'fnormi and fnormf must be between 20 and 60' ) ;
else
m=ones(N,1);
n=(0:1:N-1)';
t=n./(10^8);
T1=(((n>=1)&(n<=200))*25.*m)+(((n>=201)&(n<=250)).*(n-176).*m)+(((n>=251)&(n<=N))*25.*m);
w=11*10^9*(1+9.4*10^-5*(T1-T));
x=2*10^-6*cos(w.*t);
end ;
调用上面函数
y=blyf(500);
y=hilbert(y);%求其解析信号
ifr=instfreq(y);%用瞬时频率函数求其瞬时频率
plot(ifr);
得出的结果应该是线性的,该怎么改进呢???? 是边界抖动厉害,还是全部时间? 我有过这方面的经验,在边界处有些抖动。 是的 我上次作也是这样的 是反映频率线性变化的那部分,好像hilbert变换求解析信号有问题呀〉还没有解决呢。另外求瞬时频率的函数还应该看看,做出的结果不太对。如果将x=2*10^-6*cos(w.*t);换为x=2*10^-6*exp(j*w.*t);大家试一下,似乎就没有抖动了。可是想用instfreq()瞬时频率测量没有那么容易。
因为我是取了500个点,每一点上对应有温度,温度又反映信号的那一点的频率。这样仿真的信号。
求助一下:能不能将得到的x(t)进行一下平滑,更能反映真实的信号
谢谢大家!!!
页:
[1]