毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

数字滤波器原理及设计 第2页

更新时间:2009-10-26:  来源:毕业论文
数字滤波器原理及设计 第2页

#include "stdafx.h"
#include "DigitalFilter.h"


//////////////////////////////////////////////////////////////////////////
//    Cfloat_seq
//////////////////////////////////////////////////////////////////////////

Cfloat_seq::Cfloat_seq()
{
 m_fValues   = NULL;
 m_nValueNum = 0;
}

Cfloat_seq::~Cfloat_seq()
{
 ClearValues();
}

void Cfloat_seq::ClearValues( bool bFreeMem )
{
 if( bFreeMem )
 {
  m_nValueNum = 0;

  if( m_fValues )
   delete[] m_fValues;
  
  m_fValues = NULL;
 }
 else if( ( m_fValues ) && ( m_nValueNum > 0 ) )
  memset( m_fValues, 0, sizeof( float ) * m_nValueNum );
}

bool Cfloat_seq::SetValue( int idx, float Value, bool bErrMsg )
{
 if( ( !m_fValues ) || ( m_nValueNum < 1 ) || ( idx < 0 ) || ( idx >= m_nValueNum ) )
 {
  if( bErrMsg )
   MessageBox( NULL, "InValid Data", "SetValue", MB_OK | MB_ICONEXCLAMATION );

  return false;
 }

 m_fValues[ idx ] = Value;
 return true;
}

bool Cfloat_seq::GetValue( int idx, float &Value, bool bErrMsg )
{
 Value = 0;

 if( ( !m_fValues ) || ( m_nValueNum < 1 ) || ( idx < 0 ) || ( idx >= m_nValueNum ) )
 {
  if( bErrMsg )
   MessageBox( NULL, "InValid Data", "GetValue", MB_OK | MB_ICONEXCLAMATION );

  return false;
 }

 Value = m_fValues[ idx ];
 return true;
}

void Cfloat_seq::AddValue( const float *ValueArray, int Num )
{
 if( ( !ValueArray ) || ( Num < 1 ) )
  return;

 int newNum = Num;
 if( ( m_fValues ) && ( m_nValueNum > 0 ) )
  newNum += m_nValueNum;

 if( newNum < 1 )
  ClearValues( true );
 else
 {
  float *newBuff = new float[ newNum ];

  int idx = 0;

  if( ( m_fValues ) && ( m_nValueNum > 0 ) )
  {
   memcpy( newBuff, m_fValues, sizeof( float ) * m_nValueNum );
   idx += m_nValueNum;
  }

  memcpy( &newBuff[ idx ], ValueArray, sizeof( float ) * Num );
  m_nValueNum = newNum;
 }
}

const float* Cfloat_seq::GetValueArray()
{
 return m_fValues;
}

int Cfloat_seq::GetValueNum()
{
 return m_nValueNum;
}

Cfloat_seq Cfloat_seq::operator+( Cfloat_seq &Value )
{
 Cfloat_seq Result;

 Result.ClearValues( true );
 Result.AddValue( this->GetValueArray(), this->GetValueNum() );
 Result.AddValue( Value.GetValueArray(), Value.GetValueNum() );

 return Result;
}


//////////////////////////////////////////////////////////////////////////
//    CFIR
//////////////////////////////////////////////////////////////////////////

CFIR::CFIR()
{
 Cfloat_seq::Cfloat_seq();
}

CFIR::~CFIR()
{
 Cfloat_seq::~Cfloat_seq();
}

上一页  [1] [2] [3] [4] 下一页

数字滤波器原理及设计 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。