李清志 发表于 2012-3-9 18:40

这个程序怎么改啊?

今日试验了个小程序,其中涉及到了求Hilbert变换后的瞬时频率,程序如下:clear all
load('12146198ba.mat','y')
t=linspace(1/12000,0.2,2400);
for i=1:2400
    x(i)=y(i)*t(i)/t(i);
end
d=0:2399;
f=1./(2400/12000)*d;
fftx=fft(x);
figure;
plot(t,fftx);grid;title('图1 FFT变换');
iffx=sqrt(fftx.*conj(fftx));
figure;
plot(f(1:100),iffx(1:100));grid;title('图2 FFT幅频曲线');
xiangwei=angle(fftx);
figure;
plot(f,xiangwei);grid;title('图3 FFT相频曲线');
hx=hilbert(x);
figure;
plot(t,hx);grid;title('图4 Hilbert变换');
xr=real(hx);
xi=imag(hx);
sz=sqrt(xr.^2+xi.^2);
figure;
plot(f(1:100),sz(1:100));grid;title('图5 Hilbert幅频曲线');
sx=angle(hx);
figure;plot(f,sx);grid;title('图6 Hilbert相频曲线')
dt=diff(t);
dx=diff(sx);
sp=dx./dt;
figure;
plot(t(1:2399),sp);grid;title('图7 Hilbert瞬时频率');
y为2400*1矩阵,最后一句怎么改瞬时频率的横坐标才是t所对应的时间啊?0-0.2s啊?求高手指点!
页: [1]
查看完整版本: 这个程序怎么改啊?