日々の記録

ほどよく書いてきます。

デジタル処理によるLPFその後

2024年06月09日 22時00分11秒 | プログラム

検証はFFTをするためにデータサイズを2のべき乗の数にしているが、実際の信号はそんなに都合よくデータ数がないので、最後はFIRフィルタとかIIRフィルタとかを作って連続信号に対して処理できればいいかな、なんて思い始めている。

 

入力信号は25Hzで振幅1の正弦波に60Hzで振幅0.5の正弦波を加算したものである。

SignalF = 25.0
SignalA = 1.0
NoiseF = 60.0
NoiseA = 0.5
time=np.arange(0.000,0.001*2**12,0.001)
SignalSUM = SignalA * np.sin(2*np.pi*SignalF*time) + NoiseA * np.sin(2*np.pi*NoiseF*time)
 

左上の入力信号をFFTして、左下のようなグラフを得る。
左下のグラフの60Hzの山をカットして右下の周波数特性を得る。
その信号を逆FFTして、波形に戻すとローパスされた信号が得られる。

 

ノイズの信号を大きくしていったらどうなるのかなと思って信号振幅を変えてみた。

 

信号:ノイズ=1:1

信号:ノイズ=1:10、なんとかなる。

 

信号:ノイズ=1:100 FFTで一律ゼロにする部分がうまく行かないので信号が歪んでくる。
40Hzでスパッと切っているのだが、40Hzの階段が40Hzのノイズを与えてしまうので、しょうがない。

 

 

import numpy as np
import matplotlib.pyplot as plt
#from scipy import signal
import csv
SignalF = 25.0
SignalA = 1.0
NoiseF = 60.0
NoiseA = 100.0
GAmp = SignalA+ NoiseA
time=np.arange(0.000,0.001*2**12,0.001)
SignalSUM = SignalA * np.sin(2*np.pi*SignalF*time) + NoiseA * np.sin(2*np.pi*NoiseF*time)
#plt.plot(time,SignalSUM, '-')

F=np.fft.fft(SignalSUM)
freq = np.linspace(0, 1000, len(time))

Fc= int(40 * len(time)/1000)
Fmod = F.copy()
Fmod[Fc:(len(time)-Fc)]=0+0j

#plt.plot(freq,F)
#plt.xlim(0,80)

G=np.fft.ifft(Fmod)

ax1 = plt.subplot(2,2,1)
ax1.plot(time, SignalSUM, "-")
ax2 = plt.subplot(2,2,2)
ax2.plot(time, G , "-")
ax1.set_xlim(0,0.5)
ax2.set_xlim(0,0.5)
ax1.set_ylim(-GAmp,GAmp)
ax2.set_ylim(-GAmp/10,GAmp/10)

ax3=plt.subplot(2,2,3)
ax3.plot(freq, F)
ax3.set_xlim(0,100)
#ax3.set_ylim(-100,100)
ax4=plt.subplot(2,2,4)
ax4.plot(freq, Fmod)
ax4.set_xlim(0,100)
#ax4.set_ylim(-10,10)


print(len(time))

plt.show()
コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ハムノイズ | トップ | Pythonで三角波 »

2 コメント

コメント日が  古い順  |   新しい順
Unknown (いち)
2024-06-11 23:58:24
母集団が純粋な擬似信号だときれいな波形になりますが、帯域を持った実際の信号の場合、逆FFTの波形って各周波数の信号の位相関係はどうなるのでしょう?
つまり入力信号からノイズを引いた波形が全く違った波形にならないでしょうか?
返信する
こんかいは (まこち)
2024-06-16 20:09:09
今回は信号が25Hzの正弦波で、ノイズが60Hzのハムノイズなのであまり位相については考えていませんでした。
矩形波とかをいれたらどうなるんでしょうね。
返信する

コメントを投稿

プログラム」カテゴリの最新記事