• Chcpmal
    了解作者
  • Others
    开发工具
  • 25KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2019-01-05 02:49
    上传日期
此程序分析了cdma2000的链路性能 可供大家参考
189540.rar
  • AMpathtest.m
    126B
  • gen_DPCCH_code.m
    5KB
  • gen_uplink_WCDMA_frame.m
    3.4KB
  • GenRootRaisedCosine.cpp
    6.7KB
  • GenUplinkSIgnalTest.cpp
    6.7KB
  • GenUplinkSIgnal.cpp
    6.8KB
  • GenRxRootRaisedCosine.dll
    40KB
  • Delay5Callback.m
    269B
  • GenRxRootRaisedCosine.cpp
    6.6KB
  • UAmp4Callback.m
    334B
  • Amp6Callback.m
    198B
  • GenDialog.m
    2.1KB
  • DCDCH_SFDialog.mat
    1.7KB
  • Delay6Callback.m
    201B
  • EstPhaseOffset.m
    1.4KB
  • Amp5Callback.m
    266B
  • qAmp2Callback.m
    470B
  • Delay2Callback.m
    473B
  • Delay4Callback.m
    337B
  • Delay3Callback.m
    405B
  • GenWCDMAUplinkSignal.cpp
    4.9KB
  • GenRootRaisedCosine.m
    1.3KB
  • GAmp3Callback.m
    402B
  • DPDCH_SFDialog.m
    1.9KB
内容介绍
#include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <math.h> //#include "mex.h" #define CHIP_LENGTH 38400 void GenWCDMAUplinkSignal(double *CurrentInphaseChips,double *CurrentQuadratureChips, double *PastInphaseChips,double *PastQuadratureChips, double *FutureInphaseChips,double *FutureQuadratureChips, unsigned NumChips,double *PulseShape,unsigned PulseLength, unsigned SamplesPerChip,double *InphaseSignal, double *QuadratureSignal,unsigned NumSamples) /************************************************************************************************* /void GenWCDMAUplinkSignal(double *InphaseChips,double *QuadratureChips,unsigned NumChips, / double *PulseShape,unsigned PulseLength,unsigned SamplesPerChip, / double *InphaseSignal,double *QuadratureSignal,unsigned NumSamples) / / Copyright 2002 The Mobile and Portable Radio Research Group / /Takes the Inphase and Quadrature Data Stream along with the pulse shape and generates /the baseband representation of the transmitted signal / /Parameters / Input / InphaseChips double * Pointer to array of length NumChips that stores / the inphase Chip values / QuadratureChips double * Pointer to array of length NumChips that stores / the quadrature Chip values / NumChips unsigned Length of Chip arrays / PulseShape double * Pointer to array of length PulseLength that stores / the pulse shape / PulseLength unsigned Length of the PulseShape array / SamplesPerChip unsighed Number of samples per Chip (oversampling factor) / / Output / InPhaseSignal double * Pointer to array of length NumSamples that stores / the inphase signal values / QuadratureSignal double * Pointer to array of length NumSamples that stores / the quadrature signal values / NumSamples unsigned Length of signal arrays / /*************************************************************************************************/ { unsigned k0,k1; unsigned TempChipArrayLength; //number of chips used in the singal computation //Equals the length of the frame plus the length of the pulse -1 unsigned PulseLengthInChips; //Length of Tx Pulse in terms of chip duration unsigned Overlap; //Number of signal samples required from previous and next frame unsigned Start,Finish; //used to determine the start and finish of certain loops double *InphaseChipArray,*InphaseChipsTemp; //Pointer and temporary pointer that contains the //chips that are needed to compute the inphase signal //associated with the current frame double *QuadChipArray,*QuadratureChipsTemp; //Pointer and temporary pointer that contains the //chips that are needed to compute the quadrature signal //associated with the current frame double *PulseShapeTemp,*TempPulseTemp; //Temporary pointer for *PuseShape double *InphaseSignalTemp,*QuadratureSignalTemp; //Temporary pointers for inphase and quadrature signals double *TempInphaseTemp,*TempQuadratureTemp; //Temporary pointers for inphase and quadrature signals //Determine the lenght of the pulse in terms of chips PulseLengthInChips = (int) (PulseLength / SamplesPerChip); //Determine size of output array NumSamples = PulseLength + (SamplesPerChip*(NumChips-1)); //Determine the size of temporary chip array TempChipArrayLength = CHIP_LENGTH + PulseLengthInChips; //Allocate temporary chip array InphaseChipArray = (double *) mxCalloc(TempChipArrayLength,sizeof(double)); if (InphaseChipArray == NULL) mexErrMsgTxt("\nArray could not be allocated\n"); QuadChipArray = (double *) mxCalloc(TempChipArrayLength,sizeof(double)); if (QuadChipArray == NULL) mexErrMsgTxt("\nArray could not be allocated\n"); //Load temporary chip array InphaseChipsTemp = InphaseChipArray; QuadratureChipsTemp = QuadChipArray; //Load contribution from previous frame Overlap = PulseLengthInChips/2; TempInphaseTemp = PastInphaseChips + CHIP_LENGTH - Overlap; TempQuadratureTemp = PastQuadratureChips + CHIP_LENGTH - Overlap; for (k0=0; k0<Overlap; k0++) { *InphaseChipsTemp++ = *TempInphaseTemp++; *QuadratureChipsTemp++ = *TempQuadratureTemp++; } //Load contribution from current frame TempInphaseTemp = CurrentInphaseChips; TempQuadratureTemp = CurrentQuadratureChips; for (k0=0; k0<CHIP_LENGTH; k0++) { *InphaseChipsTemp++ = *TempInphaseTemp++; *QuadratureChipsTemp++ = *TempQuadratureTemp++; } //Load contribution from next frame TempInphaseTemp = FutureInphaseChips; TempQuadratureTemp = FutureQuadratureChips; for (k0=0; k0<Overlap; k0++) { *InphaseChipsTemp++ = *TempInphaseTemp++; *QuadratureChipsTemp++ = *TempQuadratureTemp++; } //TemporaryChipArrayLoaded //Perform filtering InphaseSignalTemp = InphaseSignal; QuadratureSignalTemp = QuadratureSignal; InphaseChipsTemp = InphaseChipArray; QuadratureChipsTemp = QuadChipArray; PulseShapeTemp = PulseShape + Overlap*SamplesPerChip; Start = (Overlap + 1) * SamplesPerChip; for (k0=0; k0<Overlap;k0++) { TempInphaseTemp = InphaseSignalTemp; TempQuadratureTemp = QuadratureSignalTemp; TempPulseTemp=PulseShapeTemp; Start -= SamplesPerChip; for (k1=Start; k1<PulseLength;k1++) { *TempInphaseTemp++ += *InphaseChipsTemp * *TempPulseTemp; *TempQuadratureTemp++ += *QuadratureChipsTemp * *TempPulseTemp++; } InphaseChipsTemp++; QuadratureChipsTemp++; PulseShapeTemp -= SamplesPerChip; } for (k0=0;k0<CHIP_LENGTH;k0++) { TempInphaseTemp = InphaseSignalTemp; TempQuadratureTemp = QuadratureSignalTemp; PulseShapeTemp = PulseShape; for (k1=0;k1<PulseLength;k1++) { *TempInphaseTemp++ += *InphaseChipsTemp * *PulseShapeTemp; *TempQuadratureTemp++ += *QuadratureChipsTemp * *PulseShapeTemp++; } InphaseSignalTemp += SamplesPerChip; QuadratureSignalTemp += SamplesPerChip; InphaseChipsTemp++; QuadratureChipsTemp++; } Finish=PulseLength; for (k0=0; k0<Overlap; k0++) { TempInphaseTemp = InphaseSignalTemp; TempQuadratureTemp = QuadratureSignalTemp; PulseShapeTemp = PulseShape; Finish -= SamplesPerChip; for (k1=0;k1<Finish;k1++) { *TempInphaseTemp++ += *InphaseChipsTemp * *PulseShapeTemp; *TempQuadratureTemp++ += *QuadratureChipsTemp * *PulseShapeTemp++; } InphaseSignalTemp += SamplesPerChip; QuadratureSignalTemp += SamplesPerChip; InphaseChipsTemp++; QuadratureChipsTemp++; } mxFree(InphaseChipArray); mxFree(QuadChipArray); }
评论
    相关推荐
    • qpopper2.53.tar.Z
      pop3 server
    • imap-4.7.tar.Z
      被广泛使用的email服务器 /IMAPD/POPD
    • 53308459Add_Dlt_TabCtrl.rar
      Tab分页的删除和添加,实现分页动态的管理。
    • ns-allinone-2.33.tar.gz
      ns2.33这是目前比较新的ns2版本,欢迎下载
    • NetVideoActiveX23.rar
      海康威视 网络监控插件 带有例子 和开发的dll文件,非常易用
    • UR054g_(R01).zip
      法国inventel的ur054g(r01)v1.1的无线网卡驱动。
    • eat.rar
      外卖叫餐系统,采用ACCESS数据库,有完整天的后台管理系统
    • KSTVTUNE.ZIP
      装摄像头驱动需要用到的文件。Microsoft DirectX 9 SDK
    • Skin++.rar
      知名的Skin++界面库,内含所有库文件和大量皮肤文件.该库使用方便,可以减少您美化程序的痛苦.本版是破解版,没有注册提示.但只供学习研究使用哦,不要用在商业用途.
    • DLL函数查看器V2.0.rar
      DLL函数查看器V2.0 可以看看dll里导出地函数