亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sdsprandsrc2.tlc

?? The sample source of "Contemporary Communication Systems"
?? TLC
?? 第 1 頁 / 共 2 頁
字號:
%% $RCSfile: sdsprandsrc2.tlc,v $
%% $Revision: 1.9 $
%% $Date: 2001/04/25 18:24:31 $
%%
%% Copyright 1995-2001 The MathWorks, Inc.
%%
%% Abstract: Generate Uniform or Normal (Gaussian) Random Numbers 
%%

%implements "sdsprandsrc2" "C"

%% Function: BlockTypeSetup ================================================
%% Abstract:
%%
%function BlockTypeSetup(block, system) void

%% Render a DSP_InitializeSeed function once for use by all sdsprandsrc blocks.
%% Needed for both the Uniform and Gaussian cases.

%% First, cache the function prototype for DSP_InitializeSeed:
%%
%openfile InitSeedBuff
extern void DSP_InitializeSeed(uint32_T *urandSeed, real_T initSeed);
%closefile InitSeedBuff
%<DSPAddToFileHeader(InitSeedBuff)>

%% Next, cache the DSP_InitializeSeed function itself:
%%
%openfile InitSeedBuff
/* Function: DSP_InitializeSeed
 *  Bit-shift the given initial seed
 */
extern void DSP_InitializeSeed(uint32_T *urandSeed, real_T initSeed)
{
    const uint32_T maxseed = 2147483646;   /* 2^31-2 */
    const uint32_T seed0   = 1144108930;   /* Seed #6, starting from seed = 1 */
    const uint32_T bit16   = 32768;        /* 2^15   */

    *urandSeed = (uint32_T)initSeed;

    /* Interchange bits 1-15 and 17-31 */
    {
        int_T r = *urandSeed >> 16;
        int_T t = *urandSeed & bit16;
        *urandSeed = ((*urandSeed - (r << 16) - t) << 16) + t + r;
    }
    if (*urandSeed < 1) {
        *urandSeed = seed0;
    }
    if (*urandSeed > maxseed) {
        *urandSeed = maxseed;
    }
} /* end DSP_InitializeSeed */

%closefile InitSeedBuff

%<DSPAddToFile(InitSeedBuff)>

%endfunction  %% BlockTypeSetup


%% Function: BlockInstanceSetup ================================================
%% Abstract:
%%
%function BlockInstanceSetup(block, system) void

%assign src_type = block.SFcnParamSettings.SrcType

%if src_type == "Uniform"
    %<RenderUniformRandFcn()>
%else
    %<RenderUniformRandFcn()>
    %<RenderNormalRandFcn()>
%endif

%assign IS_COMPLEX = LibBlockOutputSignalIsComplex(0)
%assign INHERIT_ON = (block.SFcnParamSettings.InheritOn == "Yes")
%assign block = block + IS_COMPLEX + src_type + INHERIT_ON

%endfunction %% BlockInstanceSetup


%% Function: Start ================================================
%% Abstract:
%%      Initialize the real and/or imag seeds for all channels.
%%        Compute the first random seed
%%
%function Start(block, system) Output
    /* DSP Blockset Random Source (%<ParamSettings.FunctionName>) - %<Name> */
    /* Initialize the Random Seeds */
    %assign OUTPORT_NUM   = 0
    %assign numDims       = LibBlockOutputSignalNumDimensions(OUTPORT_NUM)
    %assign dims          = LibBlockOutputSignalDimensions(OUTPORT_NUM)
    %assign nchans        = DetermineChannels()
    %assign multipleChans = (nchans > 1)
    %if multipleChans
    {
    %endif
    %assign seedLen = LibGetNumberOfElements(InitSeed.Value)
    %%
    %% Determine datatype for the random seed:
    %%
    %assign urandDType = (IS_COMPLEX) ? "cuint32_T *" : "uint32_T *"
    %if multipleChans
        %<urandDType>urandSeed = (%<urandDType>)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>;
    %endif
        %<DSP_RenderInitializeSeedLoop(nchans,multipleChans,IS_COMPLEX,seedLen)>  
    %if multipleChans
    }
    %endif

%endfunction


%%%%%%%%%%%%%%%%%%%%% 
%% Function: Outputs =============================================================
%%
%function Outputs(block, system) Output   
    /* DSP Blockset Random Source (%<ParamSettings.FunctionName>) - %<Name> */
    /* Create the Random Numbers */
    %assign OUTPORT_NUM = 0
    %assign IS_UNIFORM  = CAST("Boolean",(src_type == "Uniform"))    
    %%
    %assign numDims       = LibBlockOutputSignalNumDimensions(OUTPORT_NUM)
    %assign dims          = LibBlockOutputSignalDimensions(OUTPORT_NUM)
    %assign nchans        = DetermineChannels()
    %if INHERIT_ON
      %assign frameSize   = dims[0]/nchans
    %else
      %assign frameSize   = (SFcnParamSettings.IsDiscrete=="Yes")?dims[0]:1
    %endif
    %%
    %assign multipleChans    = (nchans >1)
    %assign isScalar         = (!multipleChans && frameSize == 1)
    %assign isUniformScalar  = CAST("Boolean",0)
    %assign isGaussianScalar = CAST("Boolean",0)
    %%
    %% Determine datatype for the random seed:
    %assign urandDType = (IS_COMPLEX) ? "cuint32_T *" : "uint32_T *"
    %assign outDType   = (IS_COMPLEX) ? "creal_T *" : "real_T *"
    %%
    %if (IS_UNIFORM)
        %assign maxVal = Max.Value
        %assign maxLen = LibGetNumberOfElements(maxVal)
        %assign minVal = Min.Value
        %assign minLen = LibGetNumberOfElements(minVal)
        %assign isUniformScalar = CAST("Boolean",(minLen == 1 && maxLen == 1 && isScalar))
    %else
        %assign meanVal       = Mean.Value
        %assign meanLen       = LibGetNumberOfElements(meanVal)
        %assign varVal        = Variance.Value
        %assign varLen        = LibGetNumberOfElements(varVal)
        %assign isMeanComplex = CAST("Boolean",(Mean.ComplexSignal == "yes"))
        %assign meanDType     = (isMeanComplex) ? "creal_T *" : "real_T *"
        %assign isGaussianScalar = CAST("Boolean",(meanLen == 1 && varLen == 1 && isScalar))
    %endif
    %%
    %if isUniformScalar && nchans == 1
        %<DSP_ScalarUniformNumGen(IS_COMPLEX,OUTPORT_NUM)>\
    %elseif isGaussianScalar && nchans == 1
        %<DSP_ScalarGaussianNumGen(IS_COMPLEX,OUTPORT_NUM)>\
    %else
    {
        %<outDType>y           = (%<outDType>)%<LibBlockOutputSignalAddr(OUTPORT_NUM,"","",0)>;
        %<urandDType>urandSeed = (%<urandDType>)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>;
        %%
        %if (IS_UNIFORM)
            real_T *pMin = (real_T *)%<LibBlockParameterAddr(Min,"","",0)>;
            real_T *pMax = (real_T *)%<LibBlockParameterAddr(Max,"","",0)>;
        %else
            %<meanDType>pMean = (%<meanDType>)%<LibBlockParameterAddr(Mean,"","",0)>;
            real_T     *pVar  = (real_T *)%<LibBlockParameterAddr(Variance,"","",0)>;
        %endif        
        %%
        %if multipleChans
            int_T i;
            for(i=0;i<%<nchans>;i++) {    
        %endif    
            %if (frameSize > 1) %%%<InputIsNonscalarFrame(frameSize,TID)>
                int_T j;
                for(j=0;j<%<frameSize>;j++ ) {
            %endif
                %%
                %<DSP_CallRandomNumberGenerator(IS_COMPLEX,IS_UNIFORM)>\
                %%
            %if (frameSize > 1) %%%<InputIsNonscalarFrame(frameSize,TID)>
                }
            %endif
            %%
        %if multipleChans
                urandSeed++;
                %if (IS_UNIFORM)
                    %if (maxLen > 1) 
                        pMax++;
                    %endif
                    %if (minLen > 1)
                        pMin++;
                    %endif 
                %else
                    %if (varLen  > 1) 
                        pVar++;
                    %endif
                    %if (meanLen > 1) 
                        pMean++;
                    %endif
                %endif            
            }
        %endif
    }
    %endif

%endfunction


%% Function: RenderUniformRandFcn ==============================================
%% Abstract:
%%     Render the DSP_UniformRand function and prototype.
%%     Only render the content ONCE.  Any additional calls
%%     are simply ignored.
%%
%function RenderUniformRandFcn() void

%assign database_entry = "sdsprandsrc_uniformrand_fcn"
%assign model_cache    = "::CompiledModel." + database_entry

%% Check info so that we do not define this function more than once:
%if !EXISTS("%<model_cache>")

    %% Retain definition to prevent multiple identical defines:
    %%
    %assign %<database_entry> = 1
    %assign ::CompiledModel = ::CompiledModel + %<database_entry>
    %undef %<database_entry>  %%Remove from block scope

    %% First, cache the function prototype for DSP_UniformRand:
    %%
    %% Render a DSP_UniformRand function once for use by all sdsprandsrc blocks.

    %openfile DSP_RandBuff
    /* DSP Blockset Random Source block Uniform random number generator */
    extern real_T DSP_UniformRand(uint32_T *seed);
    %closefile DSP_RandBuff
    %<DSPAddToFileHeader(DSP_RandBuff)>

    %% Next, cache the DSP_UniformRand function itself:
    %%
    %openfile DSP_RandBuff
    /*
     * DSP Blockset Random Source block
     * Uniform random number generator
     * Generates random number in range (0,1)
     */
    extern real_T DSP_UniformRand(uint32_T *seed)     /* pointer to a running seed */
    {
        const uint32_T IA = 16807;                /* magic multiplier = 7^5    */
        const uint32_T IM = 2147483647;            /* modulus = 2^31-1            */  
        const uint32_T IQ = 127773;                /* IM div IA                */
        const uint32_T IR = 2836;                /* IM modulo IA                */
        const real_T   S  = 4.656612875245797e-10;     /* reciprocal of 2^31-1    */

        uint32_T hi   = *seed / IQ;
        uint32_T lo   = *seed % IQ;
        int32_T  test = IA * lo - IR * hi;    /* never overflows */

        *seed = ((test < 0) ? (unsigned int)(test + IM) : (unsigned int)test);

        return( (real_T) ((*seed) * S) );

    } /* end DSP_UniformRand */

    %closefile DSP_RandBuff
    %<DSPAddToFile(DSP_RandBuff)>

%endif
%endfunction %% RenderUniformRandFcn


%% Function: RenderNormalRandFcn ==============================================
%% Abstract:
%%     Render the DSP_NormalRand function and prototype.
%%     Only render the content ONCE.  Any additional calls
%%     are simply ignored.
%%
%function RenderNormalRandFcn() void

%assign database_entry = "sdsprandsrc_normrand_fcn"
%assign model_cache    = "::CompiledModel." + database_entry

%% Check info so that we do not define this function more than once:
%if !EXISTS("%<model_cache>")

    %% Retain definition to prevent multiple identical defines:
    %%
    %assign %<database_entry> = 1
    %assign ::CompiledModel = ::CompiledModel + %<database_entry>
    %undef %<database_entry>  %%Remove from block scope

    %% First, cache the function prototype for DSP_NormalRand:
    %%
    %openfile DSP_RandBuff
    /* DSP Blockset Random Source block Gaussian random number generator */
    extern real_T DSP_NormalRand(uint32_T *seed);
    %closefile DSP_RandBuff
    %<DSPAddToFileHeader(DSP_RandBuff)>

    %% Next, cache the DSP_NormalRand function itself:
    %%
    %openfile DSP_RandBuff
    /* Function: DSP_NormalRand 
     *  Normal (Gaussian) random number generator 
     */
    extern real_T DSP_NormalRand(unsigned int *seed)
    {
        real_T sr, si, t;
        do {
            sr = 2.0 * DSP_UniformRand(seed) - 1.0;
            si = 2.0 * DSP_UniformRand(seed) - 1.0;
            t  = sr * sr + si * si;
        } while (t > 1.0);

        return(sr * sqrt((-2.0 * log(t)) / t));
    } /* end DSP_NormalRand */

    %closefile DSP_RandBuff
    %<DSPAddToFile(DSP_RandBuff)>

%endif
%endfunction  %% RenderNormalRandFcn

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩欧美在线| 91福利小视频| 91免费在线看| 日韩欧美中文一区| 亚洲欧洲综合另类| 国产美女精品在线| 成人成人成人在线视频| 日韩一区二区高清| 亚洲成人av一区二区三区| 国产成人a级片| 欧美电影免费观看高清完整版在 | 日韩一级黄色片| 国产精品毛片无遮挡高清| 麻豆一区二区三| 99精品欧美一区二区蜜桃免费| 日本中文字幕一区二区有限公司| 亚洲午夜在线观看视频在线| 高清不卡一区二区| 欧美va亚洲va| 蜜臀av一区二区在线免费观看 | 国产一区二区三区不卡在线观看 | 亚洲欧美在线视频观看| 久久不见久久见中文字幕免费| 日韩精品午夜视频| 色欧美片视频在线观看| 国产亚洲精品中文字幕| 久久国产尿小便嘘嘘| 337p亚洲精品色噜噜噜| 图片区日韩欧美亚洲| 色狠狠综合天天综合综合| 国产精品传媒在线| 99国产精品久久久久久久久久| 91色在线porny| 国产精品视频一区二区三区不卡| 一区在线观看视频| 波多野结衣91| 亚洲同性同志一二三专区| 床上的激情91.| 国产精品久久久久久福利一牛影视 | 久久99久久精品欧美| 欧美一区二区高清| 欧美aⅴ一区二区三区视频| 欧美日韩一区二区三区在线看| 日韩视频不卡中文| 精品午夜久久福利影院 | 免费xxxx性欧美18vr| 在线不卡欧美精品一区二区三区| 91麻豆精品国产91久久久 | 亚洲成人av免费| 精品视频1区2区| 免费看日韩精品| 精品剧情在线观看| 国产一区免费电影| 国产精品乱码人人做人人爱| aaa亚洲精品| 亚洲国产一区二区在线播放| 日韩一区二区三区高清免费看看| 日本一区二区三区高清不卡| fc2成人免费人成在线观看播放| 欧美亚洲国产bt| 日韩va欧美va亚洲va久久| 久久人人97超碰com| 91网站黄www| 欧美bbbbb| 国产精品色噜噜| 欧美视频一区二区三区在线观看 | 精品日产卡一卡二卡麻豆| 免费观看日韩av| 欧美国产精品v| 欧洲精品中文字幕| 狠狠色综合日日| 亚洲人吸女人奶水| 日韩午夜在线播放| 99精品视频一区二区| 日韩和欧美一区二区三区| 久久精品人人做人人爽97| 日本乱人伦aⅴ精品| 男人的j进女人的j一区| 亚洲欧美日韩在线| 精品国产sm最大网站免费看| 色视频成人在线观看免| 激情五月婷婷综合| 亚洲va天堂va国产va久| 久久久精品免费免费| 欧美日韩在线播放三区四区| 丰满岳乱妇一区二区三区| 日韩电影免费在线| 亚洲精品久久久久久国产精华液| 99精品国产一区二区三区不卡| 国产亚洲综合性久久久影院| 欧美日韩亚洲国产综合| 不卡的电视剧免费网站有什么| 久久精子c满五个校花| 欧美日产在线观看| 99久久婷婷国产| 国产乱人伦精品一区二区在线观看| 51久久夜色精品国产麻豆| jlzzjlzz亚洲女人18| 国产麻豆欧美日韩一区| 日本伊人午夜精品| 一区二区高清在线| 亚洲欧美国产三级| 国产精品色一区二区三区| 精品久久久久香蕉网| 在线播放91灌醉迷j高跟美女| 日韩成人av影视| 亚洲国产aⅴ成人精品无吗| 综合av第一页| 国产精品国产三级国产aⅴ中文| 91亚洲精品乱码久久久久久蜜桃| 亚洲欧美国产高清| 国产精品美女久久久久高潮| 国产午夜精品美女毛片视频| 日韩午夜激情视频| 日韩一区二区三区四区五区六区| 国产酒店精品激情| 国产在线视频一区二区三区| 裸体在线国模精品偷拍| 极品少妇xxxx精品少妇| 五月激情六月综合| 日本怡春院一区二区| 免费高清在线视频一区·| 毛片av中文字幕一区二区| 精品一二线国产| 国产一区二区在线电影| 国产精品1区2区3区在线观看| 国产精品久久久久9999吃药| 国产欧美综合在线| 国产精品视频免费| 亚洲私人影院在线观看| 一区二区三区国产精华| 亚洲午夜免费福利视频| 三级一区在线视频先锋| 毛片av中文字幕一区二区| 精品综合久久久久久8888| 国内精品视频一区二区三区八戒 | 久久影音资源网| 国产欧美综合在线| 亚洲美女视频在线| 五月天欧美精品| 另类综合日韩欧美亚洲| 国产黄色精品网站| 91啦中文在线观看| 在线不卡的av| 久久久久久久久一| 一区二区三区在线视频免费 | 欧美三级三级三级爽爽爽| 欧美日韩国产片| 精品日韩一区二区三区 | 成人激情午夜影院| 欧美专区日韩专区| 久久色.com| 亚洲一线二线三线视频| 日韩综合小视频| 国产成人av一区二区三区在线 | 国精品**一区二区三区在线蜜桃| 亚洲精品视频在线看| 亚洲无人区一区| 国产精品一区二区不卡| 色婷婷综合五月| 久久综合国产精品| 亚洲自拍都市欧美小说| 国产九九视频一区二区三区| 欧美主播一区二区三区| 国产欧美精品一区二区三区四区 | 91年精品国产| 日韩精品一区二区三区中文不卡 | 成人性色生活片免费看爆迷你毛片| 日精品一区二区| 成人免费看黄yyy456| 6080yy午夜一二三区久久| 亚洲欧洲精品天堂一级| 麻豆国产欧美日韩综合精品二区| 日韩精品一二三四| 色婷婷久久久亚洲一区二区三区| 国产不卡在线播放| 欧美日韩一区二区在线观看视频| 欧美网站大全在线观看| 久久精品视频在线看| 日韩一区欧美二区| 91精品91久久久中77777| 国产亚洲综合在线| 激情偷乱视频一区二区三区| 欧美在线观看视频一区二区 | 欧美一级夜夜爽| 一区二区三区四区高清精品免费观看 | 国产一区二区在线视频| 欧美久久一区二区| 亚洲综合免费观看高清完整版在线 | 欧美成人激情免费网| 亚洲精品伦理在线| 不卡一区二区在线| 国产欧美一区二区精品性色超碰 | 国产乱人伦偷精品视频不卡| 91精品国产综合久久精品性色| 日韩一级高清毛片| 日本aⅴ精品一区二区三区| 欧美网站大全在线观看| 亚洲国产精品影院| 欧美在线短视频|