www.pudn.com > WCDMA.rar > ReceiverClass.h


// ReceiverClass.h: interface for the ReceiverClass class. 
// 
// Copyright 2002 The Mobile and Portable Radio Research Group 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_RECEIVERCLASS_H__1C2E598C_35B7_48F0_B1B3_FFB1C45112AA__INCLUDED_) 
#define AFX_RECEIVERCLASS_H__1C2E598C_35B7_48F0_B1B3_FFB1C45112AA__INCLUDED_ 
 
//#include "Complex.h"	// Added by ClassView 
//#include "stdafx.h" 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
 
#define CHIPS_PER_FRAME  38400 
#define FRAME_DURATION 10e-3 
 
 
class ReceiverClass   
{ 
public: 
	int * DataBits; 
	int * Receiver(ComplexNumber *IncomingSignal, unsigned SignalLength); 
	ReceiverClass(SimConfigClass SimConfig,TransmitterConfigClass *TxConfig); 
	ReceiverClass(); 
	virtual ~ReceiverClass(); 
 
private: 
	bool STTDflag; 
	int * STTDReceiver(ComplexNumber *IncomingSignal,unsigned SignalLength); 
	int * SimpleReceiver(ComplexNumber *IncomingSignal,unsigned SignalLength); 
	ComplexNumber * STTDSoftDecode(DPCH_FormatStructure Format,ComplexNumber *ChannelEstimates,ComplexNumber* DespreadSignal); 
	ComplexNumber * SimpleRakeFinger(DPCH_FormatStructure Format,ComplexNumber *IncomingSignal,unsigned SignalLength); 
	ComplexNumber * STTDRakeFinger(DPCH_FormatStructure Format,ComplexNumber *IncomingSignal,unsigned SignalLength); 
	double * Amplitudes; 
	unsigned * Delays; 
	unsigned MultiPathComponents; 
	int * DetectBits(DPCH_FormatStructure Format,ComplexNumber *DespreadSignal); 
	void ApplyChannelEstimates(DPCH_FormatStructure Format,ComplexNumber *DespreadSignal,ComplexNumber *ChannelEstimate); 
	ComplexNumber * ChannelEstimator(DPCH_FormatStructure Format,ComplexNumber *DespreadSignal); 
	ComplexNumber * STTDChannelEstimator(DPCH_FormatStructure Format,ComplexNumber *DespreadSignal); 
	ComplexNumber * DespreadFrame(DPCH_FormatStructure Format,ComplexNumber *DescrambledSignal); 
	unsigned PulseLength; 
	void Descramble(ComplexNumber *FilteredSignalPtr,ComplexNumber *ScrambleCodePtr); 
	ComplexNumber * Filter(ComplexNumber *SignalPtr,unsigned IncomingSignalLength,unsigned FilteredSignalSamples); 
	double *GeneratePulseShape(); 
	int *ChannelCode; 
	ComplexNumber *ScrambleCode; 
	DPCH_FormatStructure DPCH_Format; 
	unsigned SamplesPerChip; 
	int LowerBoundT,UpperBoundT; 
	double *PulseShape; 
	double Rolloff; 
	unsigned SamplesPerFrame; 
	unsigned TransmittedSignalLength; 
 
}; 
 
#endif // !defined(AFX_RECEIVERCLASS_H__1C2E598C_35B7_48F0_B1B3_FFB1C45112AA__INCLUDED_)