1d_demo.c

来自「TMS320VC55XX 图像 处理程序」· C语言 代码 · 共 69 行

C
69
字号
#include <stdio.h>
#include <stdlib.h>   
#include <math.h>
#include <imagelib.h>
#include<wavelet.h> 

#define LENGTH	128

short signal[LENGTH], temp_wksp[LENGTH], backup[LENGTH];
short	noise[LENGTH];
void main( )
{                 
	int		i, freq1, freq2, rate;
	
	// Initialization
	//==================================================
	freq1 = 2; 
	freq2 = 31; 
	rate  = 64;
	for( i = 0; i < (LENGTH>>1); i++ )
  		signal[i] = 255 * sin(2.0*3.1415*freq1*i/rate);
  	for( i = (LENGTH>>1); i < LENGTH; i++ )
  		signal[i] = 255 *sin(2.0*3.1415*freq1*(i+1)/rate);
  	for( i = 0; i < LENGTH; i++ )
  		backup[i] = signal[i];
  	for( i = 0; i < LENGTH; i++ )
  		noise[i] = 31 * sin(2.0*3.1415*freq2*i/rate);
	//--------------------------------------------------
	
	
	// Using Wavelet to find a discontinuity
	//==================================================
  	IMG_wave_decom_one_dim( signal, temp_wksp, db4, LENGTH, 1 ); 
	//--------------------------------------------------
  	
  	// Using Wavelet for Denosing
  	//==================================================
  	for( i = 0; i < LENGTH; i++ )
  		signal[i] = backup[i] + noise[i];
  	IMG_wave_decom_one_dim( signal, temp_wksp, db4, LENGTH, 1);
  	for( i = (LENGTH>>1); i < LENGTH; i++ )
  	{
  		if(signal[i] > 3 ) signal[i] = 3;
  		if(signal[i] < -3 ) signal[i] = -3;
  	}
  	IMG_wave_recon_one_dim( signal, temp_wksp, db4, LENGTH, 1 );
  	//--------------------------------------------------
 
  	// Perfect Reconstruction of Pyramid, Level 3
  	//==================================================
  	for( i = 0; i < LENGTH; i++ )
  		signal[i] = backup[i];
  	IMG_wave_decom_one_dim( signal, temp_wksp, db4, LENGTH, 1 );
  	IMG_wave_recon_one_dim( signal, temp_wksp, db4, LENGTH, 1 );
  	for( i = 0; i < LENGTH; i++ )
  		noise[i] = signal[i] - backup[i];
  	//--------------------------------------------------
  	
  	// Perfect Reconstruction of Wavelet-Packet, Level 3
  	//==================================================
  	for( i = 0; i < LENGTH; i++ )
  		signal[i] = backup[i];
  	IMG_wavep_decom_one_dim( signal, temp_wksp, db4, LENGTH, 3 );
  	IMG_wavep_recon_one_dim( signal, temp_wksp, db4, LENGTH, 3 );
  	for( i = 0; i < LENGTH; i++ )
  		noise[i] = signal[i] - backup[i];
  	//--------------------------------------------------
}         

⌨️ 快捷键说明

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