我一直在浏览这篇精彩的文章: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) 我有一个项目即将到来,我需要通过特定的移动运营商发送和接收消息,该运营商仅提供SMPP接口.整个项目将是一个托管网站.我已经阅读了很多内容,但我还不太了解我方需要使用该协议的实际内容.
我的应用程序是否应该尝试保持与smpp的持续连接?我可以简单地连接,发送消息然后断开连接吗?
是否正在接收基于推或拉的消息?
谢谢您的帮助.
Class Test{
int value;
static void* thread_func(void* args){
value++;
}
void newthread(){
pthread_create(&thread_func,...);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个线程Class Test.
因此编译器强迫我创建thread_func
静态.但是我不能再访问非静态成员了" value
".它说:
invalid use of member 'Class::value' in static member function
Run Code Online (Sandbox Code Playgroud)
有办法解决吗?
这是我的代码:
<?php
//define the receiver of the email
$to = 'dannyfeher69@gmail.com';
//define the subject of the email
$subject = 'Test email';
//define the message to be sent.
$message = "Hello World!\n\nThis is my mail.";
//define the headers we want passed.
$header = "From: me@localhost.com";
//send the email
$mail_sent = @mail( $to, $subject, $message);
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>
Run Code Online (Sandbox Code Playgroud)
- 它返回邮件失败
请帮我
我正在尝试在java中创建一个哈希表,其中键是int [],但它不起作用.我做了一个小测试程序来显示我的问题:
public class test{
public static void main(String[] args){
int[] test0 = {1,1};
int[] test1 = {1,1};
Hashtable<int[], String> ht = new Hashtable<int[], String>();
String s0 = "foo";
ht.put(test0, s0);
System.out.println("the result from ht.get(test1)");
System.out.println(ht.get(test1));
System.out.println("the result from ht.get(test0)");
System.out.println(ht.get(test0));
}
}
Run Code Online (Sandbox Code Playgroud)
我的意图是两个ht.get calles应该返回相同的结果,因为两个数组相等,但它们不相同.以下是运行代码的结果:
the result from ht.get(test1)
null
the result from ht.get(test0)
foo
Run Code Online (Sandbox Code Playgroud)
我在这里遗漏了什么,或者只是不可能将int []用作hastable中的键?
我正在尝试阅读PNG文件的内容.
您可能知道,所有数据都以4字节方式写入png文件,包括文本和数字.因此,如果我们有数字35234,则以这种方式保存:[1000] [1001] [1010] [0010].
但有时数字较短,所以第一个字节为零,当我读取数组并将其从char*转换为整数时,我得到错误的数字.例如,[000]有时将数字误解为负数,将simetimes误解为零!
让我给你一个直观的例子:
char s_num[4] = {120, 80, 40, 1};
int t_num = 0;
t_num = int(s_num);
Run Code Online (Sandbox Code Playgroud)
我希望我能很好地解释我的问题!
如何将这些数组转换为单个整数值?
好吧好吧,让我更改我的代码来更好地解释它:
char s_num[4] = {0, 0, 0, 13};
int t_num;
t_num = *((int*) s_num);
cout << "t_num: " << t_num << endl;
Run Code Online (Sandbox Code Playgroud)
在这里我们必须得到13作为结果,好吗?但是再次使用这个新解决方案,答案是错误的,您可以在您的计算机上进行测试!我得到这个号码:218103808这绝对是错的!
我只是想在模拟器上显示来自sdcard的文件内容(如图像文件/视频文件/音乐文件那样).
以下是我的代码.
public class listfiles extends ListActivity {
private ArrayList<String> item = null;
private ArrayList<String> path = null;
private String root="/";
private TextView myPath;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sub);
myPath = (TextView)findViewById(R.id.path);
getDir(root);
}
private void getDir(String dirPath)
{
myPath.setText("Location: " + dirPath);
item = new ArrayList<String>();
path = new ArrayList<String>();
File f = new File(dirPath);
File[] files = f.listFiles();
if(!dirPath.equals(root))
{
item.add(root);
path.add(root);
item.add("../");
path.add(f.getParent());
}
for(int …
Run Code Online (Sandbox Code Playgroud) 我的表中有一个字段,数据类型为Oracle中的DATE.我想以DD/MM/YYYY格式将当前日期插入该字段.
我尝试了以下查询:
select to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy') from dual
Run Code Online (Sandbox Code Playgroud)
但它给出了
1/8/2011 12:00:00 AM.
Run Code Online (Sandbox Code Playgroud)
我希望它插入并显示为
08/01/2011 12:00:00 AM.
Run Code Online (Sandbox Code Playgroud)
请问有人帮我吗?
我XML
在我的应用程序中使用了一些自己的XML解析器(来自ClanLib
库).
问题是:解析器无法验证XML
,如果出现任何错误,它将失败.我需要一些验证器,它会说是否XML
有效并且(最好)显示错误.