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

***データ [#mff0554e]
-mat 形式ファイル~
#ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/image/python/crf_wind.mat,crf_wind.mat)~
-txt 形式ファイル
#ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/image/python/crf_wind.dat,crf_wind.dat)~
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)

***解答例(参考) [#m22bec5d]
#ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/image/julia/noise_reduced.png,750x300)
↓↓↓の図,縦軸の単位間違えています.すいません.~
↓↓↓の図,縦軸は powerではなくてフーリエ振幅 abs(F) です.すいません.~
#ref(https://main-t-miyashita.ssl-lolipop.jp/hydrocoast/image/julia/PSD.png)

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes