我想在 Android Studio 中使用 Fast Fourier Transform Java 類(lèi)。我想創(chuàng)建一個(gè)正弦函數(shù),但有一個(gè)簡(jiǎn)單的問(wèn)題:我的 FFT 函數(shù)需要一個(gè) double [] 內(nèi)部并使用 for cicle 創(chuàng)建一個(gè)我無(wú)法在內(nèi)部使用的正弦函數(shù)。我的問(wèn)題是:如何創(chuàng)建一個(gè)正弦函數(shù)以在我的 FFT 函數(shù)中使用它?我是 Android Studio 的新手,可能答案很簡(jiǎn)單,但我現(xiàn)在不知道。請(qǐng)建議我怎么做。謝謝 這是我的 FFT.java 類(lèi):package com.google.android.gms.samples.vision.face.rPPG.Math;public class Fft { public static double FFT(Double[] in, int size, double samplingFrequency) { double temp = 0; double POMP = 0; double frequency; double[] output = new double[2*size]; for(int i=0;i<output.length;i++) output[i] = 0; for(int x=0;x<size;x++){ output[x]=in[x]; } DoubleFft1d fft = new DoubleFft1d(size); fft.realForward(output); for(int x=0;x<2*size;x++){ output[x]= Math.abs(output[x]); } for(int p=12; p<size; p++) {// 12 was chosen because it is a minimum frequency that we think people can get to determine heart rate. if(temp < output[p]) { temp = output[p]; POMP = p; } }// if (POMP < 12) {// POMP = 0;// } frequency = POMP*samplingFrequency/(2*size); return frequency; }}
1 回答

心有法竹
TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用以下方法生成離散(采樣)正弦信號(hào):
X[n] = A * sin(2*PI*fo*n*ts)
其中X[n]
是索引 n (0, 1, 2, 3...) 處的正弦值;A 振幅;fo
是正弦函數(shù)頻率,ts
是采樣周期。此外,對(duì)于正弦可能有用:
(fs = 1/ts)
fs
采樣頻率在哪里。
添加回答
舉報(bào)
0/150
提交
取消