1

私は物理学の学位でプログラミングを行うように作られているので、プログラミングの初心者です。私はPython2を使用しています。

2列のデータを含むtxtファイルが与えられました。最初の数行は次のようになります。

0.000000000000000000e+00 7.335686114232199684e-02 
1.999999999999999909e-07 7.571960558042964973e-01
3.999999999999999819e-07 9.909475704320810374e-01
5.999999999999999728e-07 3.412754086075696081e-01
7.999999999999999638e-07 -5.558766000866324219e-01
9.999999999999999547e-07 -9.810046985453722002e-01
1.199999999999999946e-06 -5.436864816312496629e-01
1.399999999999999937e-06 2.645021165628647641e-01
1.599999999999999928e-06 9.667259209284312371e-01
1.799999999999999919e-06 7.395753817164774091e-01
1.999999999999999909e-06 7.289488801158025555e-02
2.200000000000000112e-06 -7.925906572709742193e-01
2.399999999999999891e-06 -9.727702002847055107e-01
2.599999999999999671e-06 -1.772398644968510018e-01
2.799999999999999873e-06 6.627909312992285029e-01
3.000000000000000076e-06 1.022032186188189362e+00
3.199999999999999855e-06 5.531242183135693935e-01

そしてその上に何百行も行きます。

質問は次のとおりです。今週、外部インパルスに続くシミュレートされたNMR時間領域応答で構成されるファイルが提供されました。この自由誘導減衰(FID)は、周波数、初期振幅、および崩壊定数によって特徴付けられます。データには単一の発振周波数があり、2番目のデータには2つの周波数の混合が含まれています。両方の信号の高速フーリエ変換を評価し、周波数領域でプロットするプログラムを作成します。

誰かが私がこれを行う方法の例を教えてもらえますか?残念ながら、ラボでは多くのガイダンスが提供されておらず、オンラインチュートリアルがいくつか提供されているだけで、それ以外の場合はGoogleのものに指示されています。

4

2 に答える 2

3

私のコメントを答えに変えます:

実際には非常に簡単です。numpy.genfromtxt()を使用してデータをnumpy 配列にロードすると、 numpy.fftから何らかの形式の FFT を選択できます。

これはあなたの演習であるため、正確なコードを書き留めることはしませんが、基本的にはそれを要約したものです。

于 2012-11-13T18:43:20.197 に答える
2

.txtファイルを読み取るには、次のようなことを行う必要があります(最速ではありませんが、最も明確です)。

column1 = []
column2 = []
infile = open("MyFile.txt", "r")
for l in infile.readlines():
    if l.strip():
        v1 = float(l.split()[0])
        v2 = float(l.split()[1])
        column1.append(v1)
        column2.append(v2)

fftについては、numpyを調べてください

于 2012-11-13T18:30:46.010 に答える