我在谈论sFFT: Sparse Fast Fourier Transform 几个月后在a paper, nearly optimal sparse fourier transform发表的文章。
我读了作者所做的另一项先前作品 Simple and Practical Algorithm for Sparse Fourier Transform,并且更深入地理解了这项工作。
对于具有k个非零傅里叶系数的信号,以及输入信号的长度n为2的幂,研究人员展示了两种新的DFT算法。第一种是精确k稀疏情况的O(k log n)时间算法(其中k很小)。第二种是一般情况下的O(k log n log(n / k)) - 时间算法。 相反,FFT在O(n log n)时间内计算DFT。
website正在详细介绍算法和代码实现。
现在我正在尝试测试代码。代码文档提供了Linux的指令,而不是Windows的指令。我在Ubuntu 11.04中尝试过,每次按照说明操作时都会出现分段错误。实际上我一般不熟悉MAKE和Linux。
BTW是否有人在Windows上使用Visual Studio尝试此代码?其他信息:
源代码文件夹包含GNUmakefile,其中包含以下内容:
CC=g++
RM=rm -f
#CXXFLAGS=-Wall -Wconversion -g
CXXFLAGS=-Wall -Wconversion -O2
LDFLAGS=-g
LDLIBS=-lfftw3 -lfftw3f -lm -lrt
DESTS=experiment generate_graphs kaiserbessel
SRCS:=$(filter-out $(DESTS:%=%.cc), $(wildcard *.cc))
OBJS:=$(subst .cc,.o,$(SRCS))
all: $(DESTS)
$(DESTS): $(OBJS)
clean:
$(RM) *.o $(DESTS)
我是否需要在此处进行一些更改才能成功运行?