【发布时间】:2017-10-02 08:26:31
【问题描述】:
我有一个信号 y。信号的值从 0 到 1。信号实际上是从智能手机相机的红色通道(来自 RGB)中导出的,通过将空间 [0,1,... 255] 中的所有值映射到空间 [0 - 1] 除以 255。 我有另一个数组 x 用于存储相机帧 0,1,2,3,... 我想要做的是使用 Java 将信号 y 从时域转换为频域。我尝试使用here提供的类。
我的代码是
fftsize = powtwo(y.size()); //keep samples of a size of power of 2
Float[] rp = new Float[fftsize]; //rp is real part of signal (= y)
for(int i=0; i<fftsize; i++){
rp[i]=y.get(i);
}
Float[] ip = new Float[fftsize]; //ip is the imaginary part of signal = 0
for(int i=0; i<fftsize;i++){
ip[i]=0.0f;
}
fft(rp,ip);
在哪里
public int powtwo(int size){ //this function estimates the next power of 2 (below the given int value).
while(!(Math.sqrt((double)size)-(int)Math.sqrt((double)size) == 0)){
size--;
}
return size;
}
我不确定我是否做得对,我不知道将 FFT 转换为频域信号的后续步骤。
【问题讨论】:
标签: java signal-processing fft