import%20marimo%0A%0A__generated_with%20%3D%20%220.23.9%22%0Aapp%20%3D%20marimo.App()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%2003%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E5%9F%BA%E7%A4%8E%0A%20%20%20%20%23%23%20%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8A%A0%E5%B7%A5%E3%83%BB%E5%88%86%E6%9E%90%E3%81%99%E3%82%8B%0A%0A%20%20%20%20%E3%81%93%E3%81%AEmarimo%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A7%E3%81%AF%E3%80%81%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%93%E3%81%A0%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92**%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0**%E3%82%84**%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E6%9E%90**%E3%81%AA%E3%81%A9%E3%81%AE%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF%E3%81%A7%E5%8A%A0%E5%B7%A5%E3%83%BB%E5%88%86%E6%9E%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%92%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E5%AD%A6%E7%BF%92%E7%9B%AE%E6%A8%99%3A**%0A%20%20%20%20-%20FFT%E3%81%AB%E3%82%88%E3%82%8B%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F%E5%A4%89%E6%8F%9B%0A%20%20%20%20-%20%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%2F%E3%83%8F%E3%82%A4%E3%83%91%E3%82%B9%2F%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%0A%20%20%20%20-%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E5%88%86%E6%9E%90%E3%81%A8%E5%8F%AF%E8%A6%96%E5%8C%96%0A%20%20%20%20-%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E8%A8%AD%E8%A8%88%E3%81%AE%E5%9F%BA%E7%A4%8E%0A%0A%20%20%20%20**%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6%3A**%0A%20%20%20%20-%2002_working_with_data.py%20%E3%82%92%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%8E%AF%20%E3%81%AA%E3%81%9C%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%8B%0A%0A%20%20%20%20%23%23%23%20%E7%8F%BE%E5%AE%9F%E4%B8%96%E7%95%8C%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%81%AF%E3%80%8C%E6%B1%9A%E3%81%84%E3%80%8D%0A%0A%20%20%20%20**%E7%94%9F%E3%83%87%E3%83%BC%E3%82%BF**%E3%81%AB%E3%81%AF%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E5%95%8F%E9%A1%8C%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%EF%BC%9A%0A%0A%20%20%20%201.%20**%E3%83%8E%E3%82%A4%E3%82%BA**%3A%20%E6%B8%AC%E5%AE%9A%E8%AA%A4%E5%B7%AE%E3%82%84%E7%92%B0%E5%A2%83%E3%83%8E%E3%82%A4%E3%82%BA%0A%20%20%20%202.%20**%E4%B8%8D%E8%A6%81%E3%81%AA%E5%91%A8%E6%B3%A2%E6%95%B0%E6%88%90%E5%88%86**%3A%20%E5%88%86%E6%9E%90%E5%AF%BE%E8%B1%A1%E5%A4%96%E3%81%AE%E4%BF%A1%E5%8F%B7%0A%20%20%20%203.%20**%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%2F%E3%83%89%E3%83%AA%E3%83%95%E3%83%88**%3A%20%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%81%AE%E3%82%BC%E3%83%AD%E7%82%B9%E3%81%9A%E3%82%8C%0A%20%20%20%204.%20**%E6%AD%AA%E3%81%BF**%3A%20%E9%9D%9E%E7%B7%9A%E5%BD%A2%E7%89%B9%E6%80%A7%E3%81%AB%E3%82%88%E3%82%8B%E6%AD%AA%E3%81%BF%0A%0A%20%20%20%20%23%23%23%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%A7%E4%BD%95%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8B%0A%0A%20%20%20%20-%20**%E3%83%8E%E3%82%A4%E3%82%BA%E9%99%A4%E5%8E%BB**%3A%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%A7%E4%B8%8D%E8%A6%81%E3%81%AA%E6%88%90%E5%88%86%E3%82%92%E9%99%A4%E5%8E%BB%0A%20%20%20%20-%20**%E7%89%B9%E5%BE%B4%E6%8A%BD%E5%87%BA**%3A%20%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E6%9E%90%E3%81%A7%E4%BF%A1%E5%8F%B7%E3%81%AE%E7%89%B9%E6%80%A7%E3%82%92%E7%90%86%E8%A7%A3%0A%20%20%20%20-%20**%E4%BF%A1%E5%8F%B7%E6%94%B9%E5%96%84**%3A%20%E5%BC%B7%E8%AA%BF%E3%81%97%E3%81%9F%E3%81%84%E6%88%90%E5%88%86%E3%82%92%E5%BC%B7%E8%AA%BF%0A%20%20%20%20-%20**%E3%83%87%E3%83%BC%E3%82%BF%E5%9C%A7%E7%B8%AE**%3A%20%E9%87%8D%E8%A6%81%E3%81%AA%E6%83%85%E5%A0%B1%E3%81%AE%E3%81%BF%E3%82%92%E4%BF%9D%E6%8C%81%0A%0A%20%20%20%20%23%23%23%20Wandas%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E7%89%B9%E5%BE%B4%0A%0A%20%20%20%20-%20**%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3**%3A%20%E7%9B%B4%E6%84%9F%E7%9A%84%E3%81%AA%E5%87%A6%E7%90%86%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%0A%20%20%20%20-%20**%E8%87%AA%E5%8B%95%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF**%3A%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%8F%E6%9C%80%E9%81%A9%E8%A8%AD%E5%AE%9A%0A%20%20%20%20-%20**%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E5%87%A6%E7%90%86**%3A%20%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%87%E3%83%BC%E3%82%BF%E5%AF%BE%E5%BF%9C%0A%20%20%20%20-%20**%E5%93%81%E8%B3%AA%E4%BF%9D%E8%A8%BC**%3A%20%E5%87%A6%E7%90%86%E5%B1%A5%E6%AD%B4%E3%81%AE%E5%AE%8C%E5%85%A8%E8%BF%BD%E8%B7%A1%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%94%84%20%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%20vs%20%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F%0A%0A%20%20%20%20%23%23%23%20%E4%BA%8C%E3%81%A4%E3%81%AE%E8%A6%96%E7%82%B9%E3%81%A7%E4%BF%A1%E5%8F%B7%E3%82%92%E8%A6%8B%E3%82%8B%0A%0A%20%20%20%20**%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F**%EF%BC%88Time%20Domain%EF%BC%89%3A%0A%20%20%20%20-%20**%E4%BD%95%E6%99%82**%E3%81%AB**%E3%81%A9%E3%81%AE%E3%81%8F%E3%82%89%E3%81%84**%E3%81%AE%E5%80%A4%E3%81%8B%0A%20%20%20%20-%20%E7%9B%B4%E6%84%9F%E7%9A%84%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84%0A%20%20%20%20-%20%E6%B3%A2%E5%BD%A2%E3%81%AE%E5%BD%A2%E7%8A%B6%E3%80%81%E6%8C%AF%E5%B9%85%E3%80%81%E6%8C%81%E7%B6%9A%E6%99%82%E9%96%93%E3%82%92%E7%9B%B4%E6%8E%A5%E8%A6%8B%E3%82%8C%E3%82%8B%0A%0A%20%20%20%20**%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F**%EF%BC%88Frequency%20Domain%EF%BC%89%3A%0A%20%20%20%20-%20**%E3%81%A9%E3%81%AE%E5%91%A8%E6%B3%A2%E6%95%B0**%E3%81%8C**%E3%81%A9%E3%81%AE%E3%81%8F%E3%82%89%E3%81%84**%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%0A%20%20%20%20-%20%E4%BF%A1%E5%8F%B7%E3%81%AE%E3%80%8C%E6%88%90%E5%88%86%E3%80%8D%E3%82%92%E5%88%86%E6%9E%90%E3%81%A7%E3%81%8D%E3%82%8B%0A%20%20%20%20-%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E8%A8%AD%E8%A8%88%E3%81%AB%E4%B8%8D%E5%8F%AF%E6%AC%A0%0A%0A%20%20%20%20%23%23%23%20FFT%EF%BC%88%E9%AB%98%E9%80%9F%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B%EF%BC%89%E3%81%AE%E5%BD%B9%E5%89%B2%0A%0A%20%20%20%20FFT%E3%81%AF**%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%20%E2%86%94%20%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F**%E3%81%AE%E5%A4%89%E6%8F%9B%E3%82%92%E8%A1%8C%E3%81%86%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%EF%BC%9A%0A%20%20%20%20-%20**%E8%A8%88%E7%AE%97%E5%8A%B9%E7%8E%87**%3A%20O(N%20log%20N)%20%E3%81%AE%E9%AB%98%E9%80%9F%E5%87%A6%E7%90%86%0A%20%20%20%20-%20**%E5%8F%AF%E9%80%86%E6%80%A7**%3A%20%E9%80%86FFT%E3%81%A7%E5%85%83%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%81%AB%E6%88%BB%E3%81%9B%E3%82%8B%0A%20%20%20%20-%20**%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD**%3A%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E6%95%B0%E3%81%A7%E6%B1%BA%E3%81%BE%E3%82%8B%0A%20%20%20%20-%20**%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E6%80%A7**%3A%20%E9%80%A3%E7%B6%9A%E5%87%A6%E7%90%86%E3%81%8C%E5%8F%AF%E8%83%BD%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20%23%20%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20import%20wandas%20as%20wd%0A%0A%20%20%20%20%23%20%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%E8%A8%AD%E5%AE%9A%0A%20%20%20%20%23%20'%25matplotlib%20widget'%20command%20supported%20automatically%20in%20marimo%0A%20%20%20%20plt.rcParams%5B%22figure.figsize%22%5D%20%3D%20(12%2C%206)%0A%0A%20%20%20%20print(f%22Wandas%3A%20%7Bwd.__version__%7D%22)%0A%20%20%20%20print(%22%E2%9C%85%20%E6%BA%96%E5%82%99%E5%AE%8C%E4%BA%86%22)%0A%20%20%20%20return%20np%2C%20plt%2C%20wd%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20wd)%3A%0A%20%20%20%20%23%20%E3%83%87%E3%83%A2%E7%94%A8%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%82%92%E4%BD%9C%E6%88%90%0A%20%20%20%20np.random.seed(42)%0A%20%20%20%20sampling_rate%20%3D%201000%20%20%23%201kHz%0A%20%20%20%20duration%20%3D%202.0%0A%20%20%20%20time%20%3D%20np.linspace(0%2C%20duration%2C%20int(duration%20*%20sampling_rate))%0A%20%20%20%20_signal%20%3D%20(%0A%20%20%20%20%20%20%20%201.0%20*%20np.sin(2%20*%20np.pi%20*%2050%20*%20time)%0A%20%20%20%20%20%20%20%20%2B%200.7%20*%20np.sin(2%20*%20np.pi%20*%20120%20*%20time)%0A%20%20%20%20%20%20%20%20%2B%200.5%20*%20np.sin(2%20*%20np.pi%20*%20200%20*%20time)%0A%20%20%20%20%20%20%20%20%2B%200.1%20*%20np.random.randn(len(time))%0A%20%20%20%20)%0A%20%20%20%20%23%20%E8%A4%87%E6%95%B0%E3%81%AE%E5%91%A8%E6%B3%A2%E6%95%B0%E6%88%90%E5%88%86%E3%82%92%E6%8C%81%E3%81%A4%E4%BF%A1%E5%8F%B7%0A%20%20%20%20demo_signal%20%3D%20wd.from_numpy(data%3D_signal.reshape(1%2C%20-1)%2C%20sampling_rate%3Dsampling_rate%2C%20ch_labels%3D%5B%22Demo%20Signal%22%5D)%0A%20%20%20%20print(%22%E3%83%87%E3%83%A2%E4%BF%A1%E5%8F%B7%E4%BD%9C%E6%88%90%E5%AE%8C%E4%BA%86%3A%22)%20%20%23%2050Hz%0A%20%20%20%20%23%20ChannelFrame%E3%82%92%E4%BD%9C%E6%88%90%0A%20%20%20%20demo_signal.info()%20%20%23%20120Hz%20%20%23%20200Hz%20%20%23%20%E3%83%8E%E3%82%A4%E3%82%BA%0A%20%20%20%20return%20demo_signal%2C%20sampling_rate%2C%20time%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%93%8A%20FFT%E3%81%AB%E3%82%88%E3%82%8B%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E6%9E%90%0A%0A%20%20%20%20%23%23%23%20%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%81%A7%E3%81%AE%E8%A6%B3%E5%AF%9F%0A%0A%20%20%20%20%E3%81%BE%E3%81%9A%E3%81%AF**%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F**%E3%81%A7%E4%BF%A1%E5%8F%B7%E3%82%92%E8%A6%8B%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(demo_signal%2C%20plt)%3A%0A%20%20%20%20%23%20%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%81%A7%E3%81%AE%E6%B3%A2%E5%BD%A2%E8%A1%A8%E7%A4%BA%0A%20%20%20%20demo_signal.plot(title%3D%22Time%20Domain%20Signal%22)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%0A%0A%20%20%20%20%E5%90%8C%E3%81%98%E4%BF%A1%E5%8F%B7%E3%82%92**%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F**%E3%81%A7%E8%A6%B3%E5%AF%9F%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(demo_signal)%3A%0A%20%20%20%20%23%20FFT%E3%82%92%E5%AE%9F%E8%A1%8C%0A%20%20%20%20spectrum%20%3D%20demo_signal.fft()%0A%0A%20%20%20%20print(%22%F0%9F%94%84%20FFT%E5%A4%89%E6%8F%9B%E7%B5%90%E6%9E%9C%3A%22)%0A%20%20%20%20spectrum.info()%0A%0A%20%20%20%20%23%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%82%92%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%0A%20%20%20%20spectrum.plot(title%3D%22Frequency%20Domain%20(Magnitude%20Spectrum)%22)%0A%20%20%20%20return%20(spectrum%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%8E%AF%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E5%88%86%E6%9E%90%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%0A%0A%20%20%20%20-%20**50Hz%2C%20120Hz%2C%20200Hz**%E3%81%AE%E3%83%94%E3%83%BC%E3%82%AF%E3%81%8C%E8%A6%8B%E3%81%88%E3%82%8B%0A%20%20%20%20-%20**%E3%83%8E%E3%82%A4%E3%82%BA**%E3%81%AF%E5%85%A8%E5%91%A8%E6%B3%A2%E6%95%B0%E5%B8%AF%E3%81%AB%E5%BA%83%E3%81%8C%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%0A%20%20%20%20-%20**%E6%8C%AF%E5%B9%85**%E3%81%AF%E5%85%83%E3%81%AE%E4%BF%A1%E5%8F%B7%E3%81%AE%E5%BC%B7%E3%81%95%E3%82%92%E8%A1%A8%E3%81%99%0A%0A%20%20%20%20%23%23%23%20%E4%BD%8D%E7%9B%B8%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%82%82%E8%A6%8B%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plt%2C%20spectrum)%3A%0A%20%20%20%20%23%20%E4%BD%8D%E7%9B%B8%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%82%82%E8%A1%A8%E7%A4%BA%0A%20%20%20%20(_fig%2C%20(_ax1%2C%20_ax2))%20%3D%20plt.subplots(2%2C%201%2C%20figsize%3D(12%2C%208))%0A%20%20%20%20spectrum.plot(ax%3D_ax1%2C%20title%3D%22Magnitude%20Spectrum%22%2C%20ylabel%3D%22Magnitude%22)%0A%20%20%20%20%23%20%E6%8C%AF%E5%B9%85%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%0A%20%20%20%20_ax2.plot(spectrum.freqs%2C%20spectrum.unwrapped_phase%2C%20%22b-%22%2C%20linewidth%3D1)%0A%20%20%20%20_ax2.set_title(%22Phase%20Spectrum%22)%0A%20%20%20%20%23%20%E4%BD%8D%E7%9B%B8%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%0A%20%20%20%20_ax2.set_xlabel(%22Frequency%20%5BHz%5D%22)%0A%20%20%20%20_ax2.set_ylabel(%22Phase%20%5Brad%5D%22)%0A%20%20%20%20_ax2.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Welch%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E5%AF%86%E5%BA%A6%E6%8E%A8%E5%AE%9A%0A%0A%20%20%20%20**Welch%E6%B3%95**%E3%81%AF%E3%80%81%E4%BF%A1%E5%8F%B7%E3%82%92%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AB%E5%88%86%E5%89%B2%E3%81%97%E3%80%81%E5%90%84%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%82%92%E5%B9%B3%E5%9D%87%E5%8C%96%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E3%82%88%E3%82%8A%E6%BB%91%E3%82%89%E3%81%8B%E3%81%A7%E4%BF%A1%E9%A0%BC%E6%80%A7%E3%81%AE%E9%AB%98%E3%81%84%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E5%AF%86%E5%BA%A6%EF%BC%88PSD%EF%BC%89%E3%82%92%E5%BE%97%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%99%E3%80%82%0A%0A%20%20%20%20**FFT%20vs%20Welch%E6%B3%95%E3%81%AE%E9%81%95%E3%81%84%3A**%0A%20%20%20%20-%20**FFT**%3A%20%E5%8D%98%E4%B8%80%E3%81%AE%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%EF%BC%88%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD%E3%81%8C%E9%AB%98%E3%81%84%E3%81%8C%E5%A4%89%E5%8B%95%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%84%EF%BC%89%0A%20%20%20%20-%20**Welch%E6%B3%95**%3A%20%E5%B9%B3%E5%9D%87%E5%8C%96%E3%81%95%E3%82%8C%E3%81%9FPSD%EF%BC%88%E6%BB%91%E3%82%89%E3%81%8B%E3%81%A0%E3%81%8C%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD%E3%81%8C%E4%BD%8E%E3%81%84%EF%BC%89%0A%0A%20%20%20%20**Welch%E6%B3%95%E3%81%AE%E5%88%A9%E7%82%B9%3A**%0A%20%20%20%20-%20**%E5%88%86%E6%95%A3%E3%81%AE%E4%BD%8E%E6%B8%9B**%3A%20%E5%B9%B3%E5%9D%87%E5%8C%96%E3%81%AB%E3%82%88%E3%82%8A%E3%83%8E%E3%82%A4%E3%82%BA%E3%81%AE%E5%BD%B1%E9%9F%BF%E3%82%92%E8%BB%BD%E6%B8%9B%0A%20%20%20%20-%20**%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E5%B9%B3%E6%BB%91%E5%8C%96**%3A%20%E3%82%88%E3%82%8A%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%9F%E6%8E%A8%E5%AE%9A%E7%B5%90%E6%9E%9C%0A%20%20%20%20-%20**%E3%83%8E%E3%82%A4%E3%82%BA%E6%88%90%E5%88%86%E3%81%AE%E8%AD%98%E5%88%A5**%3A%20%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%83%8E%E3%82%A4%E3%82%BA%E3%81%A8%E4%BF%A1%E5%8F%B7%E6%88%90%E5%88%86%E3%82%92%E5%8C%BA%E5%88%A5%E3%81%97%E3%82%84%E3%81%99%E3%81%84%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(demo_signal%2C%20spectrum)%3A%0A%20%20%20%20%23%20Welch%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E6%8E%A8%E5%AE%9A%0A%20%20%20%20%23%20demo_signal.welch()%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%0A%20%20%20%20welch_result%20%3D%20demo_signal.welch(win_length%3D1024%2C%20hop_length%3D512%2C%20n_fft%3D2048)%0A%20%20%20%20print(%22%F0%9F%94%84%20Welch%E6%B3%95%E3%81%AB%E3%82%88%E3%82%8B%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%3A%22)%20%20%23%20%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E9%95%B7%0A%20%20%20%20welch_result.info()%20%20%23%20%E3%83%9B%E3%83%83%E3%83%97%E3%82%B5%E3%82%A4%E3%82%BA%EF%BC%8850%25%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%83%83%E3%83%97%EF%BC%89%0A%20%20%20%20_ax%20%3D%20spectrum%5B0%5D.plot(overlay%3DTrue)%20%20%23%20FFT%E3%82%B5%E3%82%A4%E3%82%BA%0A%20%20%20%20welch_result%5B0%5D.plot(ax%3D_ax%2C%20title%3D%22FFT%20and%20Welch%20Spectrum%22%2C%20xlim%3D(0%2C%20300)%2C%20overlay%3DTrue)%0A%20%20%20%20_ax.legend((%22FFT%22%2C%20%22Welch%22))%0A%20%20%20%20_ax.axvline(50%2C%20color%3D%22green%22%2C%20linestyle%3D%22--%22%2C%20alpha%3D0.7%2C%20linewidth%3D1%2C%20label%3D%2250Hz%22)%0A%20%20%20%20_ax.axvline(120%2C%20color%3D%22orange%22%2C%20linestyle%3D%22--%22%2C%20alpha%3D0.7%2C%20linewidth%3D1%2C%20label%3D%22120Hz%22)%0A%20%20%20%20%23%20FFT%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%81%A8Welch%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%82%92%E6%AF%94%E8%BC%83%0A%20%20%20%20%23%20FFT%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%0A%20%20%20%20%23%20Welch%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%0A%20%20%20%20%23%20%E4%B8%BB%E8%A6%81%E3%81%AA%E3%83%94%E3%83%BC%E3%82%AF%E3%82%92%E3%83%9E%E3%83%BC%E3%82%AF%0A%20%20%20%20_ax.axvline(200%2C%20color%3D%22purple%22%2C%20linestyle%3D%22--%22%2C%20alpha%3D0.7%2C%20linewidth%3D1%2C%20label%3D%22200Hz%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%8A%20Welch%E6%B3%95%E3%81%AE%E7%89%B9%E5%BE%B4%E3%81%A8%E5%88%A9%E7%82%B9**%0A%0A%20%20%20%20-%20**%E6%BB%91%E3%82%89%E3%81%8B%E3%81%AA%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB**%3A%20%E5%B9%B3%E5%9D%87%E5%8C%96%E3%81%AB%E3%82%88%E3%82%8A%E3%83%8E%E3%82%A4%E3%82%BA%E3%81%AE%E5%BD%B1%E9%9F%BF%E3%81%8C%E8%BB%BD%E6%B8%9B%E3%81%95%E3%82%8C%E3%80%81%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%9F%E6%8E%A8%E5%AE%9A%E7%B5%90%E6%9E%9C%E3%81%8C%E5%BE%97%E3%82%89%E3%82%8C%E3%82%8B%0A%20%20%20%20-%20**%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB**%3A%20%E5%91%A8%E6%B3%A2%E6%95%B0%E5%B8%AF%E5%9F%9F%E3%81%82%E3%81%9F%E3%82%8A%E3%81%AE%E3%83%91%E3%83%AF%E3%83%BC%E3%82%92%E8%A1%A8%E3%81%99%0A%20%20%20%20-%20**50Hz%2C%20120Hz%2C%20200Hz**%E3%81%AE%E3%83%94%E3%83%BC%E3%82%AF%E3%81%8C%E3%82%88%E3%82%8A%E6%98%8E%E7%A2%BA%E3%81%AB%E8%AD%98%E5%88%A5%E3%81%A7%E3%81%8D%E3%82%8B%0A%20%20%20%20-%20**%E3%83%8E%E3%82%A4%E3%82%BA%E5%BA%8A**%3A%20%E3%83%8E%E3%82%A4%E3%82%BA%E3%83%AC%E3%83%99%E3%83%AB%E3%81%8C%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%A6%E6%8E%A8%E5%AE%9A%E3%81%95%E3%82%8C%E3%82%8B%0A%0A%20%20%20%20%23%23%23%20FFT%20vs%20Welch%E6%B3%95%E3%81%AE%E6%AF%94%E8%BC%83%0A%0A%20%20%20%20**FFT%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%3A**%0A%20%20%20%20-%20%E2%9C%85%20%E9%AB%98%E3%81%84%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD%0A%20%20%20%20-%20%E2%9D%8C%20%E3%83%8E%E3%82%A4%E3%82%BA%E3%81%AE%E5%BD%B1%E9%9F%BF%E3%81%A7%E5%A4%89%E5%8B%95%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%84%0A%20%20%20%20-%20%F0%9F%93%88%20%E5%8D%98%E4%B8%80%E3%81%AE%E6%99%82%E9%96%93%E7%AA%93%E3%81%A7%E3%81%AE%E8%A8%88%E7%AE%97%0A%0A%20%20%20%20**Welch%20PSD%3A**%0A%20%20%20%20-%20%E2%9C%85%20%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%9F%E6%8E%A8%E5%AE%9A%E5%80%A4%EF%BC%88%E5%B9%B3%E5%9D%87%E5%8C%96%E3%81%AB%E3%82%88%E3%82%8B%EF%BC%89%0A%20%20%20%20-%20%E2%9C%85%20%E3%83%8E%E3%82%A4%E3%82%BA%E3%81%A8%E4%BF%A1%E5%8F%B7%E6%88%90%E5%88%86%E3%82%92%E5%8C%BA%E5%88%A5%E3%81%97%E3%82%84%E3%81%99%E3%81%84%0A%20%20%20%20-%20%E2%9D%8C%20%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD%E3%81%8C%E4%BD%8E%E3%81%84%0A%20%20%20%20-%20%F0%9F%93%88%20%E8%A4%87%E6%95%B0%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E5%B9%B3%E5%9D%87%0A%0A%20%20%20%20%23%23%23%20Welch%E6%B3%95%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E8%AA%BF%E6%95%B4%0A%0A%20%20%20%20Welch%E6%B3%95%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E7%B5%90%E6%9E%9C%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%8F%E5%A4%89%E3%82%8F%E3%82%8A%E3%81%BE%E3%81%99%EF%BC%9A%0A%0A%20%20%20%20-%20**%60nperseg%60**%3A%20%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E9%95%B7%EF%BC%88%E5%A4%A7%E3%81%8D%E3%81%84%E3%81%BB%E3%81%A9%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD%E3%81%8C%E9%AB%98%E3%81%84%E3%81%8C%E3%80%81%E6%99%82%E9%96%93%E5%88%86%E8%A7%A3%E8%83%BD%E3%81%8C%E4%BD%8E%E3%81%84%EF%BC%89%0A%20%20%20%20-%20**%60noverlap%60**%3A%20%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%A9%E3%83%83%E3%83%97%E9%95%B7%EF%BC%8850-75%25%E3%81%8C%E4%B8%80%E8%88%AC%E7%9A%84%EF%BC%89%0A%20%20%20%20-%20**%60nfft%60**%3A%20FFT%E3%82%B5%E3%82%A4%E3%82%BA%EF%BC%88nperseg%E4%BB%A5%E4%B8%8A%E3%81%AB%E3%81%99%E3%82%8B%EF%BC%89%0A%0A%20%20%20%20**%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%88%E3%83%AC%E3%83%BC%E3%83%89%E3%82%AA%E3%83%95%3A**%0A%20%20%20%20-%20**%E9%AB%98%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD**%3A%20nperseg%E3%82%92%E5%A4%A7%E3%81%8D%E3%81%8F%0A%20%20%20%20-%20**%E9%AB%98%E5%AE%89%E5%AE%9A%E6%80%A7**%3A%20noverlap%E3%82%92%E5%A4%A7%E3%81%8D%E3%81%8F%EF%BC%88%E3%82%88%E3%82%8A%E5%A4%9A%E3%81%8F%E3%81%AE%E5%B9%B3%E5%9D%87%E5%8C%96%EF%BC%89%0A%20%20%20%20-%20**%E9%AB%98%E9%80%9F%E5%87%A6%E7%90%86**%3A%20nperseg%E3%82%92%E5%B0%8F%E3%81%95%E3%81%8F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%8E%9B%EF%B8%8F%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%0A%0A%20%20%20%20%23%23%23%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E7%94%A8%E9%80%94%0A%0A%20%20%20%20%7C%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E7%A8%AE%E9%A1%9E%20%7C%20%E7%94%A8%E9%80%94%20%7C%20%E7%89%B9%E5%BE%B4%20%7C%0A%20%20%20%20%7C------------%7C------%7C------%7C%0A%20%20%20%20%7C%20**%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9**%20%7C%20%E9%AB%98%E5%91%A8%E6%B3%A2%E3%83%8E%E3%82%A4%E3%82%BA%E9%99%A4%E5%8E%BB%20%7C%20%E4%BD%8E%E5%91%A8%E6%B3%A2%E9%80%9A%E9%81%8E%20%7C%0A%20%20%20%20%7C%20**%E3%83%8F%E3%82%A4%E3%83%91%E3%82%B9**%20%7C%20%E7%9B%B4%E6%B5%81%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E9%99%A4%E5%8E%BB%20%7C%20%E9%AB%98%E5%91%A8%E6%B3%A2%E9%80%9A%E9%81%8E%20%7C%0A%20%20%20%20%7C%20**%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9**%20%7C%20%E7%89%B9%E5%AE%9A%E5%B8%AF%E5%9F%9F%E6%8A%BD%E5%87%BA%20%7C%20%E5%B8%AF%E5%9F%9F%E9%80%9A%E9%81%8E%20%7C%0A%20%20%20%20%7C%20**%E3%83%90%E3%83%B3%E3%83%89%E3%82%B9%E3%83%88%E3%83%83%E3%83%97**%20%7C%20%E7%89%B9%E5%AE%9A%E5%B8%AF%E5%9F%9F%E9%99%A4%E5%8E%BB%20%7C%20%E5%B8%AF%E5%9F%9F%E9%98%BB%E6%AD%A2%20%7C%0A%0A%20%20%20%20%23%23%23%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E8%A8%AD%E8%A8%88%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%0A%0A%20%20%20%20-%20**%E3%82%AB%E3%83%83%E3%83%88%E3%82%AA%E3%83%95%E5%91%A8%E6%B3%A2%E6%95%B0**%3A%20%E3%81%A9%E3%81%93%E3%81%8B%E3%82%89%E9%81%AE%E6%96%AD%E3%81%99%E3%82%8B%E3%81%8B%0A%20%20%20%20-%20**%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E6%AC%A1%E6%95%B0**%3A%20%E9%81%AE%E6%96%AD%E3%81%AE%E6%80%A5%E5%B3%BB%E3%81%95%EF%BC%88%E6%AC%A1%E6%95%B0%E3%81%8C%E9%AB%98%E3%81%84%E3%81%BB%E3%81%A9%E6%80%A5%E5%B3%BB%EF%BC%89%0A%20%20%20%20-%20**%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%82%BF%E3%82%A4%E3%83%97**%3A%20Butterworth%2C%20Chebyshev%2C%20Elliptic%E3%81%AA%E3%81%A9%0A%20%20%20%20-%20**%E4%BD%8D%E7%9B%B8%E7%89%B9%E6%80%A7**%3A%20%E7%B7%9A%E5%BD%A2%E4%BD%8D%E7%9B%B8%20vs%20%E9%9D%9E%E7%B7%9A%E5%BD%A2%E4%BD%8D%E7%9B%B8%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%0A%0A%20%20%20%20**%E9%AB%98%E5%91%A8%E6%B3%A2%E3%83%8E%E3%82%A4%E3%82%BA%E3%82%92%E9%99%A4%E5%8E%BB**%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(demo_signal%2C%20plt)%3A%0A%20%20%20%20%23%20%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E9%81%A9%E7%94%A8%EF%BC%88150Hz%E3%82%AB%E3%83%83%E3%83%88%E3%82%AA%E3%83%95%EF%BC%89%0A%20%20%20%20lowpass_filtered%20%3D%20demo_signal.low_pass_filter(cutoff%3D150)%0A%20%20%20%20print(%22%F0%9F%8E%9B%EF%B8%8F%20%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E9%81%A9%E7%94%A8%3A%22)%0A%20%20%20%20print(%22%20%20%E3%82%AB%E3%83%83%E3%83%88%E3%82%AA%E3%83%95%3A%20150%20Hz%22)%0A%20%20%20%20print(f%22%20%20%E5%85%83%E4%BF%A1%E5%8F%B7RMS%3A%20%7Bdemo_signal.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20print(f%22%20%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E5%BE%8CRMS%3A%20%7Blowpass_filtered.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20(_fig%2C%20(_ax1%2C%20_ax2))%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(15%2C%205))%0A%20%20%20%20demo_signal.fft().plot(ax%3D_ax1%2C%20title%3D%22Original%20Spectrum%22)%0A%20%20%20%20%23%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E5%89%8D%E5%BE%8C%E3%81%AE%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E6%AF%94%E8%BC%83%0A%20%20%20%20lowpass_filtered.fft().plot(ax%3D_ax2%2C%20title%3D%22Low-pass%20Filtered%20(150Hz)%22)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%89%20%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E5%8A%B9%E6%9E%9C**%0A%0A%20%20%20%20-%20**200Hz%E6%88%90%E5%88%86**%E3%81%8C%E5%A4%A7%E5%B9%85%E3%81%AB%E6%B8%9B%E8%A1%B0%0A%20%20%20%20-%20**50Hz%E3%81%A8120Hz**%E3%81%AF%E3%81%BB%E3%81%BC%E5%A4%89%E5%8C%96%E3%81%AA%E3%81%97%0A%20%20%20%20-%20**%E3%83%8E%E3%82%A4%E3%82%BA**%E3%82%82%E4%B8%80%E9%83%A8%E9%99%A4%E5%8E%BB%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%8F%E3%82%A4%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%0A%0A%20%20%20%20**%E4%BD%8E%E5%91%A8%E6%B3%A2%E6%88%90%E5%88%86%EF%BC%88%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%81%AA%E3%81%A9%EF%BC%89%E3%82%92%E9%99%A4%E5%8E%BB**%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(demo_signal%2C%20plt)%3A%0A%20%20%20%20%23%20%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%9F%E4%BF%A1%E5%8F%B7%E3%82%92%E4%BD%9C%E6%88%90%0A%20%20%20%20signal_with_offset%20%3D%20demo_signal%20%2B%202.0%20%20%23%20DC%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%0A%20%20%20%20highpass_filtered%20%3D%20signal_with_offset.high_pass_filter(cutoff%3D30)%0A%20%20%20%20%23%20%E3%83%8F%E3%82%A4%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E9%81%A9%E7%94%A8%EF%BC%8830Hz%E3%82%AB%E3%83%83%E3%83%88%E3%82%AA%E3%83%95%EF%BC%89%0A%20%20%20%20print(%22%F0%9F%8E%9B%EF%B8%8F%20%E3%83%8F%E3%82%A4%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E9%81%A9%E7%94%A8%3A%22)%0A%20%20%20%20print(%22%20%20%E3%82%AB%E3%83%83%E3%83%88%E3%82%AA%E3%83%95%3A%2030%20Hz%22)%0A%20%20%20%20print(f%22%20%20%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E4%BB%98%E3%81%8DRMS%3A%20%7Bsignal_with_offset.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20print(f%22%20%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E5%BE%8CRMS%3A%20%7Bhighpass_filtered.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20(_fig%2C%20(_ax1%2C%20_ax2%2C%20ax3))%20%3D%20plt.subplots(3%2C%201%2C%20figsize%3D(12%2C%209))%0A%20%20%20%20demo_signal.plot(ax%3D_ax1%2C%20title%3D%22Original%20Signal%22)%0A%20%20%20%20signal_with_offset.plot(ax%3D_ax2%2C%20title%3D%22With%20DC%20Offset%22)%0A%20%20%20%20%23%20%E6%99%82%E9%96%93%E9%A0%98%E5%9F%9F%E3%81%A7%E3%81%AE%E6%AF%94%E8%BC%83%0A%20%20%20%20highpass_filtered.plot(ax%3Dax3%2C%20title%3D%22High-pass%20Filtered%20(30Hz)%22)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%93%88%20%E3%83%8F%E3%82%A4%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E5%8A%B9%E6%9E%9C**%0A%0A%20%20%20%20-%20**DC%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88**%E3%81%8C%E9%99%A4%E5%8E%BB%E3%81%95%E3%82%8C%E3%81%A60%E4%BB%98%E8%BF%91%E3%81%AB%E6%88%BB%E3%82%8B%0A%20%20%20%20-%20**%E4%BD%8E%E5%91%A8%E6%B3%A2%E6%88%90%E5%88%86**%E3%81%8C%E6%B8%9B%E8%A1%B0%0A%20%20%20%20-%20**%E9%AB%98%E5%91%A8%E6%B3%A2%E6%88%90%E5%88%86**%E3%81%AF%E4%BF%9D%E6%8C%81%E3%81%95%E3%82%8C%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%0A%0A%20%20%20%20**%E7%89%B9%E5%AE%9A%E3%81%AE%E5%91%A8%E6%B3%A2%E6%95%B0%E5%B8%AF%E5%9F%9F%E3%81%AE%E3%81%BF%E3%82%92%E9%80%9A%E3%81%99**%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%A7%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(demo_signal%2C%20plt)%3A%0A%20%20%20%20%23%20%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%EF%BC%8880-160Hz%EF%BC%89%0A%20%20%20%20bandpass_filtered%20%3D%20demo_signal.band_pass_filter(low_cutoff%3D80%2C%20high_cutoff%3D160)%0A%20%20%20%20print(%22%F0%9F%8E%9B%EF%B8%8F%20%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E9%81%A9%E7%94%A8%3A%22)%0A%20%20%20%20print(%22%20%20%E9%80%9A%E9%81%8E%E5%B8%AF%E5%9F%9F%3A%2080%20-%20160%20Hz%22)%0A%20%20%20%20print(%22%20%20%E4%B8%AD%E5%BF%83%E5%91%A8%E6%B3%A2%E6%95%B0%3A%20120%20Hz%22)%0A%20%20%20%20print(f%22%20%20%E5%85%83%E4%BF%A1%E5%8F%B7RMS%3A%20%7Bdemo_signal.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20print(f%22%20%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E5%BE%8CRMS%3A%20%7Bbandpass_filtered.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20(_fig%2C%20(_ax1%2C%20_ax2))%20%3D%20plt.subplots(1%2C%202%2C%20figsize%3D(15%2C%205))%0A%20%20%20%20demo_signal.fft().plot(ax%3D_ax1%2C%20title%3D%22Original%20Spectrum%22)%0A%20%20%20%20%23%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E6%AF%94%E8%BC%83%0A%20%20%20%20bandpass_filtered.fft().plot(ax%3D_ax2%2C%20title%3D%22Band-pass%20Filtered%20(80-160Hz)%22)%0A%20%20%20%20_ax2.axvspan(80%2C%20160%2C%20alpha%3D0.2%2C%20color%3D%22green%22%2C%20label%3D%22Pass%20Band%22)%0A%20%20%20%20_ax2.legend()%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20%23%20%E9%80%9A%E9%81%8E%E5%B8%AF%E5%9F%9F%E3%82%92%E3%83%8F%E3%82%A4%E3%83%A9%E3%82%A4%E3%83%88%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%8E%AF%20%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E5%8A%B9%E6%9E%9C**%0A%0A%20%20%20%20-%20**120Hz%E6%88%90%E5%88%86**%E3%81%AE%E3%81%BF%E3%81%8C%E6%AE%8B%E3%82%8B%0A%20%20%20%20-%20**50Hz%E3%81%A8200Hz**%E3%81%AF%E5%A4%A7%E5%B9%85%E3%81%AB%E6%B8%9B%E8%A1%B0%0A%20%20%20%20-%20**%E3%83%8E%E3%82%A4%E3%82%BA**%E3%82%82%E5%B8%AF%E5%9F%9F%E5%A4%96%E3%81%A7%E9%99%A4%E5%8E%BB%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%94%A7%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%AE%E8%AA%BF%E6%95%B4%0A%0A%20%20%20%20%23%23%23%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E6%AC%A1%E6%95%B0%E3%81%AE%E5%BD%B1%E9%9F%BF%0A%0A%20%20%20%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E6%AC%A1%E6%95%B0%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%A8**%E9%81%AE%E6%96%AD%E7%89%B9%E6%80%A7**%E3%81%8C%E5%A4%89%E3%82%8F%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(demo_signal%2C%20plt)%3A%0A%20%20%20%20%23%20%E7%95%B0%E3%81%AA%E3%82%8B%E6%AC%A1%E6%95%B0%E3%81%AE%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%82%92%E6%AF%94%E8%BC%83%0A%20%20%20%20orders%20%3D%20%5B2%2C%204%2C%208%5D%0A%20%20%20%20filtered_signals%20%3D%20%7B%7D%0A%20%20%20%20for%20order%20in%20orders%3A%0A%20%20%20%20%20%20%20%20filtered%20%3D%20demo_signal.low_pass_filter(cutoff%3D100%2C%20order%3Dorder)%0A%20%20%20%20%20%20%20%20filtered_signals%5Bf%22Order%20%7Border%7D%22%5D%20%3D%20filtered%0A%20%20%20%20print(%22%F0%9F%94%A7%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E6%AC%A1%E6%95%B0%E3%81%AE%E6%AF%94%E8%BC%83%3A%22)%0A%20%20%20%20for%20name%2C%20_signal%20in%20filtered_signals.items()%3A%0A%20%20%20%20%20%20%20%20print(f%22%20%20%7Bname%7D%3A%20RMS%20%3D%20%7B_signal.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20(_fig%2C%20_axes)%20%3D%20plt.subplots(1%2C%20len(orders)%20%2B%201%2C%20figsize%3D(18%2C%204))%0A%20%20%20%20demo_signal.fft().plot(ax%3D_axes%5B0%5D%2C%20title%3D%22Original%22)%0A%20%20%20%20for%20i%2C%20(name%2C%20_signal)%20in%20enumerate(filtered_signals.items()%2C%201)%3A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E6%AF%94%E8%BC%83%0A%20%20%20%20%20%20%20%20_signal.fft().plot(ax%3D_axes%5Bi%5D%2C%20title%3Dname)%0A%20%20%20%20%20%20%20%20_axes%5Bi%5D.axvline(100%2C%20color%3D%22red%22%2C%20linestyle%3D%22--%22%2C%20alpha%3D0.7%2C%20label%3D%22Cutoff%22)%0A%20%20%20%20%20%20%20%20%23%20%E5%85%83%E4%BF%A1%E5%8F%B7%0A%20%20%20%20%20%20%20%20_axes%5Bi%5D.legend()%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20%23%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E9%81%A9%E7%94%A8%E5%BE%8C%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%E2%9A%99%EF%B8%8F%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E6%AC%A1%E6%95%B0%E3%81%AE%E5%BD%B1%E9%9F%BF**%0A%0A%20%20%20%20-%20**%E6%AC%A1%E6%95%B0%E3%81%8C%E4%BD%8E%E3%81%84**%EF%BC%88Order%202%EF%BC%89%3A%20%E9%81%AE%E6%96%AD%E3%81%8C%E7%B7%A9%E3%82%84%E3%81%8B%0A%20%20%20%20-%20**%E6%AC%A1%E6%95%B0%E3%81%8C%E9%AB%98%E3%81%84**%EF%BC%88Order%208%EF%BC%89%3A%20%E9%81%AE%E6%96%AD%E3%81%8C%E6%80%A5%E5%B3%BB%0A%20%20%20%20-%20**%E6%AC%A1%E6%95%B0%E3%81%8C%E9%AB%98%E3%81%84%E3%81%BB%E3%81%A9**%E8%A8%88%E7%AE%97%E3%82%B3%E3%82%B9%E3%83%88%E3%81%8C%E5%A2%97%E5%A4%A7%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%8E%A8%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E5%88%86%E6%9E%90%0A%0A%20%20%20%20%23%23%23%20%E6%99%82%E9%96%93-%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E6%9E%90%0A%0A%20%20%20%20**%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0**%E3%81%AF%E4%BF%A1%E5%8F%B7%E3%81%AE**%E6%99%82%E9%96%93%E5%A4%89%E5%8C%96%E3%81%99%E3%82%8B%E5%91%A8%E6%B3%A2%E6%95%B0%E7%89%B9%E6%80%A7**%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%EF%BC%9A%0A%20%20%20%20-%20**X%E8%BB%B8**%3A%20%E6%99%82%E9%96%93%0A%20%20%20%20-%20**Y%E8%BB%B8**%3A%20%E5%91%A8%E6%B3%A2%E6%95%B0%0A%20%20%20%20-%20**%E8%89%B2**%3A%20%E6%8C%AF%E5%B9%85%EF%BC%88%E5%BC%B7%E5%BA%A6%EF%BC%89%0A%20%20%20%20-%20**%E6%99%82%E9%96%93%E5%88%86%E8%A7%A3%E8%83%BD%20vs%20%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E8%A7%A3%E8%83%BD**%E3%81%AE%E3%83%88%E3%83%AC%E3%83%BC%E3%83%89%E3%82%AA%E3%83%95%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20sampling_rate%2C%20time%2C%20wd)%3A%0A%20%20%20%20%23%20%E6%99%82%E9%96%93%E5%A4%89%E5%8C%96%E3%81%99%E3%82%8B%E4%BF%A1%E5%8F%B7%E3%82%92%E4%BD%9C%E6%88%90%0A%20%20%20%20time_varying_signal%20%3D%20np.zeros_like(time)%0A%0A%20%20%20%20%23%20%E5%89%8D%E5%8D%8A%3A%2050Hz%20%2B%20100Hz%0A%20%20%20%20mask1%20%3D%20time%20%3C%201.0%0A%20%20%20%20time_varying_signal%5Bmask1%5D%20%3D%201.0%20*%20np.sin(2%20*%20np.pi%20*%2050%20*%20time%5Bmask1%5D)%20%2B%200.8%20*%20np.sin(%0A%20%20%20%20%20%20%20%202%20*%20np.pi%20*%20100%20*%20time%5Bmask1%5D%0A%20%20%20%20)%0A%0A%20%20%20%20%23%20%E5%BE%8C%E5%8D%8A%3A%20150Hz%20%2B%20200Hz%0A%20%20%20%20mask2%20%3D%20time%20%3E%3D%201.0%0A%20%20%20%20time_varying_signal%5Bmask2%5D%20%3D%201.0%20*%20np.sin(2%20*%20np.pi%20*%20150%20*%20time%5Bmask2%5D)%20%2B%200.8%20*%20np.sin(%0A%20%20%20%20%20%20%20%202%20*%20np.pi%20*%20200%20*%20time%5Bmask2%5D%0A%20%20%20%20)%0A%0A%20%20%20%20%23%20ChannelFrame%E4%BD%9C%E6%88%90%0A%20%20%20%20tv_signal%20%3D%20wd.from_numpy(%0A%20%20%20%20%20%20%20%20data%3Dtime_varying_signal.reshape(1%2C%20-1)%2C%20sampling_rate%3Dsampling_rate%2C%20ch_labels%3D%5B%22Time-Varying%20Signal%22%5D%0A%20%20%20%20)%0A%0A%20%20%20%20print(f%22%E6%99%82%E9%96%93%E5%A4%89%E5%8C%96%E4%BF%A1%E5%8F%B7%E4%BD%9C%E6%88%90%3A%20%7Btv_signal.shape%7D%22)%0A%20%20%20%20return%20(tv_signal%2C)%0A%0A%0A%40app.cell%0Adef%20_(plt%2C%20tv_signal)%3A%0A%20%20%20%20%23%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E8%A8%88%E7%AE%97%0A%20%20%20%20spectrogram%20%3D%20tv_signal.stft(%0A%20%20%20%20%20%20%20%20n_fft%3D256%2C%20%20%23%20FFT%E3%82%B5%E3%82%A4%E3%82%BA%0A%20%20%20%20%20%20%20%20hop_length%3D128%2C%20%20%23%20%E3%83%9B%E3%83%83%E3%83%97%E3%82%B5%E3%82%A4%E3%82%BA%0A%20%20%20%20%20%20%20%20window%3D%22hann%22%2C%20%20%23%20%E7%AA%93%E9%96%A2%E6%95%B0%0A%20%20%20%20)%0A%0A%20%20%20%20print(%22%F0%9F%93%8A%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E5%88%86%E6%9E%90%3A%22)%0A%20%20%20%20spectrogram.info()%0A%0A%20%20%20%20%23%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E8%A1%A8%E7%A4%BA%0A%20%20%20%20spectrogram.plot(title%3D%22Spectrogram%20of%20Time-Varying%20Signal%22)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**%F0%9F%8C%88%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E8%AA%AD%E3%81%BF%E6%96%B9**%0A%0A%20%20%20%20-%20**%E5%89%8D%E5%8D%8A%EF%BC%880-1%E7%A7%92%EF%BC%89**%3A%2050Hz%E3%81%A8100Hz%E3%81%AE%E6%88%90%E5%88%86%0A%20%20%20%20-%20**%E5%BE%8C%E5%8D%8A%EF%BC%881-2%E7%A7%92%EF%BC%89**%3A%20150Hz%E3%81%A8200Hz%E3%81%AE%E6%88%90%E5%88%86%0A%20%20%20%20-%20**%E8%89%B2%E3%81%8C%E6%98%8E%E3%82%8B%E3%81%84%E3%81%BB%E3%81%A9**%3A%20%E6%8C%AF%E5%B9%85%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%84%0A%20%20%20%20-%20**%E7%B8%A6%E7%B7%9A**%3A%20%E7%89%B9%E5%AE%9A%E3%81%AE%E5%91%A8%E6%B3%A2%E6%95%B0%E6%88%90%E5%88%86%0A%20%20%20%20-%20**%E6%A8%AA%E7%B7%9A**%3A%20%E6%99%82%E9%96%93%E7%9A%84%E3%81%AA%E5%A4%89%E5%8C%96%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%9A%80%20%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%0A%0A%20%20%20%20%23%23%23%20%E7%8F%BE%E5%AE%9F%E7%9A%84%E3%81%AA%E5%88%86%E6%9E%90%E4%BE%8B%0A%0A%20%20%20%20%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%AF%BE%E8%B1%A1%E3%81%AB%E3%81%97%E3%81%9F**%E4%BF%9D%E5%85%A8%E8%A8%BA%E6%96%AD%E3%83%95%E3%83%AD%E3%83%BC**%E3%82%92%E4%BD%93%E9%A8%93%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82%0A%0A%20%20%20%20%E4%BB%A5%E4%B8%8B%E3%81%AE4%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%A7%E3%80%81%E6%B8%AC%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%AA%AD%E3%81%BF%E8%A7%A3%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%201.%20**%E8%A6%B3%E5%AF%9F%E3%81%99%E3%82%8B**%3A%20%E6%99%82%E9%96%93%E3%83%BB%E5%91%A8%E6%B3%A2%E6%95%B0%E3%81%AE%E4%B8%A1%E9%9D%A2%E3%81%8B%E3%82%89%E7%8F%BE%E7%8A%B6%E3%82%92%E6%8A%8A%E6%8F%A1%0A%0A%20%20%20%202.%20**%E6%95%B4%E3%81%88%E3%82%8B**%3A%20DC%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%82%84%E3%83%89%E3%83%AA%E3%83%95%E3%83%88%E3%80%81%E5%BA%83%E5%B8%AF%E5%9F%9F%E3%83%8E%E3%82%A4%E3%82%BA%E3%82%92%E9%99%A4%E5%8E%BB%0A%0A%20%20%20%203.%20**%E7%84%A6%E7%82%B9%E3%82%92%E5%BD%93%E3%81%A6%E3%82%8B**%3A%20%E6%95%85%E9%9A%9C%E5%BE%B4%E5%80%99%E3%81%8C%E7%8F%BE%E3%82%8C%E3%82%84%E3%81%99%E3%81%84%E5%91%A8%E6%B3%A2%E6%95%B0%E5%B8%AF%E3%82%92%E6%8A%BD%E5%87%BA%0A%0A%20%20%20%204.%20**%E7%89%B9%E5%BE%B4%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99**%3A%20%E6%8C%87%E6%A8%99%E5%8C%96%EF%BC%88RMS%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%83%BB%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%EF%BC%89%E3%81%A7%E5%A4%89%E5%8C%96%E3%82%92%E5%AE%9A%E9%87%8F%E5%8C%96%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt%2C%20wd)%3A%0A%20%20%20%20np.random.seed(123)%0A%20%20%20%20sensor_sr%20%3D%202000%0A%20%20%20%20sensor_duration%20%3D%205.0%0A%20%20%20%20sensor_time%20%3D%20np.linspace(0%2C%20sensor_duration%2C%20int(sensor_duration%20*%20sensor_sr))%0A%20%20%20%20drift_component%20%3D%201.2%20*%20np.sin(2%20*%20np.pi%20*%200.15%20*%20sensor_time)%20%2B%200.0025%20*%20sensor_time%0A%20%20%20%20vibration_signal%20%3D%20(%0A%20%20%20%20%20%20%20%20drift_component%0A%20%20%20%20%20%20%20%20%2B%201.0%20*%20np.sin(2%20*%20np.pi%20*%2055%20*%20sensor_time)%20*%20np.exp(-sensor_time%20%2F%202)%0A%20%20%20%20%20%20%20%20%2B%200.9%20*%20np.sin(2%20*%20np.pi%20*%20120%20*%20sensor_time)%0A%20%20%20%20%20%20%20%20%2B%200.5%20*%20np.sin(2%20*%20np.pi%20*%20280%20*%20sensor_time)%0A%20%20%20%20%20%20%20%20%2B%200.25%20*%20np.random.randn(len(sensor_time))%0A%20%20%20%20)%0A%20%20%20%20vibration_signal%20%3D%20vibration_signal%20%2B%205.0%0A%20%20%20%20vibration_data%20%3D%20wd.from_numpy(%0A%20%20%20%20%20%20%20%20data%3Dvibration_signal.reshape(1%2C%20-1)%2C%0A%20%20%20%20%20%20%20%20sampling_rate%3Dsensor_sr%2C%0A%20%20%20%20%20%20%20%20ch_labels%3D%5B%22Vibration%20Sensor%22%5D%2C%0A%20%20%20%20)%0A%20%20%20%20print(f%22%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E4%BD%9C%E6%88%90%3A%20%7Bvibration_data.shape%7D%2C%20%7Bvibration_data.sampling_rate%7D%20Hz%22)%0A%20%20%20%20(_fig%2C%20_ax)%20%3D%20plt.subplots(figsize%3D(12%2C%204))%0A%20%20%20%20_ax.plot(sensor_time%2C%20vibration_signal%2C%20color%3D%22%231f77b4%22%2C%20linewidth%3D0.8)%0A%20%20%20%20_ax.set_title(%22Raw%20Vibration%20Signal%20with%20Drift%20and%20DC%20Offset%22)%0A%20%20%20%20_ax.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20(vibration_data%2C)%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20plt%2C%20vibration_data)%3A%0A%20%20%20%20print(%22%F0%9F%9A%80%20%E6%8C%AF%E5%8B%95%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%20(%E4%BF%9D%E5%85%A8%E8%A8%BA%E6%96%AD%E3%83%95%E3%83%AD%E3%83%BC)%3A%22)%0A%20%20%20%20target_band%20%3D%20(80.0%2C%20180.0)%0A%20%20%20%20print(%221.%20%F0%9F%93%8A%20%E7%94%9F%E3%83%87%E3%83%BC%E3%82%BF%E8%A6%B3%E5%AF%9F%22)%0A%20%20%20%20print(f%22%20%20%20Duration%3A%20%7Bvibration_data.duration%3A.1f%7D%20s%2C%20RMS%3A%20%7Bvibration_data.rms%5B0%5D%3A.4f%7D%22)%0A%20%20%20%20print(f%22%20%20%20Snapshot%20mean%3A%20%7Bfloat(vibration_data.data.mean())%3A.4f%7D%22)%0A%20%20%20%20cleaned%20%3D%20vibration_data.remove_dc().high_pass_filter(cutoff%3D20)%0A%20%20%20%20denoised%20%3D%20cleaned.low_pass_filter(cutoff%3D250)%0A%20%20%20%20print(%22%5Cn2.%20%F0%9F%94%A7%20%E5%89%8D%E5%87%A6%E7%90%86%22)%0A%20%20%20%20print(%22%20%20%20-%20remove_dc%20%E2%86%92%20high_pass_filter(20%20Hz)%20%E3%81%A7%E3%83%89%E3%83%AA%E3%83%95%E3%83%88%E3%82%92%E9%99%A4%E5%8E%BB%22)%0A%20%20%20%20print(%22%20%20%20-%20low_pass_filter(250%20Hz)%20%E3%81%A7%E5%BA%83%E5%B8%AF%E5%9F%9F%E3%83%8E%E3%82%A4%E3%82%BA%E3%82%92%E6%8A%91%E5%88%B6%22)%0A%20%20%20%20focused%20%3D%20denoised.band_pass_filter(low_cutoff%3Dtarget_band%5B0%5D%2C%20high_cutoff%3Dtarget_band%5B1%5D)%0A%20%20%20%20print(%22%5Cn3.%20%F0%9F%8E%AF%20%E5%91%A8%E6%B3%A2%E6%95%B0%E5%B8%AF%E5%9F%9F%E3%81%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AB%E3%82%B9%22)%0A%20%20%20%20print(f%22%20%20%20%E7%9B%A3%E8%A6%96%E5%B8%AF%E5%9F%9F%3A%20%7Btarget_band%5B0%5D%3A.0f%7D%20-%20%7Btarget_band%5B1%5D%3A.0f%7D%20Hz%22)%0A%20%20%20%20spectral_raw%20%3D%20vibration_data.welch()%0A%20%20%20%20spectral_denoised%20%3D%20denoised.welch()%0A%20%20%20%20spectral_focused%20%3D%20focused.welch()%0A%20%20%20%20trend%20%3D%20focused.rms_trend(frame_length%3D1024%2C%20hop_length%3D256)%0A%20%20%20%20trend_values%20%3D%20np.asarray(trend.data)%5B0%5D%0A%20%20%20%20spectrogram_1%20%3D%20focused.stft(n_fft%3D512%2C%20hop_length%3D256)%0A%0A%20%20%20%20def%20summarize_peaks(label%3A%20str%2C%20spectrum)%20-%3E%20None%3A%0A%20%20%20%20%20%20%20%20freqs%20%3D%20np.asarray(spectrum.freqs)%0A%20%20%20%20%20%20%20%20magnitudes%20%3D%20np.abs(np.asarray(spectrum.data%5B0%5D))%0A%20%20%20%20%20%20%20%20top_indices%20%3D%20np.argsort(magnitudes)%5B-3%3A%5D%5B%3A%3A-1%5D%0A%20%20%20%20%20%20%20%20summary%20%3D%20%22%2C%20%22.join(f%22%7Bfreqs%5Bi%5D%3A.1f%7D%20Hz%22%20for%20i%20in%20top_indices)%0A%20%20%20%20%20%20%20%20print(f%22%20%20%20%7Blabel%7D%3A%20%7Bsummary%7D%22)%0A%0A%20%20%20%20print(%22%5Cn4.%20%F0%9F%93%88%20%E4%B8%BB%E8%A6%81%E6%88%90%E5%88%86%E3%81%AE%E7%A2%BA%E8%AA%8D%20(Magnitude%20%E4%B8%8A%E4%BD%8D3%E3%83%94%E3%83%BC%E3%82%AF)%22)%0A%20%20%20%20summarize_peaks(%22Raw%22%2C%20spectral_raw)%0A%20%20%20%20summarize_peaks(%22Denoised%22%2C%20spectral_denoised)%0A%20%20%20%20summarize_peaks(%22Band-focused%22%2C%20spectral_focused)%0A%20%20%20%20print(%22%5Cn%20%20%20RMS%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E7%B5%B1%E8%A8%88%20(band-focused)%22)%0A%20%20%20%20print(f%22%20%20%20mean%3D%7Btrend_values.mean()%3A.4f%7D%2C%20max%3D%7Btrend_values.max()%3A.4f%7D%2C%20std%3D%7Btrend_values.std()%3A.4f%7D%22)%0A%20%20%20%20time_np%20%3D%20np.asarray(vibration_data.time)%0A%20%20%20%20(_fig%2C%20_axes)%20%3D%20plt.subplots(3%2C%201%2C%20figsize%3D(12%2C%208)%2C%20sharex%3DTrue)%0A%20%20%20%20vibration_data.plot(ax%3D_axes%5B0%5D%2C%20label%3D%22Raw%22%2C%20color%3D%22%23636efa%22%2C%20linewidth%3D0.8)%0A%20%20%20%20cleaned.plot(ax%3D_axes%5B0%5D%2C%20label%3D%22remove_dc%20%2B%20high_pass%22%2C%20color%3D%22%23ef553b%22%2C%20linewidth%3D0.8)%0A%20%20%20%20_axes%5B0%5D.set_title(%22Step%201%20%E2%86%92%20Step%202%3A%20Drift%20removal%22)%0A%20%20%20%20_axes%5B0%5D.legend(loc%3D%22upper%20right%22)%0A%20%20%20%20_axes%5B0%5D.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20_axes%5B0%5D.set_xlim(time_np%5B0%5D%2C%201.0)%0A%20%20%20%20cleaned.plot(ax%3D_axes%5B1%5D%2C%20label%3D%22After%20high-pass%22%2C%20color%3D%22%23ef553b%22%2C%20linewidth%3D0.8)%0A%20%20%20%20denoised.plot(ax%3D_axes%5B1%5D%2C%20label%3D%22After%20low-pass%22%2C%20color%3D%22%2300cc96%22%2C%20linewidth%3D0.8)%0A%20%20%20%20_axes%5B1%5D.set_title(%22Step%202%20%E2%86%92%20Step%203%3A%20Broadband%20noise%20suppression%22)%0A%20%20%20%20_axes%5B1%5D.legend(loc%3D%22upper%20right%22)%0A%20%20%20%20_axes%5B1%5D.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20_axes%5B1%5D.set_xlim(time_np%5B0%5D%2C%201.0)%0A%20%20%20%20denoised.plot(ax%3D_axes%5B2%5D%2C%20label%3D%22Before%20band-pass%22%2C%20color%3D%22%2300cc96%22%2C%20linewidth%3D0.8)%0A%20%20%20%20focused.plot(ax%3D_axes%5B2%5D%2C%20label%3D%22Band-focused%22%2C%20color%3D%22%23ab63fa%22%2C%20linewidth%3D0.8)%0A%20%20%20%20_axes%5B2%5D.set_title(%22Step%203%20%E2%86%92%20Step%204%3A%20Target%20band%20extraction%22)%0A%20%20%20%20_axes%5B2%5D.set_xlabel(%22Time%20%5Bs%5D%22)%0A%20%20%20%20_axes%5B2%5D.legend(loc%3D%22upper%20right%22)%0A%20%20%20%20_axes%5B2%5D.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20_axes%5B2%5D.set_xlim(time_np%5B0%5D%2C%201.0)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20denoised%2C%0A%20%20%20%20%20%20%20%20focused%2C%0A%20%20%20%20%20%20%20%20spectral_denoised%2C%0A%20%20%20%20%20%20%20%20spectral_focused%2C%0A%20%20%20%20%20%20%20%20spectral_raw%2C%0A%20%20%20%20%20%20%20%20spectrogram_1%2C%0A%20%20%20%20%20%20%20%20target_band%2C%0A%20%20%20%20%20%20%20%20trend%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20denoised%2C%0A%20%20%20%20focused%2C%0A%20%20%20%20plt%2C%0A%20%20%20%20spectral_denoised%2C%0A%20%20%20%20spectral_focused%2C%0A%20%20%20%20spectral_raw%2C%0A%20%20%20%20spectrogram_1%2C%0A%20%20%20%20target_band%2C%0A%20%20%20%20trend%2C%0A%20%20%20%20vibration_data%2C%0A)%3A%0A%20%20%20%20print(%22%5Cn5.%20%F0%9F%96%BC%EF%B8%8F%20%E5%8F%AF%E8%A6%96%E5%8C%96%E3%81%A7%E3%81%AE%E6%AF%94%E8%BC%83%22)%0A%20%20%20%20(_fig%2C%20_axes)%20%3D%20plt.subplots(2%2C%203%2C%20figsize%3D(18%2C%208))%0A%20%20%20%20vibration_data.plot(ax%3D_axes%5B0%2C%200%5D%2C%20title%3D%22Raw%20(2%20kHz)%22%2C%20xlim%3D(0%2C%201.0))%0A%20%20%20%20denoised.plot(ax%3D_axes%5B0%2C%201%5D%2C%20title%3D%22Denoised%22%2C%20xlim%3D(0%2C%201.0))%0A%20%20%20%20focused.plot(ax%3D_axes%5B0%2C%202%5D%2C%20title%3D%22Band-focused%22%2C%20xlim%3D(0%2C%201.0))%0A%20%20%20%20spectral_raw.plot(ax%3D_axes%5B1%2C%200%5D%2C%20title%3D%22Raw%20Spectrum%22%2C%20xlim%3D(0%2C%20500)%2C%20ylim%3D(-120%2C%200))%0A%20%20%20%20spectral_denoised.plot(ax%3D_axes%5B1%2C%201%5D%2C%20title%3D%22Denoised%20Spectrum%22%2C%20xlim%3D(0%2C%20500)%2C%20ylim%3D(-120%2C%200))%0A%20%20%20%20spectral_focused.plot(ax%3D_axes%5B1%2C%202%5D%2C%20title%3D%22Band-focused%20Spectrum%22%2C%20xlim%3D(0%2C%20500)%2C%20ylim%3D(-120%2C%200))%0A%20%20%20%20_axes%5B1%2C%201%5D.axvspan(target_band%5B0%5D%2C%20target_band%5B1%5D%2C%20alpha%3D0.15%2C%20color%3D%22tab%3Agreen%22%2C%20label%3D%22Target%20band%22)%0A%20%20%20%20_axes%5B1%2C%202%5D.axvspan(target_band%5B0%5D%2C%20target_band%5B1%5D%2C%20alpha%3D0.15%2C%20color%3D%22tab%3Agreen%22)%0A%20%20%20%20_axes%5B1%2C%201%5D.legend(loc%3D%22upper%20right%22)%0A%20%20%20%20for%20_ax%20in%20_axes.flat%3A%0A%20%20%20%20%20%20%20%20_ax.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20spectrogram_raw%20%3D%20vibration_data.stft(n_fft%3D512%2C%20hop_length%3D256)%0A%20%20%20%20(_fig%2C%20(ax_trend%2C%20ax_spec_raw%2C%20ax_spec_focused))%20%3D%20plt.subplots(1%2C%203%2C%20figsize%3D(18%2C%204))%0A%20%20%20%20trend.plot(ax%3Dax_trend%2C%20title%3D%22RMS%20Trend%20(band-focused)%22%2C%20xlabel%3D%22Frame%22%2C%20ylabel%3D%22RMS%22)%0A%20%20%20%20spectrogram_raw.plot(ax%3Dax_spec_raw%2C%20title%3D%22Spectrogram%20(Raw)%22)%0A%20%20%20%20spectrogram_1.plot(ax%3Dax_spec_focused%2C%20title%3D%22Spectrogram%20(Band-focused)%22)%0A%20%20%20%20for%20_ax%20in%20(ax_trend%2C%20ax_spec_raw%2C%20ax_spec_focused)%3A%0A%20%20%20%20%20%20%20%20_ax.grid(True%2C%20alpha%3D0.3)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%22%5Cn%E2%9C%85%20%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%A8%E5%B8%AF%E5%9F%9F%E6%8A%BD%E5%87%BA%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E8%A6%B3%E6%B8%AC%E3%81%97%E3%81%9F%E3%81%84%E5%91%A8%E6%B3%A2%E6%95%B0%E6%88%90%E5%88%86%E3%81%8C%E6%98%8E%E7%9E%AD%E3%81%AB%E3%81%AA%E3%82%8A%E3%80%81%22%0A%20%20%20%20%20%20%20%20%22%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E6%8C%87%E6%A8%99%E3%83%BB%E6%99%82%E9%96%93%E5%91%A8%E6%B3%A2%E6%95%B0%E8%A7%A3%E6%9E%90%E3%81%A7%E7%8A%B6%E6%85%8B%E7%9B%A3%E8%A6%96%E3%81%AE%E6%BA%96%E5%82%99%E3%81%8C%E6%95%B4%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%F0%9F%94%8D%20%E7%B5%90%E6%9E%9C%E3%81%AE%E8%AA%AD%E3%81%BF%E8%A7%A3%E3%81%8D%0A%0A%20%20%20%20%20%20%20%20-%20%60remove_dc%60%20%E3%81%A8%20%60high_pass_filter(20%20Hz)%60%20%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E5%A4%A7%E3%81%8D%E3%81%AADC%E3%83%90%E3%82%A4%E3%82%A2%E3%82%B9%E3%81%A8%0A%20%20%20%20%20%20%20%20%20%20%20%20%E7%B7%A9%E3%82%84%E3%81%8B%E3%81%AA%E3%83%89%E3%83%AA%E3%83%95%E3%83%88%E3%81%8C%E9%99%A4%E5%8E%BB%E3%81%95%E3%82%8C%E3%80%81%E3%82%BC%E3%83%AD%E5%9F%BA%E6%BA%96%E3%81%A7%E6%AF%94%E8%BC%83%E3%81%97%E3%82%84%E3%81%99%E3%81%8F%E3%81%AA%E3%82%8B%E3%80%82%0A%0A%20%20%20%20-%20%60low_pass_filter(250%20Hz)%60%20%E3%81%AB%E3%82%88%E3%82%8A%E5%BA%83%E5%B8%AF%E5%9F%9F%E3%83%8E%E3%82%A4%E3%82%BA%E3%81%8C%E6%8A%91%E5%88%B6%E3%81%95%E3%82%8C%E3%80%81%E4%B8%BB%E6%88%90%E5%88%86%EF%BC%88120%20Hz%20%E4%BB%98%E8%BF%91%EF%BC%89%E3%81%8C%E6%B5%AE%E3%81%8B%E3%81%B3%E4%B8%8A%E3%81%8C%E3%82%8B%E3%80%82%0A%0A%20%20%20%20-%20%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88%E5%B8%AF%E5%9F%9F%20(80%E2%80%93180%20Hz)%20%E3%82%92%20%60band_pass_filter%60%20%E3%81%A7%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E6%95%85%E9%9A%9C%E5%85%86%E5%80%99%E3%81%AB%E9%96%A2%E9%80%A3%E3%81%99%E3%82%8B%E5%91%A8%E6%B3%A2%E6%95%B0%E3%81%A0%E3%81%91%E3%82%92%E7%B6%99%E7%B6%9A%E7%9B%A3%E8%A6%96%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%0A%0A%20%20%20%20-%20RMS%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%81%A7%E6%8C%AF%E5%B9%85%E5%A4%89%E5%8B%95%E3%82%92%E5%AE%9A%E9%87%8F%E5%8C%96%E3%81%97%E3%80%81%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%A755%20Hz%E6%88%90%E5%88%86%E3%81%8C%E6%B8%9B%E8%A1%B0%E3%81%97%E3%81%A6%E3%81%84%E3%81%8F%E6%A7%98%E5%AD%90%E3%82%92%E6%99%82%E9%96%93%E3%81%A8%E3%81%A8%E3%82%82%E3%81%AB%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%9B%A0%EF%B8%8F%20%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%0A%0A%20%20%20%20%23%23%23%20%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E5%95%8F%E9%A1%8C%0A%0A%20%20%20%20%23%23%23%23%201.%20%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B7%E3%83%B3%E3%82%B0%EF%BC%88%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E6%AD%AA%E3%81%BF%EF%BC%89%0A%20%20%20%20-%20**%E5%8E%9F%E5%9B%A0**%3A%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E5%91%A8%E6%B3%A2%E6%95%B0%E3%81%8C%E4%B8%8D%E5%8D%81%E5%88%86%0A%20%20%20%20-%20**%E5%AF%BE%E7%AD%96**%3A%20%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%A7%E4%BA%8B%E5%89%8D%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%0A%20%20%20%20-%20**%E7%9B%AE%E5%AE%89**%3A%20%E3%82%AB%E3%83%83%E3%83%88%E3%82%AA%E3%83%95%20%3C%20%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E5%91%A8%E6%B3%A2%E6%95%B0%E3%81%AE1%2F2%0A%0A%20%20%20%20%23%23%23%23%202.%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AE%E3%83%B3%E3%82%B0%0A%20%20%20%20-%20**%E5%8E%9F%E5%9B%A0**%3A%20%E9%AB%98%E6%AC%A1%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AE%E4%BD%8D%E7%9B%B8%E7%89%B9%E6%80%A7%0A%20%20%20%20-%20**%E5%AF%BE%E7%AD%96**%3A%20%E6%AC%A1%E6%95%B0%E3%82%92%E4%B8%8B%E3%81%92%E3%82%8B%E3%81%8B%E3%80%81%E7%B7%9A%E5%BD%A2%E4%BD%8D%E7%9B%B8%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%82%92%E4%BD%BF%E7%94%A8%0A%0A%20%20%20%20%23%23%23%23%203.%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E6%BC%8F%E3%82%8C%0A%20%20%20%20-%20**%E5%8E%9F%E5%9B%A0**%3A%20%E9%9D%9E%E6%95%B4%E6%95%B0%E5%91%A8%E6%9C%9F%E3%81%AE%E4%BF%A1%E5%8F%B7%0A%20%20%20%20-%20**%E5%AF%BE%E7%AD%96**%3A%20%E7%AA%93%E9%96%A2%E6%95%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%80%81FFT%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E8%AA%BF%E6%95%B4%0A%0A%20%20%20%20%23%23%23%23%204.%20%E3%83%8E%E3%82%A4%E3%82%BA%E3%81%AE%E5%BD%B1%E9%9F%BF%0A%20%20%20%20-%20**%E5%8E%9F%E5%9B%A0**%3A%20%E6%B8%AC%E5%AE%9A%E7%92%B0%E5%A2%83%E3%82%84%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%81%AE%E7%89%B9%E6%80%A7%0A%20%20%20%20-%20**%E5%AF%BE%E7%AD%96**%3A%20%E3%82%A2%E3%83%99%E3%83%AC%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%E3%80%81%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%80%81%E9%81%A9%E5%88%87%E3%81%AA%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E9%81%B8%E6%8A%9E%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%F0%9F%93%9A%20%E6%AC%A1%E3%81%AE%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%0A%0A%20%20%20%20%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%82%92%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%0A%0A%20%20%20%20**%E6%AC%A1%E3%81%AEmarimo%E3%82%A2%E3%83%97%E3%83%AA**%3A%20%5B04_advanced_processing.py%5D(04_advanced_processing.py)%0A%0A%20%20%20%20%E3%81%93%E3%81%93%E3%81%A7%E3%81%AF%E3%80%81**%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E5%88%86%E6%9E%90**%E3%82%84**%E3%82%A6%E3%82%A7%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E5%A4%89%E6%8F%9B**%E3%81%AA%E3%81%A9%E3%81%AE%E9%AB%98%E5%BA%A6%E3%81%AA%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E6%89%8B%E6%B3%95%E3%82%92%E7%B4%B9%E4%BB%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20%23%23%23%20%F0%9F%8E%AF%20%E3%81%93%E3%82%8C%E3%81%BE%E3%81%A7%E3%81%AB%E5%AD%A6%E3%82%93%E3%81%A0%E3%81%93%E3%81%A8%0A%20%20%20%20-%20%E2%9C%85%20FFT%E3%81%AB%E3%82%88%E3%82%8B%E5%91%A8%E6%B3%A2%E6%95%B0%E9%A0%98%E5%9F%9F%E5%A4%89%E6%8F%9B%0A%20%20%20%20-%20%E2%9C%85%20%E3%83%AD%E3%83%BC%E3%83%91%E3%82%B9%2F%E3%83%8F%E3%82%A4%E3%83%91%E3%82%B9%2F%E3%83%90%E3%83%B3%E3%83%89%E3%83%91%E3%82%B9%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%0A%20%20%20%20-%20%E2%9C%85%20%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%81%AE%E8%AA%BF%E6%95%B4%EF%BC%88%E6%AC%A1%E6%95%B0%E3%80%81%E9%81%AE%E6%96%AD%E5%91%A8%E6%B3%A2%E6%95%B0%EF%BC%89%0A%20%20%20%20-%20%E2%9C%85%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AB%E3%82%88%E3%82%8B%E6%99%82%E9%96%93-%E5%91%A8%E6%B3%A2%E6%95%B0%E5%88%86%E6%9E%90%0A%20%20%20%20-%20%E2%9C%85%20%E5%AE%8C%E5%85%A8%E3%81%AA%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E5%AE%9F%E8%B7%B5%0A%0A%20%20%20%20%23%23%23%20%F0%9F%9A%80%20%E6%AC%A1%E3%81%AE%E5%AD%A6%E7%BF%92%E7%9B%AE%E6%A8%99%0A%20%20%20%20-%20%E3%82%A6%E3%82%A7%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E5%A4%89%E6%8F%9B%0A%20%20%20%20-%20%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB%E5%88%86%E6%9E%90%E3%81%AE%E9%AB%98%E5%BA%A6%E3%81%AA%E6%89%8B%E6%B3%95%0A%20%20%20%20-%20%E4%BF%A1%E5%8F%B7%E3%81%AE%E7%B5%B1%E8%A8%88%E7%9A%84%E7%89%B9%E6%80%A7%E5%88%86%E6%9E%90%0A%20%20%20%20-%20%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%A8%E3%81%AE%E7%B5%B1%E5%90%88%0A%0A%20%20%20%20---%0A%0A%20%20%20%20**%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%82%92%E8%BA%AB%E3%81%AB%E3%81%A4%E3%81%91%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E9%AB%98%E5%BA%A6%E3%81%AA%E5%88%86%E6%9E%90%E3%81%AE%E4%B8%96%E7%95%8C%E3%81%B8%EF%BC%81**%20%F0%9F%94%AC%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
d31c5c24a38cbdf795f85f1182dba51a