⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nsprand.h

📁 利用intel dsplib 库函数进行特定2FSK信号(需传导频)解调
💻 H
字号:
/*M*
//
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright (c) 1995 Intel Corporation. All Rights Reserved.
//
//      $Workfile: nsprand.h $
//      $Revision: 4 $
//      $Modtime: Dec 16 1996 4:35p $
//
//  Purpose:
*/
#ifdef __cplusplus
extern "C" {
#endif
#if !defined (_NSPRAND_H) || defined (_OWN_BLDPCS)
   #define _NSPRAND_H

/*-------------------------------------------------------------------------*/

   #if !defined (_OWN_BLDPCS)

   typedef struct NSPSRandUniState {
      float        low,muler;             /* Lower value and scale multiplier */
      unsigned int seed2,carry;           /* Variables of the algorithm       */
      unsigned int seed1[3];              /* Variables of the algorithm       */
      int          quickSeed;
   } NSPSRandUniState;

   typedef struct NSPDRandUniState {
      double       low,muler;
      unsigned int seed2,carry;
      unsigned int seed1[3];
      int          quickSeed;
   } NSPDRandUniState;

      #define XBUFLEN   32

/* A new state structure of the pseudo random numbers 
   generator has two seed values (m_seed) now. Generator 
   based on multiplication uses m_seed values. Generator 
   based on subtraction uses d_seed and carry.
*/

   typedef struct NSPWRandUniState {
      float        low,muler;
      int          center, pwr2;
      unsigned int m_seed[2];                       
      unsigned int d_seed[3];                       
      unsigned int carry;
      int          quickSeed;
      int          current;
      short        xbuf[XBUFLEN];
   } NSPWRandUniState;

   typedef struct NSPSRandUniState NSPCRandUniState;
   typedef struct NSPDRandUniState NSPZRandUniState;
   typedef struct NSPWRandUniState NSPVRandUniState;


   typedef struct NSPSRandGausState {
      float        mean,stDev;            /* Mean and standard deviation values */
      float        extraValue;            /* Value computed early               */
      int          useExtra;              /* Flag to use extra value            */
      unsigned int seed2,carry;           /* Variables of the algorithm         */
      unsigned int seed1[3];              /* Variables of the algorithm         */
      int          quickSeed;
   } NSPSRandGausState;

   typedef struct NSPDRandGausState {
      double       mean,stDev;
      double       extraValue;
      int          useExtra;
      unsigned int seed2,carry;
      unsigned int seed1[3];
      int          quickSeed;
   } NSPDRandGausState;

   typedef struct NSPWRandGausState {
      int          useExtra;
      unsigned int seed2,carry;
      unsigned int seed1[3];
      short        mean,stDev;
      short        extraValue;
      int          quickSeed;
   } NSPWRandGausState;

   typedef struct NSPSRandGausState NSPCRandGausState;
   typedef struct NSPDRandGausState NSPZRandGausState;
   typedef struct NSPWRandGausState NSPVRandGausState;

   #endif

/*-------------------------------------------------------------------------*/
/*
   Uniform distribution.
   Algorithm by G.Marsaglia and A.Zaman (Computers in Physics, vol.8,
   #1, 1994, 117) are used to build generator of uniformly distributed
   random numbers.
*/

   NSPAPI(void,nspsRandUniInit,(float seed, float  low, float  high,
                                NSPSRandUniState  *statePtr))
   NSPAPI(void,nspcRandUniInit,(float seed, float  low, float  high,
                                NSPCRandUniState  *statePtr))
   NSPAPI(void,nspdRandUniInit,(double seed,double low, double high,
                                NSPDRandUniState  *statePtr))
   NSPAPI(void,nspzRandUniInit,(double seed,double low, double high,
                                NSPZRandUniState  *statePtr))
   NSPAPI(void,nspwRandUniInit,(unsigned int seed,short low,short high,
                                NSPWRandUniState *statePtr))
   NSPAPI(void,nspvRandUniInit,(unsigned int seed,short low,short high,
                                NSPVRandUniState *statePtr))

   NSPAPI(float, nspsRandUni,(NSPSRandUniState *statePtr))
   NSPAPI(SCplx, nspcRandUni,(NSPCRandUniState *statePtr))
   NSPAPI(double,nspdRandUni,(NSPDRandUniState *statePtr))
   NSPAPI(DCplx, nspzRandUni,(NSPZRandUniState *statePtr))
   NSPAPI(short, nspwRandUni,(NSPWRandUniState *statePtr))
   NSPAPI(WCplx, nspvRandUni,(NSPVRandUniState *statePtr))

   NSPAPI(void,nspsbRandUni,(NSPSRandUniState  *statePtr,
                             float  *samps, int sampsLen))
   NSPAPI(void,nspcbRandUni,(NSPCRandUniState  *statePtr,
                             SCplx  *samps, int sampsLen))
   NSPAPI(void,nspdbRandUni,(NSPDRandUniState  *statePtr,
                             double *samps, int sampsLen))
   NSPAPI(void,nspzbRandUni,(NSPZRandUniState  *statePtr,
                             DCplx  *samps, int sampsLen))
   NSPAPI(void,nspwbRandUni,(NSPWRandUniState  *statePtr,
                             short  *samps, int sampsLen))
   NSPAPI(void,nspvbRandUni,(NSPVRandUniState  *statePtr,
                             WCplx  *samps, int sampsLen))

   NSPAPI(void, nspcRandUniOut,(NSPCRandUniState *statePtr, SCplx* val))
/*
   Normal distribution.
   Algorithm by G.Box and M.Muller and by G.Marsaglia (Reference:
   D.Knuth. The Art of Computer Programming. vol.2, 1969) are used
   to build generator of normally distributed random numbers.
*/


   NSPAPI(void,nspsRandGausInit,(float seed,float mean,float stDev,
                                 NSPSRandGausState *statePtr))
   NSPAPI(void,nspcRandGausInit,(float seed,float mean,float stDev,
                                 NSPCRandGausState *statePtr))
   NSPAPI(void,nspdRandGausInit,(double seed,double mean,double stDev,
                                 NSPDRandGausState *statePtr))
   NSPAPI(void,nspzRandGausInit,(double seed,double mean,double stDev,
                                 NSPZRandGausState *statePtr))
   NSPAPI(void,nspwRandGausInit,(short seed,short mean,short stDev,
                                 NSPWRandGausState *statePtr))
   NSPAPI(void,nspvRandGausInit,(short seed,short mean,short stDev,
                                 NSPVRandGausState *statePtr))

   NSPAPI(float, nspsRandGaus,(NSPSRandGausState *statePtr))
   NSPAPI(SCplx, nspcRandGaus,(NSPCRandGausState *statePtr))
   NSPAPI(double,nspdRandGaus,(NSPDRandGausState *statePtr))
   NSPAPI(DCplx, nspzRandGaus,(NSPZRandGausState *statePtr))
   NSPAPI(short, nspwRandGaus,(NSPWRandGausState *statePtr))
   NSPAPI(WCplx, nspvRandGaus,(NSPVRandGausState *statePtr))

   NSPAPI(void, nspcRandGausOut,(NSPCRandGausState *statePtr, SCplx* val))

   NSPAPI(void,nspsbRandGaus,(NSPSRandGausState *statePtr,
                              float *samps,  int sampsLen))
   NSPAPI(void,nspcbRandGaus,(NSPCRandGausState *statePtr,
                              SCplx *samps,  int sampsLen))
   NSPAPI(void,nspdbRandGaus,(NSPDRandGausState *statePtr,
                              double *samps, int sampsLen))
   NSPAPI(void,nspzbRandGaus,(NSPZRandGausState *statePtr,
                              DCplx *samps,  int sampsLen))
   NSPAPI(void,nspwbRandGaus,(NSPWRandGausState *statePtr,
                              short *samps,  int sampsLen))
   NSPAPI(void,nspvbRandGaus,(NSPVRandGausState *statePtr,
                              WCplx *samps,  int sampsLen))

#endif                                  /* _NSPRAND_H                      */
#ifdef __cplusplus
}
#endif

⌨️ 快捷键说明

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