www.pudn.com > AudioWave.rar > WaveProcess.cpp


// WaveProcess.cpp: implementation of the CWaveProcess class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "Audio.h" 
#include "WaveProcess.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
#include "DCT.h" 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CWaveProcess::CWaveProcess() 
{ 
 
} 
 
CWaveProcess::~CWaveProcess() 
{ 
 
} 
 
void CWaveProcess::WaveSignalFFT(float *pfSignal, DWORD dwLenSignal, int nPower, double *pdReFFT, double *pdImFFT) 
{ 
	int nSamples = 1<FFTSignal(nPower, pdReSignal, pdImSignal, pdReFFT+i*nSamples, pdImFFT+i*nSamples); 
	} 
	delete[] pdReSignal; 
	delete[] pdImSignal; 
	delete pFFT; 
} 
 
void CWaveProcess::WaveSignalFFT_I(float *pfSignal, DWORD dwLenSignal, int nPower, double *pdReFFT, double *pdImFFT) 
{ 
	int nSamples = 1<IFFTSignal(nPower, pdReSignal, pdImSignal, pdReFFT+i*nSamples, pdImFFT+i*nSamples); 
		for(j=0; jDCTIV(pfDCT+i*nSamples,nPower); 
	} 
	delete pDCT; 
} 
 
void CWaveProcess::WaveSignalIDCTIV(float *pfSignal, float *pfDCT, DWORD dwLenSignal, int nPower) 
{ 
	int nSamples = 1<IDCTIV(pfDCT+i*nSamples,nPower); 
		for(j=0; jnTh) 
		{ 
			pfSignal[i] = pfSignal[i]*fRate; 
		} 
	} 
	fMaxD = MaxData(pfSignal, dwLenSignal);	 
//	for(i=0; i<(int)dwLenSignal; i++) 
//	{ 
//		pfSignal[i] = pfSignal[i]*(fMaxS/fMaxD); 
//	}	 
 
	delete[] pfData; 
} 
 
void CWaveProcess::FFTLowFrequencyShift(float *pfSoundData, DWORD dwLenSound, int nShift, int nPower) 
{ 
	int nSamples = 1<FFTSignal(nPower, pdReSignal, pdImSignal, pdReFFT, pdImFFT); 
		for(j=0; jIFFTSignal(nPower, pdReSignal, pdImSignal, pdReFFT, pdImFFT); 
		for(j=0; jFFTSignal(nPower, pdReSignal, pdImSignal, pdReFFT, pdImFFT); 
		for(j=0; jIFFTSignal(nPower, pdReSignal, pdImSignal, pdReFFT, pdImFFT); 
		for(j=0; jfMax) 
		{ 
			fMax = (float)fabs(pfData[i]); 
		} 
	} 
	return fMax; 
} 
 
void CWaveProcess::DCTLowFrequencyShift(float *pfSoundData, DWORD dwLenSound, int nShift, int nPower) 
{ 
	int nSamples = 1<DCTIV(pfDCT, nPower); 
		for(j=0; jIDCTIV(pfDCT, nPower); 
		for(j=0; jDCTIV(pfDCT, nPower); 
		for(j=0; jIDCTIV(pfDCT, nPower); 
		for(j=0; jDCTIV(pfDCT, nPower); 
		for(j=0; jIDCTIV(pfDCT, nPower); 
		for(j=0; j