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

↓↓↓の図,縦軸は powerではなくてフーリエ振幅 abs(F) です.すいません.

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 (2066d)