質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

バンドパスフィルタを作りたいが、ifft後が不可解です。

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 42

hayate_

score 0

2500個の数字データ(波形)を
①fft
②不要な周波数を0とする(20~50Hzのみ残す)
③逆fft
の順に行おうと考えていますが、
逆フーリエ変換した際に一部の時間におけるデータしか現れません(3枚目の図の赤線)。

プログラミング初心者でおかしな質問になっているかもしれません。
解決方法を教えていただきたいです。
よろしくおねがいします。

画像の説明
3枚目の青線:元の2500個のデータ(元波形)、
1枚目:   元データをfftしたもの、
2枚目:   不要な周波数をカットしたもの、
3枚目の赤線:ifft後のデータ(得たい波形)、
です。

import numpy as np
import matplotlib.pyplot as plt
import math
import scipy.fftpack as sfft
from scipy import fftpack

lineNo1=[-0.35111009,-0.35812924,-0.35293082,......#2500個の数字がならびます]


# 時系列のサンプルデータ作成
n = 2500                        # データ数
dt = 0.002                       # サンプリング間隔             
t = np.arange(0, n*dt, dt)


# FFT 処理と周波数スケールの作成
yf = fftpack.fft(lineNo1)/(n/2)
freq = fftpack.fftfreq(n, dt)

# フィルタ処理
fs1 = 20   
fs2 = 50
yf[(freq < fs1)] = 0
yf[(freq > fs2)] = 0


# 逆 FFT 処理
y2 = np.real(fftpack.ifft(yf)*n)

# プロット
plt.figure(1)
plt.subplot(211)
plt.plot(freq[1:n//2], np.abs(yf[1:n//2]))
plt.ylabel("Amplitude")
plt.axis("tight")
plt.subplot(212)
plt.plot(freq[1:n//2], np.abs(yf2[1:n//2]))
plt.xlabel("Frequency [Hz]")
plt.ylabel("Amplitude")
plt.axis("tight")

plt.figure(2)
plt.plot(t, lineNo1, "b", label="original")
plt.plot(t, y2, "r", linewidth=2, label="filtered")
plt.axis("tight")
plt.legend(loc="upper right")
plt.xlabel("Time [s]")
plt.ylabel("Amplitude")


3枚目の画像の青線が元の2500個のデータ、3枚目の赤線がifft後のデータ、1枚目が元データをfftしたもの、2枚目が不要な周波数をカットしたもの、です。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る