teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

11

2019/05/24 09:00

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- CSVファイルを用い、Pythonによる高速フーリエ変換(FFT)
1
+ 削除しい質問で削除できない
body CHANGED
@@ -1,56 +1,1 @@
1
- PythonにてCSVファイルから読み込んだ数値データを高速フーリエ変換(FFT)し、結果をグラフで表示するプログラムを作成したいです。
2
-
3
- サンプル数は20480
4
- 時間は0.000008s
5
-
6
- CSVファイルには、A列に時間、B列に電圧のデータが入ってい> ```ここに言語を入力
7
- ます。
8
- ```
9
-
10
- numpy,pandasは導入済みです。
11
-
12
- 現状のプログラムです。
13
-
14
- ```# -*- coding: utf-8 -*-
15
- import numpy as np
16
- import matplotlib.pyplot as plt
17
- import csv
18
- import pandas as pd
19
-
20
-
21
- # データのパラメータ
22
- N = 20480 # サンプル数
23
- dt = 0.000008 # サンプリング間隔
24
- t = np.arange(0, N*dt, dt) # 時間軸
25
- freq = np.fft.fftfreq(N, dt) # 周波数軸
26
-
27
- # 信号生成(周波数10正弦波+周波数20正弦波+ランダムノイズ)
1
+ 質問削除したいだが、却下されたで、内容を編集させていただきました。
28
- f = pd.read_csv("voice.csv")
29
- f = f[["Second","Volt"]]
30
-
31
- # 高速フーリエ変換
32
- F = np.fft.fft(f["Volt"])
33
-
34
- # 振幅スペクトルを計算
35
- Amp = np.abs(F)
36
-
37
- # グラフ表示
38
- plt.figure()
39
- plt.rcParams['font.family'] = 'Times New Roman'
40
- plt.rcParams['font.size'] = 17
41
- plt.subplot(121)
42
- plt.plot(t, f, label='f(n)')
43
- plt.xlabel("Time", fontsize=20)
44
- plt.ylabel("Signal", fontsize=20)
45
- plt.grid()
46
- leg = plt.legend(loc=1, fontsize=25)
47
- leg.get_frame().set_alpha(1)
48
- plt.subplot(122)
49
- plt.plot(freq, Amp, label='|F(k)|')
50
- plt.xlabel('Frequency', fontsize=20)
51
- plt.ylabel('Amplitude', fontsize=20)
52
- plt.grid()
53
- leg = plt.legend(loc=1, fontsize=25)
54
- leg.get_frame().set_alpha(1)
55
- plt.show()
56
- ```

10

2019/05/24 09:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,9 @@
3
3
  サンプル数は20480
4
4
  時間は0.000008s
5
5
 
6
- CSVファイルには、A列に時間、B列に電圧のデータが入っています。
6
+ CSVファイルには、A列に時間、B列に電圧のデータが入ってい> ```ここに言語を入力
7
+ ます。
8
+ ```
7
9
 
8
10
  numpy,pandasは導入済みです。
9
11
 

9

修正

2019/05/23 15:05

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -51,5 +51,4 @@
51
51
  leg = plt.legend(loc=1, fontsize=25)
52
52
  leg.get_frame().set_alpha(1)
53
53
  plt.show()
54
- コード
55
54
  ```

8

修正

2019/05/23 09:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,7 @@
23
23
  freq = np.fft.fftfreq(N, dt) # 周波数軸
24
24
 
25
25
  # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
26
- f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
26
+ f = pd.read_csv("voice.csv")
27
27
  f = f[["Second","Volt"]]
28
28
 
29
29
  # 高速フーリエ変換

7

修正

2019/05/23 09:20

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -9,30 +9,30 @@
9
9
 
10
10
  現状のプログラムです。
11
11
 
12
-
12
+ ```# -*- coding: utf-8 -*-
13
13
  import numpy as np
14
14
  import matplotlib.pyplot as plt
15
15
  import csv
16
16
  import pandas as pd
17
17
 
18
18
 
19
- --データのパラメータ
19
+ # データのパラメータ
20
20
  N = 20480 # サンプル数
21
21
  dt = 0.000008 # サンプリング間隔
22
22
  t = np.arange(0, N*dt, dt) # 時間軸
23
23
  freq = np.fft.fftfreq(N, dt) # 周波数軸
24
24
 
25
- --信号を生成
25
+ # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
26
- f = pd.read_csv("voice.csv")
26
+ f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
27
27
  f = f[["Second","Volt"]]
28
28
 
29
- --高速フーリエ変換
29
+ # 高速フーリエ変換
30
30
  F = np.fft.fft(f["Volt"])
31
31
 
32
- --振幅スペクトルを計算
32
+ # 振幅スペクトルを計算
33
33
  Amp = np.abs(F)
34
34
 
35
- --グラフ表示
35
+ # グラフ表示
36
36
  plt.figure()
37
37
  plt.rcParams['font.family'] = 'Times New Roman'
38
38
  plt.rcParams['font.size'] = 17
@@ -50,4 +50,6 @@
50
50
  plt.grid()
51
51
  leg = plt.legend(loc=1, fontsize=25)
52
52
  leg.get_frame().set_alpha(1)
53
- plt.show()
53
+ plt.show()
54
+ コード
55
+ ```

6

修正

2019/05/23 09:20

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -16,23 +16,23 @@
16
16
  import pandas as pd
17
17
 
18
18
 
19
- # データのパラメータ
19
+ --データのパラメータ
20
20
  N = 20480 # サンプル数
21
21
  dt = 0.000008 # サンプリング間隔
22
22
  t = np.arange(0, N*dt, dt) # 時間軸
23
23
  freq = np.fft.fftfreq(N, dt) # 周波数軸
24
24
 
25
- # 信号を生成
25
+ --信号を生成
26
26
  f = pd.read_csv("voice.csv")
27
27
  f = f[["Second","Volt"]]
28
28
 
29
- # 高速フーリエ変換
29
+ --高速フーリエ変換
30
30
  F = np.fft.fft(f["Volt"])
31
31
 
32
- # 振幅スペクトルを計算
32
+ --振幅スペクトルを計算
33
33
  Amp = np.abs(F)
34
34
 
35
- # グラフ表示
35
+ --グラフ表示
36
36
  plt.figure()
37
37
  plt.rcParams['font.family'] = 'Times New Roman'
38
38
  plt.rcParams['font.size'] = 17

5

修正

2019/05/23 09:19

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -16,23 +16,23 @@
16
16
  import pandas as pd
17
17
 
18
18
 
19
- # データのパラメータ
19
+ # データのパラメータ
20
20
  N = 20480 # サンプル数
21
21
  dt = 0.000008 # サンプリング間隔
22
22
  t = np.arange(0, N*dt, dt) # 時間軸
23
23
  freq = np.fft.fftfreq(N, dt) # 周波数軸
24
24
 
25
- # 信号を生成
25
+ # 信号を生成
26
26
  f = pd.read_csv("voice.csv")
27
27
  f = f[["Second","Volt"]]
28
28
 
29
- # 高速フーリエ変換
29
+ # 高速フーリエ変換
30
30
  F = np.fft.fft(f["Volt"])
31
31
 
32
- # 振幅スペクトルを計算
32
+ # 振幅スペクトルを計算
33
33
  Amp = np.abs(F)
34
34
 
35
- # グラフ表示
35
+ # グラフ表示
36
36
  plt.figure()
37
37
  plt.rcParams['font.family'] = 'Times New Roman'
38
38
  plt.rcParams['font.size'] = 17

4

修正

2019/05/23 09:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,6 @@
10
10
  現状のプログラムです。
11
11
 
12
12
 
13
- # -*- coding: utf-8 -*-
14
13
  import numpy as np
15
14
  import matplotlib.pyplot as plt
16
15
  import csv

3

修正

2019/05/23 09:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,7 @@
23
23
  t = np.arange(0, N*dt, dt) # 時間軸
24
24
  freq = np.fft.fftfreq(N, dt) # 周波数軸
25
25
 
26
- # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
26
+ # 信号を生成
27
27
  f = pd.read_csv("voice.csv")
28
28
  f = f[["Second","Volt"]]
29
29
 

2

修正

2019/05/23 09:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -24,7 +24,7 @@
24
24
  freq = np.fft.fftfreq(N, dt) # 周波数軸
25
25
 
26
26
  # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
27
- f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
27
+ f = pd.read_csv("voice.csv")
28
28
  f = f[["Second","Volt"]]
29
29
 
30
30
  # 高速フーリエ変換

1

現状の追加

2019/05/23 09:16

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,4 +5,50 @@
5
5
 
6
6
  CSVファイルには、A列に時間、B列に電圧のデータが入っています。
7
7
 
8
- numpy,pandasは導入済みです。
8
+ numpy,pandasは導入済みです。
9
+
10
+ 現状のプログラムです。
11
+
12
+
13
+ # -*- coding: utf-8 -*-
14
+ import numpy as np
15
+ import matplotlib.pyplot as plt
16
+ import csv
17
+ import pandas as pd
18
+
19
+
20
+ # データのパラメータ
21
+ N = 20480 # サンプル数
22
+ dt = 0.000008 # サンプリング間隔
23
+ t = np.arange(0, N*dt, dt) # 時間軸
24
+ freq = np.fft.fftfreq(N, dt) # 周波数軸
25
+
26
+ # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
27
+ f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
28
+ f = f[["Second","Volt"]]
29
+
30
+ # 高速フーリエ変換
31
+ F = np.fft.fft(f["Volt"])
32
+
33
+ # 振幅スペクトルを計算
34
+ Amp = np.abs(F)
35
+
36
+ # グラフ表示
37
+ plt.figure()
38
+ plt.rcParams['font.family'] = 'Times New Roman'
39
+ plt.rcParams['font.size'] = 17
40
+ plt.subplot(121)
41
+ plt.plot(t, f, label='f(n)')
42
+ plt.xlabel("Time", fontsize=20)
43
+ plt.ylabel("Signal", fontsize=20)
44
+ plt.grid()
45
+ leg = plt.legend(loc=1, fontsize=25)
46
+ leg.get_frame().set_alpha(1)
47
+ plt.subplot(122)
48
+ plt.plot(freq, Amp, label='|F(k)|')
49
+ plt.xlabel('Frequency', fontsize=20)
50
+ plt.ylabel('Amplitude', fontsize=20)
51
+ plt.grid()
52
+ leg = plt.legend(loc=1, fontsize=25)
53
+ leg.get_frame().set_alpha(1)
54
+ plt.show()