wavelet.c

来自「《DSP系统入门与实践》」· C语言 代码 · 共 52 行

C
52
字号
#include <math.h>
#define TRUE 1
unsigned int in_buffer[900]; 
long int out_buffer[450];
static void processing(unsigned int *, long int *);

void main()
{
    
    	processing(in_buffer, out_buffer);
   
}

static void processing(unsigned int *x,long int *d)
{
    int l,r,n,mul;
	long int an=0,al=0,u=0,p=0;
	
	for(n=2;n<=450;n++)
	{
	mul=n*2;
	l=abs(x[mul-1]-x[mul-4]);
	r=abs(x[mul-1]-x[mul-2]);
	if(l<r)
	    u=x[mul-3];
	else if(l==r)
	    u=(x[mul-4]+x[mul-2])/2;
	else
	    u=x[mul-2];
	
	an=(x[mul-1]+u)/2;
	p=(al+an)/2;
	al = an;
	d[n] = x[mul-2]-p;  
	/*mul = n<<1;
	l = (x[mul-1]-x[mul-3-1])&0x7fffffff;
	r = (x[mul-1]-x[mul-1-1])&0x7fffffff;
		
	if(l<r)
		u = x[mul-3-1];
	else if(l==r)
		u = (x[mul-3-1]+x[mul-1-1])>>1;
	else
		u = x[mul-1-1];
    
	an = (x[mul-1]+u)>>1;
	p = (al+an)>>1;
	al = an;
	d[n] = x[mul-1-1]-p;*/
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?