对于狭窄的带状处理,我希望在峰值频率仓处出现复杂的压力。为了找到峰值频率仓,我在一小段频率范围内使用绝对值最高的频率。
我提出了以下代码,大量借鉴
Use idxmax for indexing in pandas
这在我看来很笨重,而且难以概括。理想情况下,我希望能够将fBins变成一个数组,并立即返回许多频率。可以将maxAbsIndex放入列表中,但我看不到下一步。
import numpy as np
import pandas as pd
# Construct fake frequency data on multiple channels
np.random.seed(0)
numF = 1000
f = np.arange(numF) / (numF * 2)
y = np.random.randn(numF, 2) + 1j * np.random.randn(numF, 2)
# Put time series into a DataFrame, indexed by frequency
yFrame = pd.DataFrame(y, index = f)
fBins = 0.1
tol = 0.01
# Find the index of the maxium absolute value within a given frequency window
absMaxIndex = yFrame[(fBins - tol) : (fBins + tol)].abs().idxmax()
# Return the value at this index
value = [yFrame.ix[items[1], items[0]] for items in absMaxIndex.iteritems()]
print(value)
值应具有复杂值
[( - 2.0946030712061448-1.0585718976053677j),( - 2.7396771671895563 + 0.79204149842297422j)]
每个通道的yFrame绝对值最大,介于0.09和0.11 Hz之间。