ラベル Fourier transform の投稿を表示しています。 すべての投稿を表示
ラベル Fourier transform の投稿を表示しています。 すべての投稿を表示

2024年4月16日火曜日

WAV + FFT

16bit 44.1kHz の wav ファイルを扱うことになりました。

スケール変換しようと思いハードウェアの資料を探しましたが見当たりません。レコーダーですので、ないのかもしれません。

2^15 で割って正規化し FFTをかけて、振幅を抽出します。で、この後が不明。ある基準値をもって dB値に変換するのですが、音圧と異なるので決まりがないようです。最大値を基準にしても良いし、最小値でも問題ないのでしょう。今回は見た目で真ん中あたりを選択しましたが、決まったやり方があれば知りたいところです。

出来上がったランニングスペクトルを見ると、現象によって奇麗に判別できました。これで全ての音声を聞かなくて済みそうです。時短に有効活用です。


2022年8月20日土曜日

位相 unwrapping

位相の unwrapping について調べていました。

SAR ではなく、単なる信号の再現(逆フーリエ)でこの話題が出てきました。

調べてみると、ありますね。

位相アンラッピング(Phase unwrapping)
http://retrofocus28.blogspot.com/2013/12/phase-unwrapping_26.html

def mywrap(y): for i in range(1, len(y)): div = y[i] - y[i-1] if div < -pi: y[i:] += 2*pi elif div > pi: y[i:] -= 2*pi else: pass return y

numpy なら1行です。

np.unwrap() 

簡単ですね。
理想的な条件なら再現できるようですが、実際のデータでは難しいようです。


2022年1月4日火曜日

SeisNoise

Timothy Clements, Marine A. Denolle
SeisNoise.jl: Ambient Seismic Noise Cross Correlation on the CPU and GPU in Julia
Seismological Research Letters (2021) 92 (1): 517–527.
https://doi.org/10.1785/0220200192
https://docs.juliahub.com/SeisNoise
https://github.com/tclements/SeisNoise.jl

ambient seismic noise cross correlation のライブラリです。これまで見てきた passive 手法の中では最も新しく、シンプルに書けそうです。しかも CUDA 対応済み。
https://phreeqc.blogspot.com/2021/05/passive.html
https://phreeqc.blogspot.com/2021/06/blog-post_25.html

ちょうど手元の Win10 + Jupyter がエラーを吐いて動かない状態でしたので、再構築がてらインストールしてみました。
まずは、既存の Julia と miniconda をアンインストール。関連フォルダをすべて削除。レジストリもクリーンにしてから再起動。

Julia 1.65 をインストール後、
pkg> add IJulia
pkg> add SeisNoise
pkg> add SeisIO; build; precompile
pkg> add Plots
 
miniconda 3 をインストール後、
$ conda install jupyter lab
$ jupyter lab

規定の browser だと表示されなかったので、起動 browser を変更。
$ jupyter lab --generate-config
~/.jupyter/jupyter_lab_config.py
 c.ServerApp.browser = '"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe\" %s'

これで立ち上がりました。
Github の README.md のソースをコピペして run。
同じ絵が出ました。OKです。

F-net の sac が手元になかったため、FDSN(IRIS) にある気象庁の静岡と岐阜のデータに変更。周波数を低めに設定し、run。

1日間と短いのですが、そこそこの形になりました。

DL に時間がかかりますが、仕方がないでしょう。
テストは CPU +1日間のデータのみでしたが、感覚的に速い方だと思います。GPU を使えるなら、大きなデータを扱えそうです(データを用意するのに時間がかかりますが)。

exsample は今後整備される予定のようです。楽しみですね。

2021年9月22日水曜日

スペクトルの平滑化

連休中に、スペクトルの平滑化プログラムを書いておこうと思いつきました。

大崎本にサブルーチンが載っていますので、それを利用すれば完成するでしょうと高を括っていました。

が、本を持ち帰っていませんでした。

どうしましょうか、と検索してみると、大崎総合研究所から6月にソースコードが公開されていました。(正誤表もあります。)
http://www.ohsaki.co.jp/activity/download/index.html

昔の有名な図書ですので、プロは既にアレンジしたコードをお持ちです。が、私のようなアマにはありがたい。感謝です。

サブルーチンをダウンロードして、プログラムに組み込み、動かしてみました。が、正しく動きません。どこだ?と探しているうちに、連休が終わりました。

そういえば以前、倍精度に変更したサブルーチンをプロからいただいていました(今回も、連休中に頂きました)。それに組み替えると、改善。さらに、引数を変数に変えると正しく動きました。後者はともかく、前者はあるあるでしたね。感謝。

昨日、お礼がてら雑談していると、周波数によってバンド幅を変える方法もあると教えていただきました。バンド幅を決めて平滑化すると、高周波側と低周波側で見え方が変わってきます。それが改善されるのでしょう。良いですね。

といっても、それを使うのに妥当なスペクトルか判断できない知識レベルですので、今回は通常の平滑化で完成。バグ取りに数日かかりましたが、喰わせるデータや単位のチェックもあわせてできたので良しとしましょう。


2021年6月26日土曜日

Hilbert-Huang Transform

 文献を読んでいると、「Hilbert-Huang Transform(ヒルベルトファン変換)」が出てきました。

初めて知りました。何だろうと調べてみると、少ないながら日本語の解説がありました。

大塚ほか「Hilbert-Huang Transformによる非定常・非線形信号解析」寒地土木研究所月報, 2011

FFT では時間分解能を上げると周波数分解能が下がり、周波数分解能を上げると時間分解能が落ちます。両方上げたい場合、衝撃など短時間の波形解析の場合に利点でしょうか?
どこかの分野ではよく使われているのでしょうか?
Python にも HHT ライブラリはあるので対応可能でしょう。が、少し使いづらい?異なるデータセットに対して同じ周波数の値を得られた方が、あとで使いやすいかな。

ま、頭の片隅に残しておきましょう。

2021年1月26日火曜日

デルタ関数のフーリエ変換

 ω=2πf=2π/T・・・角振動数ωは振動数fの2π倍
\begin{align*}cos{\omega t},\ \sin{\omega t}・・・ω=1(=cost,\ \sin{t})\end{align*}で周期T=2πの周期運動
\begin{align*}x=x_0cos{\left(\omega t+\alpha\right)}\end{align*}調和運動:()の中身が t の一次式

 

自由振動の一般解
\begin{align*}m\ddot{x}+kx=0\end{align*}
【表現1】解の形を\begin{align*}x=Xe^{\lambda t}, λ=iω\end{align*}とおいて展開
\begin{align*}x=X_1e^{i\omega t}+X_2e^{-i\omega t}\end{align*}2つの任意定数を含んだ解=一般解
【表現2】オイラーの公式を用いて書き換え
\begin{align*}x=\left(X_1+X_2\right)cos{\omega t}+i\left(X_1-X_2\right)sin{\omega t}\end{align*}
\begin{align*}=acos{\omega t}+bsin{\omega t}\end{align*}
【表現3】三角関数の合成の公式を用いて書き換え
\begin{align*}x=a_0cos{\left(\omega t+\alpha\right)}\end{align*}

 

周期関数のフーリエ級数
【表現2】の利用
\begin{align*}f\left(t\right)=\frac{1}{2}a_0+a_1cos{\omega t}+a_2cos{2\omega t+\ldots}\end{align*}\begin{align*}+b1sinωt+b2sin2ωt+⋯\end{align*}
オイラーの公式を利用して表現を変えると
\begin{align*}cos{\theta}=\frac{e^{i\theta}+e^{-i\theta}}{2},\ sin{\theta}=-i\frac{e^{i\theta}-e^{-i\theta}}{2}\end{align*}
\begin{align*}f\left(t\right)=\frac{1}{2}a_0+\sum_{r=1}^{\infty}\left(a_r\frac{e^{ir\omega t}+e^{-ir\omega t}}{2}{-jb}_r\frac{e^{ir\omega t}-e^{-ir\omega t}}{2}\right)\end{align*}
複素フーリエ級数
\begin{align*}f\left(t\right)=\sum_{r=‐∞}^{∞}{F_re^{ir\omega t}}\end{align*}
複素フーリエ係数
\begin{align*}F_r=\frac{1}{T}\int_{-T/2}^{T/2}{f\left(t\right)e^{-ir\omega t}dt}\end{align*}

非周期関数のフーリエ積分
\begin{align*}f\left(t\right)=\int_{-\infty}^{\infty}{F\left(\omega\right)e^{i\omega t}d\omega}\end{align*}
フーリエ変換・・・フーリエ級数のフーリエ係数に相当
\begin{align*}F\left(\omega\right)=\frac{1}{2\pi}\int_{-\infty}^{\infty}{f\left(t\right)e^{-i\omega t}dt}\end{align*}

 

デルタ関数のフーリエ変換
t=0の時、e^0=1より
\begin{align*}F\left(\omega\right)=\frac{1}{2\pi}\int_{-\infty}^{\infty}{\delta\left(t\right)e^{-i\omega t}dt}=\frac{1}{2\pi}\end{align*}




2020年10月11日日曜日

微動計1: 信号処理

微動計を用いた衝撃の測定に呼ばれました。

今まで他の方が頑張っていました。が、得られたデータがイマイチだったということが判明。で、地盤を対象に微動計を使っていた私も御一緒することに。

どうも、微動計に備わっていたフィルタの周波数特性をうまく活用できていなかったのが一因のようでした。
その選定から見直そうとしたのですが、私も応用が利くほど詳しくありません。調べていくうちにわからない用語が出てきました。標準モード、群遅延特性、デシメーション。
使うツールの詳細を理解していないと、正しい調査ができないのは共通。いままでプロの指導でうまくいっていただけのことであり、場を変えると途端にダメになるのは同じ。
ちょうど週末で時間があり、この機会に理解することにしました。

用語自体は信号処理分野で広く使われているようです。いくつかの図書を見ましたが、基礎中の基礎といった感じでした。
わかりやすかったのが図書よりも以下のサイト。確かに、音響ととらえると理解しやすい(ホールの設計者はこのようなことまで考えていらっしゃるのですね!)。
以下、解釈した内容を( ..)φメモメモ。


**************************************
ヤマハサウンドシステム
短期集中連載 超解説FIR!第1回~第3回
https://www.yamaha-ss.co.jp/published-articles/journals-04.html

1.用語
1-1.周波数特性・位相特性・群遅延特性
入力したインパルス信号の応答を周波数領域で見る(フーリエ変換)と各周波数のエネルギー応答がわかる。これが周波数特性。
各周波数が時間的にどのくらい遅れて到達しているかを見たものが位相特性。
位相を周波数で微分したものが群遅延特性。
周波数とその位相の変化量(遅れ)が比例していれば群遅延は一定(直線位相特性)。  
ex.
1Hz→1波長(2π、1秒)
2Hz→2波長(4π、1秒)
3Hz→3波長(6π、1秒)

1-2.インパルス応答、伝達関数
システム(ブラックボックス)にインパルスを入力した時に出力された信号がインパルス応答。
インパルスは全周波数で同じエネルギー量持っているため、インパルス応答を見ただけでブラックボックスの特性=伝達関数が分かる。
インパルス応答を周波数の観点で見ると周波数特性が分かり、周波数ごとの到達時間を調べれば位相特性が分かる。
インパルス応答、伝達関数、周波数特性、位相特性等は、データの見方を変えただけ。

2.特性を作る(リバーブエフェクトなど)
2-1.FIR フィルタ
FIR の Tap にある乗算器の係数はフィルターのインパルス応答そのもの。
係数操作でインパルス応答を人工的に加工することが可能。IIR のように最小位相として位相が変化するインパルス応答などを作ることも可能。
目的とする周波数カーブを描いてそれを逆フーリエ変換すれば、カーブのインパルス応答が得られる。
そのインパルス応答を乗算器の係数に入れることで目的の周波数カーブのフィルターを作ることができる。
FIR フィルタは入力信号(サンプルデータ)とインパルス応答波形の2つを畳み込んで新たなデータを作り出す。つまり「畳み込みをするための演算器」。

2-2.FFT と窓関数
入力信号も IR も共に FFT して周波数領域のデータに変換。
畳み込み積分は周波数領域に変換すると単純な掛け算として非常に高速の計算が可能。
その結果を逆フーリエ変換(IFFT)して元の時間領域のデータに戻す。
ただし、FFT を行なうため処理するデータを切り出す際にサイドローブ(雑音)が発生。
窓関数でサイドローブの軽減処理をしているが、軽減しようとすると反対に周波数分解能が悪くなるという二律背反の関係がある。
周波数分解能:   〇     △      × 
サイドローブ軽減: ×     △     〇
窓関数:    ハミング  ハニング  ブラックマン

**************************************

インパルスにδ関数が使われているのは当然なのに新鮮。つながりますね。 

 次は、これらの処理順序について。


2019年12月17日火曜日

Fourier Transform in Python

先週末から触っていたフーリエ変換。結局、Python を使いました。

有限複素フーリエ係数Ck。Nで割る前の値が出ます。
Ck=np.fft.rfft(data)/N

周波数。ここまではいつも通り。
freq=np.fft.rfftfreq(N,d=1./fs)

躓いたのがランニングスペクトル(スペクトログラムという方が正解でしょうか)。scipyでの計算結果が EXCEL の計算結果と一致せず、最初は何の値が吐き出されているのかわかりませんでした。

from scipy import signal
freqs, length, Sx = signal.spectrogram(data, 
                                       fs=fs, 
                                       nperseg=segment,
                                       noverlap=segment-1,
                                   #raw-data
                                       window=('tukey', 0.), 
                                   # Remove linear trend along axis from data.
                                        detrend = False,
                                  # power spectral density(V**2/Hz)
                                  # or power spectrum (V**2) 
              scaling='spectrum', 
            #mode='magnitude'
                                    )

windowを削り、傾き補正を削り、スペクトルを指定すると、結果が一致。デフォルトではこれらが指定されていたため、明記しないと外れませんでした。

得られる値は Power。継続時間 T=ndt は乗じられていません。
この T や N が乗じられているか否かは式を見ないとわからないのですが、明記されていない場合があります(今回もそうでした)。
プロに聞けば、それぞれの流儀があるそうです。地震分野でも「私は乗じない」と言われる方がいらっしゃるそうで、決まりはないとのこと。ま、Nの場合は逆算する際に気を付けておけば良いだけですので、あまり気にする必要はないのでしょう。

EXCELでのミスも見つかりました。Power の最初と最後は2倍しない、など。数式を見直すと、確かにそのようになっていました。
初心者は手を動かさないと正解にたどり着けません。EXCEL で整理し、Python で答え合わせをしました。これで次は大丈夫でしょう。


2019年12月15日日曜日

Fourier Transform in EXCEL

この週末、EXCEL でのフーリエ変換を試していました。

これまで FFT は Python を使用しており、仕事でも Python を使うつもりでいたのですが、今回は EXCEL。理由は「後輩君が EXCEL で始めたから」。

私は空間、彼は時間を扱っており、別の作業です。が、DFT 部分は共通。彼が EXCEL で作り始めた(が正解にたどり着けていない)ので、今回はそれをフォローできる体制を整えておくことにしました。

EXCELでは、以下の3つの方法が考えられます。
1.分析ツールの「フーリエ解析」を使用する。
2.関数を使用する。
3.VBAで組む。

まず、分析ツールのフーリエ解析。試したところ、一番手軽でした。
当然、後輩君はこれを使用しています。が、 FFT なのでデータ数は2の累乗に限定されます。たとえパディングでかわしたとしても、採用されている計算式が明記されていないため、結果をデータ数で割るべきかどうかわかりません。故に振幅も出せません。
(VBA での結果と比較すると、データ数で割っていない値が表示されていました。)

関数では複素数を扱うのがやや面倒です。四則演算のみでもIM○○といった関数を使う必要に迫られます。さらに、k次の答えを求めるためには、k列必要です。これでは非現実的。

VBA では複素有限フーリエ変換を組もうとしました。が、一旦躓きました。VBAでも複素数を扱いづらい。WorksheetFunction でもエラーが出るので原因究明しかけました。が、結論としてはその時間をとらずに有限フーリエ変換に変更しました。今回はデータ数が700以下と少ないので、FFTでない方が効率的なのかもしれません。
ここまで来れば簡単。k、mの2重ループで有限フーリエ係数を出して、それから振幅、フーリエ振幅、Power、複素振幅を計算します。

計算後、スペクトルを図化する際にどの振幅を使うか迷いました。
調べてみると、フーリエ振幅ですね。今まで、スペクトル表示の際はただの振幅を利用しているものと思っていましたが、基本はフーリエ振幅を使っているようです(ランニングスペクトルではPowerが一般的)。慣習のようですね。分野にもよるのでしょう。


EXCEL では VBA が楽でした。分析ツールの出す答えが何を示すのかも分かったので、今後はコチラも使えます。
彼が週明けに自力で正解にたどり着いていたなら、それに越したことはありません。どうなっているでしょうか。
ま、頭の整理ができましたので、手を動かして良かったと思います。

*******************
20191217
結局、私は Python を利用しました。これが楽でした。


2019年8月26日月曜日

1/f ゆらぎ

動画を時間軸で FFT。

予想通り、スペクトルにすると低周波が高く、高周波が低くなる形状です。微動では見慣れない形状ですので面白いなあと思いつつ、当初の着目点に戻って整理を進めました。

昨夜、文献を眺めていますと、この形状についての説明がありました。
寺西ほか「動画像の時系列周波数特性によるゆらぎ解析」法政大学情報メディア教育研究センター研究報告 19, 149-153, 2006
周波数の低下とともにパワースペクトラムが増加 するような信号の中で、パワースペクトラムの振幅が周波数に対して反比例する信号を「1/fゆらぎ」と呼ぶ。
これでしたか!と目が覚めた気分。
昔、「1/fゆらぎ」が商品名についていたのを覚えています。が、意味も違いも分かっていませんでした(現在、そのような商品はありませんので、多くの方が違いを感じなかったのでしょう)。ここにきて、周波数との逆相関=「1/f」だと、ようやく理解しました。

これ、自然に多くあるとのことですが、本当でしょうか?
少なくとも、微動にはありません。
雨音は単位時間であれば高周波が卓越しているように思われます。が、音の場合、ランニングスペクトルで評価するのではなく、単位時間を代表する1つの数値を時間軸方向に並べ、そのスペクトルを取る必要があるのでしょう(時間軸での「ゆらぎ」ですから)。そうすると「1/f」に近づくのかもしれません。
画像だと、グレースケール変換、畳み込み、固有ベクトルなどが代表値として考えられます。風は風圧で良いでしょう。が、音は音圧ではダメでしょう(音色の方が重要な気がします)。知りたいですね。そのあたりは昔研究されているでしょう。探せばいくらでも出てきそうです。

まだまだ面白い会遇があるものです。
色々手を出してみるものですね。

2019年8月17日土曜日

k-空間

東京電機大学出版会「リモートセンシングのための合成開口レーダーの基礎」p325より
g(x) のフーリエ変換 G(f) の f
1/距離:空間周波数(spatial frequency)
1/時間:周波数(frequency)
空間周波数 fの代わりに k=2πf がしばしば用いられる。
k-空間(またはフーリエ空間(Fourier domain/space)):k=2πf
kは電磁波等の波数(k=2π/λ)と混同しないように。
先日の重力探査の文献では「kは波数」等と明記されていました。一方、Fourier domain の wave number と表記された文献もあったように思います。もう一度読みましょうか。


2019年8月13日火曜日

波の知識

微動の整理を進める中で、必要な知識も一緒に整理しています。

有限フーリエ近似、有限フーリエ変換とその複素表現、フーリエ積分、周波数領域・時間領域でのフィルタや積分、窓関数、畳み込みなど。電気回路や画像処理にもつながっており、必要に迫られている技術です。これらを実装しながら、理解していない箇所をつぶしています(全く分からないところも残っていますが)。

お盆ですがプロが出社してましたので、いくつか質問もできました。おかげで解決できた問題もあります。ありがたい環境です。

一つ山を越えると、次の山が見えてきます。
このまま進みましょう。


2019年7月30日火曜日

地すべりと微動

地すべりと微動に関する文献を読んでいました。

集めた中で最も古い文献が1973年です。意外と昔から研究されてきたようですね。港湾基準に取り込まれてから流行りだしたのかな?と思っていましたが、知りませんでした。

(気になった)主な内容は、以下の通りです。
・地すべりブロック内では、3~4Hz付近にて増幅率の増す報告が複数あり。
・地すべりブロック外でも同様の固有振動数を持つが、増幅はやや小さい。
・2~5Hzの particle motion では、表層のクラック直交方向の揺れが大きく見える。
・地質毎に卓越周波数が異なる。
 シラス:2Hz、花崗岩:6~10Hz、四万十層群:15~20Hz。
・表面波探査のS波速度と1/4波長則にて、地すべり深度を推定。誤差15%程度。

残念ながら報告例が少なく、微動が地すべりに十分活用されてきたとは言えないようです。盛土では動的解析を入れて微動を再現している例もありましたが、地すべりではまだまだ。平地で測る方が楽ですし、興味を持たれる方も少ないのでしょう。

以下、読んだ論文の概要です。
******************************************

常時微動と地すべり地への応用
地すべり 1973 年 9 巻 4 号 p. 1-8
・N-S、E-W方向とも大体同じような傾向。卓越周期ははっきりしない。→下層と上層の速度比はあまり大きくないか、あるいは表層の粘性係数が大きいか、また両者が一緒に原因しているかどちらかである。
・常時微動の観測をふつう平地でおこなうと、100mぐらいはなれたところで大きく変化しない。ところが、地すべり地をふくめて山地になると測点間の関係がかなりくずれる。このことはボーリング結果をみても同じであるから、やはり地下構造の変化を反映しているものとみられる

和田ほか
地すべり地の Crack 群の雑微動に対する影響
地震 1973 年 26 巻 4 号 p. 316-325
・亀ノ瀬地すべり
・2~5Hzのピーク:地すべりCrackに直交。crackが振動特性に強く影響。
・低周波領域(0.5~0.7Hz):地すべり地全域で一様な振動特性。深部構造を表している。
・10Hzのピーク:断続的な振幅の強弱。人工ノイズ
・地すべり地のような地盤構造の複雑な地域では、単一の卓越周期のみに注目し、 垂直方向のみの地盤構造と対比するのは危険。
・地盤構造のディメンジョンに相当する個々の周波数領域についてそれぞれ考察することが必要
・地域下では潜在している crack 群 の発見と地すべり運動との関連性等を提供する可能性あり。


長野県鬼無里村地すべり地における常時微動と表層の振動特性
地すべり 1975 年 12 巻 1 号 p. 34-42
・粘性係数が大きいほど(Q値が小さいほど)減衰大
・地すべり崩落地に近いところでは粘性係数ξ=5×106~107CGS程度(Q値1~2程度)
・直接地すべりの影響をうけないところではξ=5×105CGS程度(Q値20程度)
・地すべりの発生からある程度時間が経過すると、地盤の弾性的性質は元の安定した状態に復元するものと思われる。表層の粘性係数は小さく(Q値は大きく)なり、スペクトルからみて明瞭卓越周期がみとめられる。

泉谷ほか
奈良尾地すべり地における常時微動特性
地すべり 1978 年 15 巻 3 号 p. 17-22
・仮定1:常時微動は基盤からのSH波垂直入射に対する地盤の応答である.
・仮定2:常時微動の源は時間的、 空間的にランダムに分布しており、 基盤より入射する波のy、 z成分のスペクトルは相等しい.
・仮定3:地すべり地のクラック群による土塊の異方性に着目して常時微動記録を解析することが、地すべりの状態を知る一つの手段となり得る。
・地表層上部を異方性体で近似した地盤モデル
・クラック群の到達している平均的な深さと、 クラックの混み具合とを推定できる解析手法を見出した.

泉谷ほか
常時微動測定による地すべり地盤調査の一手法
土木学会論文報告集 1981 年 309 号 p. 159-162
・「奈良尾地すべり地における常時微動特性」の改善
・常時微動によって推定された地下構造と、ボーリング調査等が対応するかを調べるにとどまっている.


常時微動特性から推定される味大豆地すべりの発生機構
地すべり 1981 年 18 巻 1 号 p. 15-25_1
・これまで、地すべり付近では振幅の大きくなる振動数はあらわれないで、振動数とともに振幅が小さくなるか、白色雑音のように振動数に関係せず振幅がほぼ一定になるようなスペクトルを示すことが多い。
・地すべり地下方では3~5Hz付近の振動数でスペクトル振幅が卓越する傾向を示す。
・味大豆地すべりも同傾向。
・地すべり地のように地形や地下構造が複雑なところでは、水平・鉛直成分の組み合わせによる楕円軌跡は水平軸に対して傾斜していることが多い。
・レイリー型の表面波であるなら、傾斜角は層構造の傾斜とみることができる。
・振動数ごとに傾斜角が異なっているときは、高振動数においてはごく地表の構造の傾斜に対応し、低振動数の場合は深い構造の傾斜に対応する。
・常時微動のスペクトルから地下構造を推定する場合、成層構造の中に低速度層を仮定してみると都合がよい。
・振動方向の分布にあずかる振動数と地下構造とを対比させると、低速度層より上部にある比較的硬い層が地すべり運動に寄与していることが分った。

川邉ほか
地すべりに及ぼす地震動の影響
地すべり 1983 年 36 巻 2 号 p. 5-16
・静岡県由比地すべり地において地震および常時微動の観測を行った。
・深度別二組の地震計の記録からスペクトル比を求め、 それをもとに重複反射理論を使って地表層の密度・剛性率・Q値の諸定数を推定した。
・固有周期で顕著なものはA点0.28秒(3.6Hz、増幅率6~10倍)、B点0.10秒 (10Hz、増幅率は5倍程度)
・0.1秒付近の振幅の増幅には深さ10m程度までの表層が関与。 0.3秒付近の振幅の増幅には、より深い幅が関与しているようである。
・推定された定数と重複反射理論を用いて、 基盤から地表層にある地震波が入射した場合に地表層内に発生する加速度 ・勢断応力を計算し、 土質試験より得 られたせん断強度と比較した。
・A点における最大加速度は、地表で最大で約3倍に増幅。最大勢断応力は境界面で最大約2.5kg/cm2となった。
・B点の各深さにおける最大せん断応力と、土質試験によるそれぞれの深さでの一面せん断強度を比較すると、 入力地震波の最大加速度が477ga1以上で表層内に破壊面
ができる。
・求められた加速度・勢断応力を由比の4個所の地すべり斜面の安全解析に導入した結果、 安全率が1になるのは傾斜約25度の斜面で50~110gal、約15度では100~220ga1のときであった。

秀島ほか
地すべり斜面における常時微動観測と一考察
開発土木研究所月報第457号 1991
・地すべり地域内の各成分の増幅は、地すべり域外のものと比べていくぶん大きい
・上下動成分は、地すべり域内および域外とも水乎2成分と比ぺて増幅は小さい
・地すぺり域内外でも、スペクトルの卓越振動数に相違はほとんど認められない。洪積層(第二種地盤)の基盤の振動特性そのものが強く反映された結果と考えられる。
・ハンドパスフィルクーは、既応の解析例をもとに2-5Hz。N-S方向(すべり頂部のクラックに直交する方向)が卓越した振動。

川邉
斜面表層の振動特性と不安定化
日本地すべり学会誌 2005年 42 巻 2 号 112-114
・地質毎に卓越した周波数
 シラス:2Hz
 花崗岩:6~10Hz
 四万十層群:15~20Hz
・表層部の固有周期、地質や土質、層厚などによって決定される地盤の振動特性を反映。
・下層から入射する地震動の卓越周期との関係から、表層部での安定性をある程度説明することが可能。

森ほか
微小地震観測による地すべり土塊の三次元形状と地震応答特性の評価
士木学会論文集Al(構造・地震工学)、 Vol.68、 No. 4(地震工学論文集第31-b巻)、 1_395-1_406、2012
・当地すべり地の微動は振幅が低く、電気ノイズに埋もれてしまうことが多い.微動探査は有効に用いることができない.
・微小地震観測は、地すべり地における卓越振動数の評価に有効。
・地すべりブロックの外側の安定した地山を基準にしたときのブロック内側の移動土塊部分の水平動スペクトル比(H/H比)は地震応答特性の評価には有効である.
・表面波探査等によるS波速度と合わせて地すべり深度を推定可能。誤差15%程度(H=Vs/4f、f=4H/Vs)

芝崎ほか
複数深度での地震動観測結果に基づく地すべり土塊の固有周期
日本地すべり学会誌 2016 年 53 巻 6 号 p. 227-234
・譲原地すべりおよび由比地すべりに設置された3深度(想定すべり面よりも下位の基盤岩層、想定すべり面の直上部および地表付近)の地震動観測を行い、高速フーリエ変換 によりスペクトルの増幅率を求め、地すべり土塊の固有周期について検討を行った。
・すべり面直上部付近の最大加速度は基盤岩層の最大加速度の1.0~1.9倍の値を、地表付近のそれは1.1~3.6倍の値を示した。
・いずれの地すべりにおいても、周期が概ね1~2秒を超える加速度フーリエ振幅スペクトルは基盤岩層と想定すべり面直上部、地表付近でほぼ同じ値を示した。一方、概ね1~2秒より短い周期では、基盤岩層に比べて想定すべり面より直上部および地表付近で大きな値を示す特徴が見られた。
・譲原地すべりにおける地すべり土塊の水平方向の固有周期は0.22~0.25秒で上下方向のそれは0.10~0.13秒、由比地すべりでは水平方向が0.37秒で上下方向が0.20~0.22秒と推定された。
・固有周期と加速度フーリエ振幅スペクトルの最大値を示す周期は、譲原地すべりでは異なる値を示した。
・由比地すべりでは、2009年の駿河湾沖地震において、深度40mと深度1mの水平方向の加速度フーリエ振幅スペクトルが最大値を示す周期と固有周期は同じ値を示した。
・由比地すべりで地中変位が発生しなかった原因として加速度が地すべりの変位を生じさせるよりも小さかったことが考えられた。

2019年7月14日日曜日

重力勾配テンソル その2

続きです。

空間周波数fの定義は「回/m」。
対象範囲から最大・最小波長λを出して、最小・最大周波数fに変換すれば良いだけ。先の STACK OVERFLOW に python コードの例が載っていましたが、もっと簡潔に書けます。
周波数がわからなくても、波長から角波数k=2π/λを出せますし、波数だけならフーリエ変換時に0から順に出せるので、計算すら必要ないかもしれません。

曖昧な点は、実装しながら確認することに。

まずは文献に沿ったデータを用意。
次に「新・地震動のスペクトル解析入門」のソースを確認。これでも十分に短いのですが、python では numpy で1行、np.fft.fftn だけでOK。ありがたい。2D だと fft →転置→ fft →転置と同じ結果になったので、この順で内部処理しているだけかもしれません。

実装自体は容易で、2晩ほどでできました。

が、結果が合いません。似たような重力勾配や水平微分の分布になるのですが、オーダーの異なる場合があるのと、ky の符号が逆になっているように見えます。
角波数でダメならただの波数を試したり、ナイキスト周波数以上の領域を全て考慮したり、しなかったり。組み合わせによっては、それっぽい結果になるのですが、数値を記載している文献がないため確証を得られません。3日ほど考えましたが、最終的にはあきらめて寝かすことに。詳細に書かれた文献が、出てくるかもしれません。
もっと簡単に結果を出せると思っていたのですが、残念。

理解にはまだ時間が必要なようです。
ま、重力探査の現状と自分のレベルが分かっただけでも、良しとしましょう。

******************************************
20190813追記
fftn の並びに対応する fftfreq で使う符号、波数のあたりが怪しいようです。修正すると、それらしくなりました。が、検証できないのでここまで。もう少し寝かせましょう。

2019年7月13日土曜日

重力勾配テンソル

講習で知った、重力異常値から重力勾配テンソルを導く方法について、調べていました。

理論はコチラ。
Kevin L. Mickus, Juan Homero Hinojosa
The complete gravity gradient tensor derived from the vertical component of gravity: a Fourier transform technique
https://www.sciencedirect.com/science/article/pii/S0926985101000313

重力異常を重力ポテンシャルの2階微分した重力勾配の形に直しているだけなのですが、フーリエ領域で波数を使った乗算の形にしており、水平成分も算出できるように工夫されています。これを9成分の重力勾配テンソルに整理し逆変換すれば、空間領域の重力勾配テンソルを求められるという流れ。おそらく重力偏差の測定・解釈から思いつかれたのでしょう。

シンプルな流れなのですが、理解に時間を要しました(符号の誤りもありましたし)。
特にわからなかったのが波数の考え方。今回は時間領域への変換ではなく、フーリエ(空間)領域?への変換。ここで躓きました。
2次元平面から波数を求めるイメージはできても、具体的な数値にする方法を複数思い付き、定められません。
調べてみると、同じように悩まれている方がいらっしゃいました。
https://stackoverflow.com/questions/7161417/how-to-calculate-wavenumber-domain-coordinates-from-a-2d-fft

これ、案外メジャーでした。画像処理分野で。
2次元平面での周波数を「空間周波数」と呼ぶそうです。そういえば、画像処理でもハイパスフィルターとかありましたね。画像を扱う際は見た目さえ良くなればOKなので、具体的な周波数には意識を向けていませんでした。が、内部ではまったく同じ計算をしています。うーん繋がる。

続く。

2019年7月11日木曜日

物理探査

先週、物理探査学会の講習会に参加しました。

若い方を対象にしているのかな?と思いながらの参加でしたが、意外とオジ(イ)サマも多く来られていました。
内容は基礎的なことから最新の内容まで。参加するまではもったいないかな?とも考えていましたが、講義についていけないところもあり、個人的には充実した内容の講習会でした。

全体としては、取得データ数の増大、3次元解析の充実が印象に残りました。データの大量取得、大量処理が可能となっている現在、いつまでも2次元にとどまる必要はないのでしょう。3次元解析、当たり前にできると言えるようになりたいものです。

また、処理能力の向上に関しても知らないことが多くありました。多重反射をある程度除去できるようになっているとか、重力探査でソースの走向傾斜を推定できるようになっているとか(これ、ほぼ理解できるようになるまで、3日ほど論文を読み返しました)。

年を取ると「知っている」と勘違いすることが多くなります。気を付けてはいるのですが、なかなか本当に「知らない」ことを自覚するに至りません。今回は良い機会でした。
調べて身につけましょう。

以下、個人的な備忘録です。要チェック!
*****************************************************

・レーダと電磁探査(ハンドブック図9.1)
 ・マクスウェル方程式、タンデルタ

・空中電磁探査
 ・逆解析で深度決定。
 ・表皮深度を使う簡易法では、誤差が5倍程度。

・電気探査
 ・4端子法により接地抵抗をオミット。

・SAR
 ・運が良ければ2時間ほどで取得可。
 ・品質証明が肝要。

・微動アレイ探査
・SPAC係数
 1.分子:クロススペクトルS12
 2.分母:パワスペクトルS11
 3.ρ12=real[S12/(√S11√S22)]
 4.ρ12aveとρ13ave、ρ14aveの算術平均を出す

・位相速度の求め方
 ・スパック係数と位相速度を、第一種0次のベッセル関数J0を介して関係づける。
 ・J0:アレーサイズから高周波数が決まる。低周波数側は急激に落ち始めるところ。

DETERMINATION OF SOIL SHEAR MODULE AT DEPTHS BY IN-SITU VIBRATORY TECHNIQUES, ARMY ENGINEER WATERWAYS EXPERIMENT STATION VICKSBURG MISS

・重力探査
・半自動解釈手法
  • 固有値・固有ベクトルを用いた解析
    ・産総研データ
     →フーリエ変換
     →積分→微分→Gz、Gx,Gyがそろう
     →半自動解釈で断層傾斜角
  • 高密度体(基盤岩)の方向に重力偏差テンソルの最大固有ベクトルが向くことを利用し、断層 傾斜角を推定
  • 日本でも、地熱地域を中心に、重力偏差探査(重力ポテンシャルの3次元空間微分)が実施されてきている [空中探査]
  • インバージョンよりも短時間で重力異常や磁気異常の異常源を推定する半自動解釈手法は、広範囲の大雑把な構造を知る解析に向いている
  • JOGMECのHPから申請。データ取得。

2019年1月14日月曜日

FFT

先週、表面波探査を実施。

静かな平地で好条件と思いきや、近くの工場からと推察される 5Hz のノイズを取り切れませんでした。解析は未実施ですが、深部にどの程度影響したのか興味を惹かれているところです。

表面波探査では波動を扱いますが、他の探査や分析でもその知識は必要となります。微動はもちろん、XRD、SAR、電磁探査、土砂災害の検知など。これだけ使うなら、もっと性根を入れて勉強しておけばよかったと思うのですが、後悔先に立たず。
よく使う FFT もモジュール化されていますので、実際に手を動かすどころか表に出てくることすらありません。が、重要ですのでキーワードくらいは書き残しておきましょう。


「新・地震動のスペクトル解析」4章が主体です。

有限(離散)フーリエ近似
・波形を離散化し、N個の標本値(例えば時間=mΔtにおける加速度xm)を通過する関数として近似により表現。
・選点直行性の利用。
・もともとの波形をN/2種類(k次数、モード)の波に分解。
・標本の個数が有限なので、振動数の検出限界が生じる。これがナイキスト振動数(fN/2=1/2Δt)。
・N/2個の成分を持つフーリエ振幅スペクトル(分解して並べたもの)、フーリエ位相スペクトルとして表現可(時間領域を周波数領域に変換)。
・振幅・位相を表現するには、複素表現が便利。
・有限フーリエ変換では波形が周期的であることを仮定するため、リンク効果が発生。

高速フーリエ変換(FFT)
・有限(離散)フーリエ変換を効率的に計算するアルゴリズム。
・標本数を2の累乗とすることで計算時間を短縮。
・標本数の不足分には「後続のゼロ」をつけ、2の累乗個とし計算。リンク効果を断ち切るため、現実の波のスペクトルに近いとも言える。
https://phreeqc.blogspot.com/2016/07/blog-post_30.html

パーセバルの定理
・標本値xmの2乗平均は、平均パワと呼ばれる(単位時間当たりの電力(電圧の2乗に比例)の式と似ているため)。
・「パワスペクトル」の「パワ」はココからきている。エネルギーを表現する物理的「パワ」と同義でない。
・各モードの成分が受け持つパワを表現。