回答編集履歴
2
修正
answer
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
ちゃんとバンドパスフィルタでしたよ?
|
2
|
-
データが無いので、てきとーに生成しています
|
1
|
+
データが無いので、てきとーに生成しています。
|
2
|
+
実空間・周波数空間の変換がミスっていました。
|
3
|
+
パラメータはダイレクトに入力して、付随して決まるものは全部計算によって出すと、ミスがすくなるかと。
|
3
4
|

|
4
5
|
|
5
6
|
```python
|
1
修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
ちゃんとバンドパスフィルタでしたよ?
|
2
2
|
データが無いので、てきとーに生成していますが。
|
3
|
-

|
4
4
|
|
5
5
|
```python
|
6
6
|
import numpy as np
|
@@ -8,34 +8,38 @@
|
|
8
8
|
import matplotlib as mpl
|
9
9
|
mpl.rcParams['figure.dpi'] = 200
|
10
10
|
from scipy import signal
|
11
|
-
N = 10000
|
12
|
-
fs = 250 # サンプリング周波数
|
13
|
-
nyq = fs / 2 # ナイキスト周波数
|
14
|
-
fc1 = 10 / fs # カットオフ周波数
|
15
|
-
fc2 = 50 / fs # カットオフ周波数
|
16
|
-
numtaps = 125 # フィルタ係数の数
|
17
|
-
dt = 0.04 # サンプリング間隔
|
18
|
-
t = np.arange(0, N*dt, dt) # 時間軸
|
19
|
-
freq = np.linspace(0, 1.0/dt, N) # 周波数軸
|
20
11
|
|
12
|
+
N = 1000
|
13
|
+
fs = 250
|
14
|
+
nyq = fs / 2
|
15
|
+
fc1 = 4.
|
16
|
+
fc2 = 30.
|
17
|
+
numtaps = 255
|
18
|
+
dt = 1. / fs
|
19
|
+
t = dt*np.arange(N)
|
20
|
+
freq = np.fft.fftfreq(t.shape[-1])*fs
|
21
|
+
|
21
22
|
# フィルタ係数
|
22
|
-
b = signal.firwin(numtaps, [fc1, fc2], pass_zero=False)
|
23
|
+
b = signal.firwin(numtaps, [fc1, fc2], pass_zero=False, nyq=nyq)
|
23
24
|
#b = signal.firwin(numtaps, [fc1, fc2])
|
24
25
|
|
25
|
-
|
26
|
+
x = np.sum((np.random.random()*np.sin(i*t/(N*dt)) for i in range(N)), axis=1)
|
27
|
+
x /= np.max(np.abs(x))
|
26
28
|
# scipyによるFIRフィルタ
|
27
|
-
|
29
|
+
kx = signal.lfilter(b, 1, x)
|
28
30
|
|
29
|
-
F = np.fft.fft(
|
31
|
+
F = np.fft.fft(kx)
|
32
|
+
print(F.shape)
|
30
33
|
Amp = np.abs(F)
|
31
34
|
|
32
|
-
skip=
|
35
|
+
skip=1
|
33
36
|
plt.subplot(211)
|
34
|
-
plt.plot(
|
37
|
+
plt.plot(freq[::skip], F[::skip], marker='.', ls='none', label='t-F')
|
38
|
+
plt.xlim(0, 50)
|
35
39
|
plt.legend()
|
36
|
-
plt.xlim(0, 100)
|
37
40
|
plt.subplot(212)
|
38
41
|
plt.plot(freq[::skip], Amp[::skip], marker='.', ls='none', label='w-A')
|
42
|
+
plt.xlim(0, 50)
|
39
43
|
plt.legend()
|
40
44
|
plt.show()
|
41
45
|
```
|