我一直在浏览这篇精彩的文章:http://blogs.zynaptiq.com/bernsee/pitch-shifting-using-the-ft/
虽然太棒了,但它非常艰难而且沉重.这种材料真的让我感到舒服.
我从Stefan的代码模块中提取了数学,该代码模块计算给定bin的确切频率.但我不明白最后的计算.有人能告诉我最后的数学结构吗?
在深入研究代码之前,让我设置一下场景:
假设我们设置fftFrameSize = 1024,所以我们处理512 + 1个bin
例如,Bin [1]的理想频率适合帧中的单个波.在40KHz的采样率下,tOneFrame = 1024/40K秒= 1/40秒,因此Bin [1]理想地将采集40Hz信号.
设置osamp(overSample)= 4,我们以256为步长沿着输入信号前进.因此,第一个分析检查字节0到1023,然后是256到1279等.注意每个浮点数被处理4次.
...
void calcBins(
long fftFrameSize,
long osamp,
float sampleRate,
float * floats,
BIN * bins
)
{
/* initialize our static arrays */
static float gFFTworksp[2*MAX_FRAME_LENGTH];
static float gLastPhase[MAX_FRAME_LENGTH/2+1];
static long gInit = 0;
if (! gInit)
{
memset(gFFTworksp, 0, 2*MAX_FRAME_LENGTH*sizeof(float));
memset(gLastPhase, 0, (MAX_FRAME_LENGTH/2+1)*sizeof(float));
gInit = 1;
}
/* do windowing and re,im interleave */
for (long k = 0; …Run Code Online (Sandbox Code Playgroud) 我有一个由3个不同的库组成的项目.当我运行安装脚本时,它从repo获取所有库并在它们上运行mvn clean install.但是这个版本的库已经安装在repo中.如果我的本地存储库中的pom.xml中的版本相同,是否有一种方法可以跳过安装阶段.
我知道我可以使用本地repo并设置依赖项.但是我的老板希望我们的项目只能通过公共回购和没有我们的回购来建立.
我已经生成了三个相同的波,每个波都有一个相移.例如:
t = 1:10800; % generate time vector
fs = 1; % sampling frequency (seconds)
A = 2; % amplitude
P = 1000; % period (seconds), the time it takes for the signal to repeat itself
f1 = 1/P; % number of cycles per second (i.e. how often the signal repeats itself every second).
y1 = A*sin(2*pi*f1*t); % signal 1
phi = 10; % phase shift
y2 = A*sin(2*pi*f1*t + phi); % signal 2
phi = 15; % phase shift …Run Code Online (Sandbox Code Playgroud) 我想将maven生命周期中的某些阶段分解为子阶段.我想控制从一个子阶段到另一个子阶段的执行流程,有点像与ant依赖关系.
例如,我想使用NSIS插件,以便在我的项目被打包到war文件之后,将我的项目打包到包阶段的安装程序中.我想在包装阶段做所有这些.
那可能吗?
谢谢
我有一个带有文本文件的Maven Web应用程序
的src /主/ web应用/ textfilesdir
据我了解,在包阶段,这个textfilesdir目录将被复制到
目标/项目-1.0-快照
目录,然后压缩成一个
目标/项目-1.0-SNAPSHOT.war
问题
现在,我需要在target/project-1.0-SNAPSHOT/textfilesdir中对文本文件的内容进行字符串替换.然后必须在将textfilesdir复制到target/project-1.0-SNAPSHOT之后但在创建target/project-1.0-SNAPSHOT.war文件之前完成此操作.我相信这一切都是在包装阶段完成的.
插件(可能是maven-antrun-plugin)如何插入包阶段来执行此操作.
文本文件不包含要过滤的$ {property-name}等属性.字符串替换可能是唯一的选择.
选项
在创建WAR之前,将文本文件复制到target/project-1.0-SNAPSHOT目录之后进行修改.
打包后,从WAR中提取文本文件,修改它们,然后将它们添加回WAR.
我想在这里还有另一种选择我不在了.想什么?
有没有办法在maven构建中执行特定阶段.例如,如果我只想运行那些在预集成阶段执行的插件,Maven是否提供了这样做的方法?
e.g.
mvn pre-integration-phase
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置我的POM,这样当我这样做mvn exec:exec或者mvn exec:java它将首先编译源并且iff成功时,执行它.
我有以下内容,并试图移动<execution>部分,但无法让它工作:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
<executions>
<execution>
<phase>exec</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>my.main.class</mainClass>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
当我做任何一个mvn exec:exec ...或mvn exec:java它没有先编译.我已经尝试将该<execution>部分放入exec插件部分,但这也不起作用?
我需要生成一些源代码,因此我将插件目标附加到generate-sources生命周期阶段.
当我运行mvn包它工作正常,但是当我运行mvn install时,我注意到我的源生成插件执行了两次.
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>generate-sources-id</id>
<phase>generate-sources</phase>
<configuration>
<tasks>
<property name="build.compiler" value="extJavac" />
<ant target="generate-sources-from-ant" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
有什么想法来解决这个问题吗?
所以我有这个'我'的形象.我用F = fft2(I)得到2D傅里叶变换.为了重建它,我可以去ifft2(F).
问题是,我需要仅从a)幅度和b)F的相位分量重建这个图像.我如何分离傅立叶变换的这两个分量,然后从每个变换重建图像?
我尝试了abs()和angle()函数来获得幅度和相位,但第一阶段将无法正确重建.
救命?
我已经决定完全深入研究JSF 2.0,因为我的项目需要深入了解它.我正在阅读JSF Lifecyle Debug,这是一篇关于JSF生命周期的精彩文章.在阅读本文时,我有以下混淆.
如果是初始请求,Restore View Phase则会在空视图中创建并直接Render Response Phase发生.此时没有可以保存的州.render response phase那时究竟发生了什么?我在运行这个例子时感到很困惑.
该文章指出,检索输入值被设置在inputComponent.setSubmittedValue()在Apply Request Values相位.如果验证和转换通过,则设置值inputComponent.setValue(value)并inputComponent.setSubmittedValue(null)运行.在同一篇文章中指出,现在如果在下一个回发请求中,值被更改,则将其与提交的值进行比较,该值在每个帖子后面将始终为null,alue change listener将调用v .这意味着,如果,我们不更改值,因为submittedValue将为null,将始终调用valueChangeListener?我对此声明感到困惑.有人可以详细说明吗?
文章陈述了immediate属性的用法.如果immediate在输入组件上设置了属性,则理想情况下Process Validation Phase会跳过该属性,但会进行所有转换和验证Apply Request Values.我的观点是,仍然在转换和验证发生时,跳过第三阶段的优势是什么?
该术语检索值的含义是什么?
我想知道,如果让我们说视图上有五个字段.JSF是否列出了这些值的某些集合,Apply Request Values并Process Validations逐步对它们进行迭代?
在本文的最后一点说明,何时使用immediate属性.根据我的理解,如果在输入组件和命令组件中都设置了immediate属性,那么对于没有的任何属性,它将跳过从Apply Request Values to Invoke Application的阶段immediate.那么最后一个语句在登录表单中是什么意思是"忘记密码"按钮,其中包含必需的即时用户名字段和必需但非直接的密码字段.
我知道这些是非常基本的混淆,但这些主题的明确性肯定有助于提高JSF知识.