私は、パワースペクトルから信号の帯域幅を測定しようとしています。私は、相対的な振幅値が与えられた場合、最小値と最大値を抽出できるようにしたい。私はパワースペクトルを計算するために "seewave"を使用していますが、密度プロットを作成してアブラインを提供することはできますが、アブラインがプロットと交差する場所をRに教えてもらう方法はわかりません。信号品質に応じて、相対的な振幅値を変更する必要がありますが、Rを使用して帯域幅を測定する簡単な方法を探したいと思います。事前に感謝します!Rの信号の帯域幅を測定する
power.spec <- spec(IBK.trill.1, flim=c(0,2))
pow.spec <- as.matrix(power.spec)
head(pow.spec)
# x y
# [1,] 0.000000000 0.007737077
# [2,] 0.007470703 0.029795630
# [3,] 0.014941406 0.021248476
# [4,] 0.022412109 0.015603801
# [5,] 0.029882813 0.014103307
# [6,] 0.037353516 0.014584454
freq <- pow.spec[1:2941,1]
head(freq)
# [1] 0.000000000 0.007470703 0.014941406 0.022412109 0.029882813 0.037353516
ampl <- pow.spec[,2]
head(ampl)
# [1] 0.007737077 0.029795630 0.021248476 0.015603801 0.014103307 0.014584454
plot(ampl ~ freq, type="l",xlim=c(0,2))
abline(h=0.45)
使用方法:約(ampl、freq、xout = 0.45) – chinsoon12