Julia演習問題:フーリエ解析の基礎

問題

  1. matファイル"crf_wind.mat"を読み込み,一番初めの行成分u[1,:]をプロットしなさい.
    uは風速データであり単位は[m/s],2次元目は時系列を表し,時間の増分はdt,単位は[s]である.
    matdata = MAT.matopen() # v1.0.0 以降,正常にimportできないのでスキップ
    var_name = read(matdata,"var_name")
  2. textデータ"crf_wind.dat"を読み込み,一番初めの行成分u[1,:]をプロットし,1のmatファイルのデータと比較しなさい.
    f = open(filename,"r")
    readline(f)  # or 
    readlines(f)
    parse(Float64, stringdata[1])
  3. u[1,:]のスペクトルを計算し,対数軸でプロットしなさい.
    F0 = FFTW.fft(dataorg,1)
    P = abs.(F0)
    plt = Plots.plot(..., xscale=:log10, yscale=:log10)
  4. u[1,:]のフーリエ解析結果から高周波成分を取り除きなさい.また,ノイズを除去したu[1,:]を1または2の図に重ねてプロットしなさい.
    abs.(freq) .> freq_cutoff;
    FFTW.ifft(F0)

データ

  • mat形式ファイル
  • txt形式ファイル txtファイルのフォーマットは以下の通り.
    1行目: nt, nz
    2行目: dt
    3行目: z(1:nz)
    4行目以降:
     u(1,1) u(1,2) ... u(1,nt)
     u(2,1) u(2,2) ... u(2,nt)
     ...
     u(nz,1) ...       u(nz,nt)

解答例(参考)

noise_reduced.png
PSD.png

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2018-08-28 (Tue) 10:20:02 (266d)