我正在实施fft作为我作业的一部分.我的问题在于使用位反转来实现数据元素的混乱.我收到以下警告:
DeprecationWarning:使用非整数而不是整数将导致将来出错.
data [x],data [y] = data [y],data [x]
自动评分系统(由大学提供)返回以下内容:
错误:只有整数,slices(
:),省略号(...),numpy.newaxis(None)和整数或布尔数组才是有效索引.
我的代码是:
def shuffle_bit_reversed_order(data: np.ndarray) -> np.ndarray:
"""
Shuffle elements of data using bit reversal of list index.
Arguments:
data: data to be transformed (shape=(n,), dtype='float64')
Return:
data: shuffled data array
"""
# implement shuffling by reversing index bits
size = data.size
half = size/2;
for x in range(size):
xx = np.int(x)
n = np.int(half)
y = 0
while n > 0:
y += …Run Code Online (Sandbox Code Playgroud) 我正在Android上实现一个人脸跟踪器,作为一个文献研究,想要确定Android的FaceDetector的基础技术.
简单地说:我想了解android.media.FaceDetector分类器的工作原理.
一个简短的谷歌搜索没有提供任何信息,所以我想我会看看代码.
通过查看Java源代码,FaceDetector.java没有太多需要学习的内容:FaceDetector只是提供图像尺寸和面数的类,然后返回一个面数组.
Android源代码包含此类的JNI代码.我跟着函数调用,在那里,简化为基本要素,我学到了:
FaceFinder.c:75bbs_MemSeg_alloc返回一个btk_HFaceFinder对象(其中包含实际查找面的函数),基本上将其复制到initialize()()中初始化hsdkA->contextE.memTblE.espArrE的原始btk_HSDK对象的数组中FaceDetector_jni.cpp:145.btk_SDK_create()btk_HSDK,但我无处可寻找具体的实例,sdk->contextE.memTblE.espArrE[0]其中包含了魔法.我已经发现,是一个小线索:JNI代码引用FFTEm库,我无法找到的源代码.然而,从它的外观来看,FFT是快速傅立叶变换,它可能与预训练的神经网络一起使用.我能找到的唯一符合这一理论的文献是Ben-Yacoub等人的论文.
我甚至不知道自己是否走上了正确的道路,所以任何建议都无疑会有所帮助.
编辑:我为任何可以提供任何见解的人添加了+100赏金.
我正在寻找从声音信号中提取音高.
IRC上的某个人刚刚向我解释了如何采用双FFT实现这一目标.特别:
我正在尝试使用vDSP
我无法理解我之前没有遇到过这种技术.我做了很多狩猎和提问; 几周值得.更重要的是,我无法理解为什么我没有想到它.
我试图用vDSP库实现这一目标.它看起来好像有处理所有这些任务的功能.
但是,我想知道最终结果的准确性.
我之前使用的技术是将单个FFT的频率区域扫描为局部最大值.当它遇到一个时,它使用一种狡猾的技术(自上次FFT以来的相位变化)来更准确地将实际峰值放置在箱内.
我担心这种精确度会因为我在这里介绍的技术而丢失.
我想这种技术可以在第二次FFT之后使用,以准确地得到基波.但有点看起来信息在第2步中丢失了.
由于这是一个潜在的棘手过程,有经验的人可以只看一下我正在做的事情并检查它的理智吗?
此外,我听说有一种替代技术涉及在相邻的箱子上安装二次方.这是否具有可比性?如果是这样,我会赞成它,因为它不涉及记住bin阶段.
所以,问题:
有人能指出我对这种技术的一些研究或文献吗?
主要问题:它足够准确吗?可以提高准确度吗?一位专家刚刚告诉我,准确性是不充分的.这是行的结束吗?
皮
PS当我想创建标签时,我很生气,但不能.:| 我已向维护人员建议SO跟踪尝试的标签,但我确信我被忽略了.我们需要vDSP标签,加速框架,倒谱分析
我正在寻找C中的FFT实现.但是,我不是在寻找一个庞大的库(如FFTW),而是为了一个易于使用的单个C文件实现.不幸的是我找不到这样的东西.
有人可以推荐一个简单的实现?
我使用了来自Analyzer节点的FFT数据,使用getByteFrequencyDataWeb Audio API中的方法创建了一个频谱可视化工具,如下所示:

在这个例子中,我有256个数据库.这个数字到底对应的是什么?它是每个频率成分的分贝水平.如果是这样,我怎么知道每个bin的频率值对应于什么?
我想知道所以我可以尝试构建图形方程,因此想知道在哪些点指示滤波器带.理想情况下,我想表示20Hz到20kHz的频率,并相应地绘制它们之间的间隔.
谢谢你的帮助.
我在我的Android手机上录制了麦克风数据[1024]数据,通过实际数据的1D前向DFT(再设置1024位为0).我将数组保存到文本文件中,并重复了8次.
我收到了16384的结果.我在Excel中打开了文本文件并制作了一个图表以查看它的外观(x =数组索引,y =返回的数字大小).有大量的尖峰(正面和负面)大约在110,232左右,并且小尖峰继续以这种方式持续到1817年和1941年左右,尖峰再次变大,然后再次下降.
我的问题是,无论我在哪个主题上寻求帮助,它都会提到实数和虚数,我只有一维数组,我从Piotr Wendykier的类中使用的方法得到了回复:
DoubleFFT_1D.realForwardFull(audioDataArray); // from the library JTransforms.
Run Code Online (Sandbox Code Playgroud)
我的问题是:我需要对此数据做什么才能返回频率?录制的声音是我在吉他的底弦(第五音品)上演奏'A'(大约440Hz).
我有一个数据集,其中包含12个月内动物的每小时访问次数.我想使用快速傅立叶变换来检查周期性模式和周期性.在过去,我使用Statistica就是为了这个; 但是,我想用R来得到光谱密度与周期的关系图.在R中有一个简单的方法吗?如果可能的话,我想确定12和24小时的活动高峰.
我有一些wav文件.我想使用SciPy FFT绘制这些wav文件的频谱.我该怎么做呢?