C# 傅丽叶变换算法,高手请时!!!

xinyun80 2009-02-19 05:33:55
主要是用来绘制声音波形,快速傅丽叶就行,不需要太复杂
...全文
252 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaxintaiyang 2009-02-23
  • 打赏
  • 举报
回复
Mark,日后再看。
啊兵 2009-02-23
  • 打赏
  • 举报
回复
楼主我顶你上去
浪子-无悔 2009-02-23
  • 打赏
  • 举报
回复
支持。。。
homejiji 2009-02-20
  • 打赏
  • 举报
回复
关注,嘿嘿
dw_cbhb 2009-02-20
  • 打赏
  • 举报
回复
帮顶
Terry717 2009-02-19
  • 打赏
  • 举报
回复
帮顶
xinyun80 2009-02-19
  • 打赏
  • 举报
回复
Complex[]怎么理解?
FFT(Complex[] input,bool invert) 参数 invert起什么作用?
civanx 2009-02-19
  • 打赏
  • 举报
回复
可以搜出一堆来,呵呵

快速傅立叶变换FFT源码
MikeCheers 2009-02-19
  • 打赏
  • 举报
回复
标记一下
cppfaq 2009-02-19
  • 打赏
  • 举报
回复
private Complex[] FFT(Complex[] input,bool invert)
{
if (input.Length == 1)
{
return new Complex[] { input[0] };
}
int length = input.Length;
int half = length / 2;
Complex[] result = new Complex[length];
double fac = -2.0 * Math.PI / length;
if (invert)
{
fac = -fac;
}

Complex[] evens = new Complex[half];
for (int i = 0; i < half; i++)
{
evens[i] = input[2 * i];
}
Complex[] evenResult = FFT(evens,invert);

Complex[] odds = evens;
for (int i = 0; i < half; i++)
{
odds[i] = input[2 * i + 1];
}
Complex[] oddResult = FFT(odds,invert);

for (int k = 0; k < half; k++)
{
double fack = fac * k;
Complex oddPart = oddResult[k] * new Complex(Math.Cos(fack), Math.Sin(fack));
result[k] = evenResult[k] + oddPart;
result[k + half] = evenResult[k] - oddPart;
}

return result;
}
xhueducls 2009-02-19
  • 打赏
  • 举报
回复
没有现成的控件吗?傅里叶好像高数里的东东

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧