理论固体潮信号傅里叶变换简单分析_matlab

固体潮信号傅里叶变换简单分析_matlab

本文首发于dspstack社区

  • 引言
    根据上一篇博文的程序计算得到理论固体潮,对其进行傅里叶变换,分析其周期特征。
  • 示例1:
    日潮、半日潮、1/3日潮
clc
clear;
Longtitude=104;   Latitude=30.6;
date1 = [2019,1,1];
date2 = [2019,3,31];
amend= [];
kk = 1;
for i = 1:datenum(date2)-datenum(date1)
    date = datenum(date1) + i;
    for j = 0:23
        ymdh = datevec(date);
        ymdh(4) = j;
        ymdhnum(kk) = datenum(ymdh);
        amend = [amend,gravity_earthtide(ymdh,Longtitude,Latitude)];
        kk = kk+1;
    end
end
Famend = fft(amend,1024);
NN = length(Famend);
dt = 1;
ff = (0:NN-1)/(NN*dt);
subplot 211
plot(ymdhnum,amend)
datetick;
subplot 212
plot(ff,abs(Famend)*2/NN)
xlim([0 dt/4])
hold on
plot([1/26 1/26],ylim,'r:')
plot([1/22 1/22],ylim,'r:')
plot([1/13 1/13],ylim,'r:')
plot([1/11 1/11],ylim,'r:')
plot([1/8.5 1/8.5],ylim,'r:')
plot([1/7.5 1/7.5],ylim,'r:')
y = get(gca,'Ylim');
text(1/24,y(2)/1.3,'日潮','rotation',90)
text(1/12,y(2)/1.3,'半日潮','rotation',90)
text(1/8,y(2)/3,'1/3日潮','rotation',90)

file

  • 示例2:长周期潮,半月潮和半年潮
clc
clear;
Longtitude=104;   Latitude=30.6;
date1 = [2000,1,1];
date2 = [2020,12,31];
amend= [];
kk = 1;
for i = 1:datenum(date2)-datenum(date1)
    date = datenum(date1) + i;
        ymdh = datevec(date);
        ymdhnum(kk) = datenum(ymdh);
        amend = [amend,gravity_earthtide(ymdh,Longtitude,Latitude)];
        kk = kk+1;
end
Famend = fft(amend);
NN = length(Famend);
dt = 1;
ff = (0:NN-1)/(NN*dt);
subplot 211
plot(ymdhnum,amend)
datetick;
subplot 212
plot(ff,abs(Famend)*2/NN)
xlim([0.0002 0.1])
hold on
plot([1/360 1/360],ylim,'r:')
plot([1/380 1/380],ylim,'r:')
plot([2/360 2/360],ylim,'r:')
plot([2/380 2/380],ylim,'r:')
plot([1/13 1/13],ylim,'r:')
plot([1/16 1/16],ylim,'r:')
y = get(gca,'Ylim');
text(1/365,y(2)/1.3,'年潮汐','rotation',90)
text(2/365,y(2)/1.3,'半年潮','rotation',90)
text(1/14,y(2)/3,'半月潮','rotation',90)

file

猜你喜欢

转载自blog.csdn.net/weixin_43948644/article/details/86685249
今日推荐