酒器について質問です。
ある2つのポイントで計測した実験データがあります。
その2つの実験データの間の時間のずれΔtを相互相関関数を用いて求めたいと考えています。
参考書やインターネットを通して理論は理解できるのですが、それをフォートランを用いた場合どのようにして計算させるのか分かりません。
具体的のどのようにして計算したらよいのでしょうか?
どのようなプログラム文を打てばよいか教えていただきたいです。
流れとしてはデータ数1000の場合
2つのファイルをopen
データ読み込み f() g()
do p=-500,500
do i=1,1000
s=f(i)*g(i+p)
ss=ss+s
...........
のような流れになるのでしょうか?
どなたか分かる方是非教えてください
よろしくお願いします
No.1ベストアンサー
- 回答日時:
データ数が1000個ということは、
f(1), f(2), ..., f(1000)
g(1), g(2), ..., g(1000)
なのですよね?
ume3123さんのコードだと、g(i+p)の"i+p"のとる範囲が-499~1500になってしまいますよ。
相互相関関数をh(1000)とすると、
do p=式(p1), 式(p2)
h(p)=0.0
do i=式(i1), 式(i2)
h(p)=h(p)+f(i)*g(i+p)
enddo
enddo
とすればわかり易いのでは?
配列f(), g(), h()のインデックスが1~1000の範囲を逸脱しないように注意してください。
ヒント1:式(p?)には定数が入る。式(i?)にはpを使う(ただし片方だけ)。
ヒント2:1つのpに対して、h(p)=h(p)+f(i)*g(i+p)を1000回実行するわけではない。
(p=c(定数)の時、h(c)=h(c)+f(i)*g(i+c)を1000回実行するわかではないという意味です。)
がんばってください。
ありがとうございます。
do p=1,10000
do i=1,10000-p
にしたらコンパイルできて一応出力でしました。
ただ本来ピークが真ん中にくるはずらしいのですが、端のほうにピークらしきものがあり,あかしな結果になりました。
本などを読んでいるとフーリエ変換しないとダメみたいなことが書いてあって、ますます分からなくなりました(><)
実験でとった元のデータをdatファイルにして上記のようなプログラムでまわすだけは無理なんでしょうか?
No.3
- 回答日時:
ANo.1 です。
たびたびすみません。書き漏らしがありました。>ただ本来ピークが真ん中にくるはずらしいのですが、
実験データを入れる前にプログラムが正しいことを確認しましたか?
あらかじめ時間のずれがわかっているデータ(例:sinとcos)で相互相関をとってみて、
プログラムが正しいことを確認すべきですよ。
実験はStep by Stepです。
No.2
- 回答日時:
ANo.1 です。
==== Code ====
do p=式(p1), 式(p2)
h(p)=0.0
do i=式(i1), 式(i2)
h(p)=h(p)+f(i)*g(i+p-1)
enddo
h(p)=h(p)/(1000-p)
enddo
==== end of Code ====
Codeの下から2行目が抜けていました。ごめんなさい!!
この記述であってますかね?確認してください。
あと、g()もg(i+p-1)と記述すべきですね。ほぼ同じ結果になるはずですが。
indexが1から始まるプログラミング言語をしばらく扱っていない(0から始まるものが多い)
ため、他にも細かなミスがあるかもしれません。
do文については、ume3123さんの考え方でOKです。(細かなところまではわかりませんが。)
また、時間のずれを出すのに相互相関をとるという考え方も正しいはずです。
ご丁寧にありがとうございます!
なんとかできました。
ただやはり波形処理を施さないといい結果は得れそうにないのでまた検討してみます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 統計学 Rを用いた「繰り返しがある直交表実験計画法」の分析方法 8 2023/08/01 17:58
- 統計学 不偏分散を計算するときに標準偏差和をn-1で割りますが、なぜ-1なのでしょうか? 「なぜnでなくn- 5 2022/07/04 14:54
- 統計学 統計学、エクセルがわかりません!解答と詳しい解説をお願いします! (1)それぞれの地域別に記述統計量 9 2022/08/21 16:30
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- 数学 賃料と専有面積のデータが60部屋分ほどがあり、 賃料÷専有面積(=1㎡あたりの賃料)の数式で計算する 2 2023/02/18 20:33
- 電気・ガス・水道業 複数の積算消費電力計での配線方法 1 2022/04/04 11:04
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
メモ帳(テキストデータ)をExc...
-
S9タイプからXタイプにデータ...
-
VBA 空白セルを削除ではない方...
-
CString型の文字列連結について
-
【エクセル】測定時間がバラバ...
-
EXCELVBAでSQLserverからデータ...
-
この行は既に別のテーブルに属...
-
Accessで該当データにフラグを...
-
[C言語] コメント文字列を無視...
-
エクセルで2つの時系列のデー...
-
外部データの更新がうまくでき...
-
C# でDataTableの更新を高速化...
-
特定のデータの抽出方法を教え...
-
ノイズの入った波形をきれいな...
-
カンマからスラッシュに
-
VBAを使ってOutlookメール本文...
-
VBでカードリーダ(USB)のイベ...
-
二分探索の平均探索回数
-
C# ソケット通信でデータ受信時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
この行は既に別のテーブルに属...
-
S9タイプからXタイプにデータ...
-
Excelのマクロでワードのテキス...
-
エクセルで2つの時系列のデー...
-
Accessで該当データにフラグを...
-
ユーザーフォームのテキストボ...
-
シーケンサにパソコンからアク...
-
EXCELVBAでSQLserverからデータ...
-
[C言語] コメント文字列を無視...
-
VBAを使ってOutlookメール本文...
-
プログラミング python pandas ...
-
VBA 毎日取得するデータを順番...
-
<VB>String→Object
-
カンマからスラッシュに
おすすめ情報