短時間フーリエ変換後の出力データの構造を知りたい
現在、pythonで短時間フーリエ変換を実行したあとの出力結果を各窓で分けられたデータごとに欲しいのですが、全体を出力すればビン毎にデータが出すことができるが、配列のように定義してbin[1]などをしてデータを取り出したいのですが、調べてもさっぱりわかりません。
下に示した画像の一枚目のデータで窓関数事に分かれて出力されていると思います。その各色のデータをそれぞれ抽出することは可能なのでしょうか?
よろしくお願いいたします。
python
1# 2import numpy as np #added by author 3from scipy import signal 4import matplotlib.pyplot as plt 5 6#Generate a test signal, a 2 Vrms sine wave at 50Hz corrupted by 0.001 V**2/Hz of white noise sampled at 1024 Hz. 7#テスト信号、1024 Hzでサンプリングされた0.001 V ** 2 / Hzのホワイトノイズで破損した50 Hzの2 Vrmsの正弦波を生成します 8 9fs = 1024 10N = 10*fs 11nperseg = 512 12amp = 2 * np.sqrt(2) 13noise_power = 0.001 * fs / 2 14time = np.arange(N) / float(fs) 15carrier = amp * np.sin(2*np.pi*50*time) 16noise = np.random.normal(scale=np.sqrt(noise_power), 17 size=time.shape) 18x = carrier + noise 19#Compute and plot the STFT’s magnitude. 20#STFTの振幅を計算してプロットします 21 22f, t, Zxx = signal.stft(x, fs=fs, nperseg=nperseg) 23plt.figure() 24plt.pcolormesh(t, f, np.abs(Zxx), vmin=0, vmax=amp) 25plt.ylim([f[1], f[-1]]) 26plt.title('STFT Magnitude') 27plt.ylabel('Frequency [Hz]') 28plt.xlabel('Time [sec]') 29plt.yscale('log') 30plt.show()'''
あなたの回答
tips
プレビュー