效果图
DrawView.h
#import <UIKit/UIKit.h>
@interface DrawView : UIView
@property short *drawBuffer;
@property int dataLen;
@property float *outRel;
@property float *outImg;
@property int bias;
@property int wSize;
- (void)genKernel;
@end
DrawView.m
#import "DrawView.h"
@implementation DrawView
#define KSIZE 20
#define BIAS 10000
static double fk[KSIZE] = {0};
static double _filterData[2048];
- (void)genKernel
{
double fc = .05;
for (int i = 0; i < KSIZE; i++)
{
if ((i - KSIZE/2) == 0)fk[i] = 2 * M_PI *fc;
if ((i - KSIZE/2) != 0 )fk[i] = sin(2 * M_PI * fc * (i - KSIZE/2))/(i - KSIZE/2);
fk[i] = fk[i] * (0.54 - 0.46 * cos(2 * M_PI * i / KSIZE ));
}
double sum = 0;
for (int m = 0; m < KSIZE; m++)
sum+=fk[m];
for (int n = 0; n < KSIZE; n++)
fk[n]/=sum;
}
- (void)improveSpectrum
{
memset(_filterData, 0x0, sizeof(double) * 1024);
short transData[(int)self.wSize];