質問編集履歴

11

2019/05/24 09:00

投稿

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

10

2019/05/24 09:00

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,11 @@
8
8
 
9
9
 
10
10
 
11
- CSVファイルには、A列に時間、B列に電圧のデータが入っています。
11
+ CSVファイルには、A列に時間、B列に電圧のデータが入ってい> ```ここに言語を入力
12
+
13
+ ます。
14
+
15
+ ```
12
16
 
13
17
 
14
18
 

9

修正

2019/05/23 15:05

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -104,6 +104,4 @@
104
104
 
105
105
  plt.show()
106
106
 
107
- コード
108
-
109
107
  ```

8

修正

2019/05/23 09:21

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
50
50
 
51
- f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
51
+ f = pd.read_csv("voice.csv")
52
52
 
53
53
  f = f[["Second","Volt"]]
54
54
 

7

修正

2019/05/23 09:20

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
-
23
+ ```# -*- coding: utf-8 -*-
24
24
 
25
25
  import numpy as np
26
26
 
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- --データのパラメータ
37
+ # データのパラメータ
38
38
 
39
39
  N = 20480 # サンプル数
40
40
 
@@ -46,27 +46,27 @@
46
46
 
47
47
 
48
48
 
49
- --信号を生成
49
+ # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
50
50
 
51
- f = pd.read_csv("voice.csv")
51
+ f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
52
52
 
53
53
  f = f[["Second","Volt"]]
54
54
 
55
55
 
56
56
 
57
- --高速フーリエ変換
57
+ # 高速フーリエ変換
58
58
 
59
59
  F = np.fft.fft(f["Volt"])
60
60
 
61
61
 
62
62
 
63
- --振幅スペクトルを計算
63
+ # 振幅スペクトルを計算
64
64
 
65
65
  Amp = np.abs(F)
66
66
 
67
67
 
68
68
 
69
- --グラフ表示
69
+ # グラフ表示
70
70
 
71
71
  plt.figure()
72
72
 
@@ -103,3 +103,7 @@
103
103
  leg.get_frame().set_alpha(1)
104
104
 
105
105
  plt.show()
106
+
107
+ コード
108
+
109
+ ```

6

修正

2019/05/23 09:20

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- # データのパラメータ
37
+ --データのパラメータ
38
38
 
39
39
  N = 20480 # サンプル数
40
40
 
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- # 信号を生成
49
+ --信号を生成
50
50
 
51
51
  f = pd.read_csv("voice.csv")
52
52
 
@@ -54,19 +54,19 @@
54
54
 
55
55
 
56
56
 
57
- # 高速フーリエ変換
57
+ --高速フーリエ変換
58
58
 
59
59
  F = np.fft.fft(f["Volt"])
60
60
 
61
61
 
62
62
 
63
- # 振幅スペクトルを計算
63
+ --振幅スペクトルを計算
64
64
 
65
65
  Amp = np.abs(F)
66
66
 
67
67
 
68
68
 
69
- # グラフ表示
69
+ --グラフ表示
70
70
 
71
71
  plt.figure()
72
72
 

5

修正

2019/05/23 09:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- # データのパラメータ
37
+ # データのパラメータ
38
38
 
39
39
  N = 20480 # サンプル数
40
40
 
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- # 信号を生成
49
+ # 信号を生成
50
50
 
51
51
  f = pd.read_csv("voice.csv")
52
52
 
@@ -54,19 +54,19 @@
54
54
 
55
55
 
56
56
 
57
- # 高速フーリエ変換
57
+ # 高速フーリエ変換
58
58
 
59
59
  F = np.fft.fft(f["Volt"])
60
60
 
61
61
 
62
62
 
63
- # 振幅スペクトルを計算
63
+ # 振幅スペクトルを計算
64
64
 
65
65
  Amp = np.abs(F)
66
66
 
67
67
 
68
68
 
69
- # グラフ表示
69
+ # グラフ表示
70
70
 
71
71
  plt.figure()
72
72
 

4

修正

2019/05/23 09:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -21,8 +21,6 @@
21
21
 
22
22
 
23
23
 
24
-
25
- # -*- coding: utf-8 -*-
26
24
 
27
25
  import numpy as np
28
26
 

3

修正

2019/05/23 09:17

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
51
+ # 信号を生成
52
52
 
53
53
  f = pd.read_csv("voice.csv")
54
54
 

2

修正

2019/05/23 09:17

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
52
52
 
53
- f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
53
+ f = pd.read_csv("voice.csv")
54
54
 
55
55
  f = f[["Second","Volt"]]
56
56
 

1

現状の追加

2019/05/23 09:16

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -13,3 +13,95 @@
13
13
 
14
14
 
15
15
  numpy,pandasは導入済みです。
16
+
17
+
18
+
19
+ 現状のプログラムです。
20
+
21
+
22
+
23
+
24
+
25
+ # -*- coding: utf-8 -*-
26
+
27
+ import numpy as np
28
+
29
+ import matplotlib.pyplot as plt
30
+
31
+ import csv
32
+
33
+ import pandas as pd
34
+
35
+
36
+
37
+
38
+
39
+ # データのパラメータ
40
+
41
+ N = 20480 # サンプル数
42
+
43
+ dt = 0.000008 # サンプリング間隔
44
+
45
+ t = np.arange(0, N*dt, dt) # 時間軸
46
+
47
+ freq = np.fft.fftfreq(N, dt) # 周波数軸
48
+
49
+
50
+
51
+ # 信号を生成(周波数10の正弦波+周波数20の正弦波+ランダムノイズ)
52
+
53
+ f = pd.read_csv("/Users/yuya/Desktop/python/voice.csv")
54
+
55
+ f = f[["Second","Volt"]]
56
+
57
+
58
+
59
+ # 高速フーリエ変換
60
+
61
+ F = np.fft.fft(f["Volt"])
62
+
63
+
64
+
65
+ # 振幅スペクトルを計算
66
+
67
+ Amp = np.abs(F)
68
+
69
+
70
+
71
+ # グラフ表示
72
+
73
+ plt.figure()
74
+
75
+ plt.rcParams['font.family'] = 'Times New Roman'
76
+
77
+ plt.rcParams['font.size'] = 17
78
+
79
+ plt.subplot(121)
80
+
81
+ plt.plot(t, f, label='f(n)')
82
+
83
+ plt.xlabel("Time", fontsize=20)
84
+
85
+ plt.ylabel("Signal", fontsize=20)
86
+
87
+ plt.grid()
88
+
89
+ leg = plt.legend(loc=1, fontsize=25)
90
+
91
+ leg.get_frame().set_alpha(1)
92
+
93
+ plt.subplot(122)
94
+
95
+ plt.plot(freq, Amp, label='|F(k)|')
96
+
97
+ plt.xlabel('Frequency', fontsize=20)
98
+
99
+ plt.ylabel('Amplitude', fontsize=20)
100
+
101
+ plt.grid()
102
+
103
+ leg = plt.legend(loc=1, fontsize=25)
104
+
105
+ leg.get_frame().set_alpha(1)
106
+
107
+ plt.show()