using System;
namespace WindowsFormsApplication1
{
public class FftAnalyse
{
//waveData:离散数据,长度是2的N次访
//windowFuctionType:窗函数(1:Hamming、2:Hanning、3:矩形、4:无)
//sampleFreq:采样频率
public double[][] FftRun(double[] waveData, byte windowFuctionType, int sampleFreq)
{
double[] dataReal = (double[])waveData.Clone();
//加窗
WindowFuctionCross(ref dataReal, windowFuctionType);
//重新排序
DataSort(ref dataReal);
//FFT变换
FFT_butterfly(ref dataReal);
// FFT结果转化
double[][] fftResultArray = new double[2][];
FFTResult_Change(dataReal, sampleFreq, ref fftResultArray);
return fftResultArray;
}
//加窗
private void WindowFuctionCross(ref double[] dataReal, byte windowFuctionType)
{
switch (windowFuctionType)
{
case 1:
//Hamming
WindowFuction_Hamming(ref dataReal);
break;
case 2:
//Hanning