<jupyter_start><jupyter_text>正弦波に高周波ノイズを加えてハイパス・ローパスをかけてみる<jupyter_code># 時系列のサンプルデータ作成
n = 512                         # データ数
dt = 0.01                       # サンプリング間隔
f = 1                           # 周波数
fn = 1/(2*dt)                   # ナイキスト周波数
t = np.linspace(1, n, n)*dt-dt
# y = np.sin(2*np.pi*f*t)+t+0.5*np.random.randn(t.size)

y = np.sin(2*np.pi*f*t)+0.5*np.random.randn(t.size)

# パラメータ設定
fp = 3                          # 通過域端周波数[Hz]
fs = 2                       # 阻止域端周波数[Hz]
gpass = 1                       # 通過域最大損失量[dB]
gstop = 40                      # 阻止域最小減衰量[dB]
# 正規化
Wp = fp/fn
Ws = fs/fn

# ローパスフィルタで波形整形
# バターワースフィルタ
N, Wn = signal.buttord(Wp, Ws, gpass, gstop)
b1, a1 = signal.butter(N, Wn, "High")
y1 = signal.filtfilt(b1, a1, y)

b2, a2 = signal.butter(N, Wn, "Low")
y2 = signal.filtfilt(b2, a2, y)

plotGraph([y,y1,y2],['row','High','Low'])<jupyter_output>C:\Users\<NAME>\AppData\Local\conda\conda\envs\work_3.6\lib\site-packages\scipy\signal\_arraytools.py:45: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.
  b = a[a_slice]<jupyter_text>正弦波にバイアスを加えてハイパス・ローパスをかけてみる<jupyter_code># 時系列のサンプルデータ作成
n = 512                         # データ数
dt = 0.01                       # サンプリング間隔
f = 1                           # 周波数
fn = 1/(2*dt)                   # ナイキスト周波数
t = np.linspace(1, n, n)*dt-dt
y = np.sin(2*np.pi*f*t)+t

# y = np.sin(2*np.pi*f*t)+0.5*np.random.randn(t.size)

# パラメータ設定
fp = 3                          # 通過域端周波数[Hz]
fs = 2                       # 阻止域端周波数[Hz]
gpass = 1                       # 通過域最大損失量[dB]
gstop = 40                      # 阻止域最小減衰量[dB]
# 正規化
Wp = fp/fn
Ws = fs/fn

# ローパスフィルタで波形整形
# バターワースフィルタ
N, Wn = signal.buttord(Wp, Ws, gpass, gstop)
b1, a1 = signal.butter(N, Wn, "High")
y1 = signal.filtfilt(b1, a1, y)

b2, a2 = signal.butter(N, Wn, "Low")
y2 = signal.filtfilt(b2, a2, y)

plotGraph([y, y1, y2], ['row', 'High', 'Low'])<jupyter_output><empty_output><jupyter_text>正弦波に高周波ノイズ+バイアスを加えてハイパス・ローパスをかけてみる<jupyter_code># 時系列のサンプルデータ作成
n = 512                         # データ数
dt = 0.01                       # サンプリング間隔
f = 1                           # 周波数
fn = 1/(2*dt)                   # ナイキスト周波数
t = np.linspace(1, n, n)*dt-dt
y = np.sin(2*np.pi*f*t)+t+0.5*np.random.randn(t.size)


# パラメータ設定
fp = 3                          # 通過域端周波数[Hz]
fs = 2                       # 阻止域端周波数[Hz]
gpass = 1                       # 通過域最大損失量[dB]
gstop = 40                      # 阻止域最小減衰量[dB]
# 正規化
Wp = fp/fn
Ws = fs/fn

# ローパスフィルタで波形整形
# バターワースフィルタ
N, Wn = signal.buttord(Wp, Ws, gpass, gstop)
b1, a1 = signal.butter(N, Wn, "High")
y1 = signal.filtfilt(b1, a1, y)

b2, a2 = signal.butter(N, Wn, "Low")
y2 = signal.filtfilt(b2, a2, y)

plotGraph([y, y1, y2], ['row', 'High', 'Low'])<jupyter_output><empty_output><jupyter_text>正弦波だけの信号にハイパス・ローパスをかけてみる<jupyter_code># 時系列のサンプルデータ作成
n = 512                         # データ数
dt = 0.01                       # サンプリング間隔
f = 1                           # 周波数
fn = 1/(2*dt)                   # ナイキスト周波数
t = np.linspace(1, n, n)*dt-dt
y = np.sin(2*np.pi*f*t)


# パラメータ設定
fp = 3                          # 通過域端周波数[Hz]
fs = 2                       # 阻止域端周波数[Hz]
gpass = 1                       # 通過域最大損失量[dB]
gstop = 40                      # 阻止域最小減衰量[dB]
# 正規化
Wp = fp/fn
Ws = fs/fn

# ローパスフィルタで波形整形
# バターワースフィルタ
N, Wn = signal.buttord(Wp, Ws, gpass, gstop)
b1, a1 = signal.butter(N, Wn, "High")
y1 = signal.filtfilt(b1, a1, y)

b2, a2 = signal.butter(N, Wn, "Low")
y2 = signal.filtfilt(b2, a2, y)

plotGraph([y, y1, y2], ['row', 'High', 'Low'])<jupyter_output><empty_output><jupyter_text>正弦波+早い正弦波にハイパス・ローパスをかけてみる<jupyter_code># 時系列のサンプルデータ作成
n = 512                         # データ数
dt = 0.01                       # サンプリング間隔
f = 1                           # 周波数
fn = 1/(2*dt)                   # ナイキスト周波数
t = np.linspace(1, n, n)*dt-dt
ya = np.sin(2*np.pi*f*t)
yb = np.sin(10*np.pi*f*t)
y=ya+yb

# パラメータ設定
fp = 3                          # 通過域端周波数[Hz]
fs = 2                       # 阻止域端周波数[Hz]
gpass = 1                       # 通過域最大損失量[dB]
gstop = 40                      # 阻止域最小減衰量[dB]
# 正規化
Wp = fp/fn
Ws = fs/fn

# ローパスフィルタで波形整形
# バターワースフィルタ
N, Wn = signal.buttord(Wp, Ws, gpass, gstop)
b1, a1 = signal.butter(N, Wn, "High")
y1 = signal.filtfilt(b1, a1, y)

b2, a2 = signal.butter(N, Wn, "Low")
y2 = signal.filtfilt(b2, a2, y)

plotGraph([y, y1, y2, ya, yb], ['row', 'High', 'Low', 'Low Freq', 'High Freq'])
plotGraph([y, y1, yb], ['row', 'High', 'High Freq'])
plotGraph([y, y2, ya], ['row', 'Low',  'Low Freq'])<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15664423885618167, 'fraction_numerical': 0.03322119428090833, 'mean_word_length': 1.9861895794099185, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 5, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '349925', 'license': 'MIT', 'n_tokens_mistral': 2574, 'n_tokens_neox': 2586, 'n_words': 408, 'path': 'SignalProcessing/Filter/.ipynb_checkpoints/Butterworth-checkpoint.ipynb', 'repo_name': 'kasukeinu/technical_note', 'size': '4763'}