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

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

?? sdsprandsrc2.tlc

?? 這些都是通信系統仿真與分析一書的源代碼
?? TLC
?? 第 1 頁 / 共 2 頁
字號:


%% Function: ================================================
%% Abstract: Render the channel and frame loops and call to initialize the seed
%%
%function DSP_RenderInitializeSeedLoop(nchans,multipleChans,IS_COMPLEX,seedLen) Output
%%
    %if multipleChans
      int_T   i;
      %if seedLen == 1
        real_T seedVal = %<LibBlockParameter(InitSeed,"","",0)>;
      %else
        real_T *pSeeds = (real_T *)%<LibBlockParameterAddr(InitSeed,"","",0)>;
      %endif
            
        for (i=0;i<%<nchans>;i++) {
          %if seedLen > 1 
            real_T seedVal = pSeeds[i];
          %endif
    %endif
    %%
    %<DSP_Call_To_InitializeSeed(multipleChans,IS_COMPLEX,seedLen)>\
    %%
    %if multipleChans
      %if seedLen == 1
        seedVal += 2.0;
      %endif
        }
    %endif

%endfunction %% DSP_RenderInitializeSeedLoop


%% Function: ================================================
%% Abstract:  Call the function to initialize the seeds based on complexity
%%
%function DSP_Call_To_InitializeSeed(multipleChans,IS_COMPLEX,seedLen) Output
%%
  %if (IS_COMPLEX)
    %if multipleChans
      DSP_InitializeSeed(&urandSeed->re,seedVal);
      DSP_InitializeSeed(&urandSeed->im,seedVal+1);
      urandSeed++;
    %else
      DSP_InitializeSeed((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re,%<LibBlockParameter(InitSeed,"","",0)>);
      DSP_InitializeSeed((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im,%<LibBlockParameter(InitSeed,"","",0)>+1);           
    %endif
  %else 
    %if multipleChans
      DSP_InitializeSeed(urandSeed++,seedVal);
    %else
      DSP_InitializeSeed((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>,%<LibBlockParameter(InitSeed,"","",0)>);
    %endif
  %endif
%endfunction %% DSP_Call_To_InitializeSeed


%% Function: ================================================
%% Abstract:
%function DSP_CallRandomNumberGenerator(IS_COMPLEX,IS_UNIFORM) Output
%%    
    %if (IS_COMPLEX) 
        %if (IS_UNIFORM)
            /* Generate complex uniform random numbers */
            y->re     = DSP_UniformRand(&urandSeed->re) * (*pMax - *pMin) + *pMin; 
            (y++)->im = DSP_UniformRand(&urandSeed->im) * (*pMax - *pMin) + *pMin;
        %else
            /* Generate complex normal (gaussian) random numbers */
            %assign isMeanComplex = CAST("Boolean",(Mean.ComplexSignal == "yes"))
            %if (isMeanComplex)                
                y->re     = DSP_NormalRand(&urandSeed->re) * sqrt(*pVar/2) + pMean->re;
                (y++)->im = DSP_NormalRand(&urandSeed->im) * sqrt(*pVar/2) + pMean->im;
            %else
                y->re     = DSP_NormalRand(&urandSeed->re) * sqrt(*pVar/2) + *pMean;
                (y++)->im = DSP_NormalRand(&urandSeed->im) * sqrt(*pVar/2);
            %endif
        %endif          
    %else    
        %% Real Case
        %if (IS_UNIFORM)
            /* Generate real uniform random numbers */
            *y++ = DSP_UniformRand(urandSeed) * (*pMax - *pMin) + *pMin;
        %else
            /* Generate real normal (gaussian) random numbers */
            *y++ = DSP_NormalRand(urandSeed) * sqrt(*pVar) + *pMean;
        %endif
    %endif
%endfunction %% DSP_CallRandomNumberGenerator


%% Function: ================================================
%% Abstract:
%%      Determine if data is a non-scalar frame.
%%      Note that frameSize must be > 1 even when the input
%%      is continuous, e.g., could not be a frame.
%%
%function InputIsNonscalarFrame(frameSize, TID) void

%return (LibIsDiscrete(TID) && frameSize > 1)

%endfunction %% InputIsNonscalarFrame


%% Function: ================================================
%% Abstract:
%function DSP_ScalarUniformNumGen(IS_COMPLEX,OUTPORT_NUM) Output
%%    
    %assign minVal = LibBlockParameterValue(Min,0)
    %assign scale  = LibBlockParameterValue(Max,0) - minVal
    /* Uniform: all scalar inputs */
    %if (IS_COMPLEX)         
            /* Generate complex uniform random numbers */
            %%            
            %if scale == 1 &&  minVal == 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re); 
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im);
                %%
            %elseif scale == 1 &&  minVal != 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re)
                                                                     + %<minVal>;; 
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im)
                                                                     + %<minVal>;;
                %%
            %elseif LibBlockParameterValue(Min,0) == 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re)
                                                                     * %<scale>; 
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im)
                                                                    * %<scale>;
            %else
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re)
                                                                    * %<scale> + %<minVal>; 
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im) 
                                                                    * %<scale> + %<minVal>;
            %endif            
    %else    %% Real Case
            /* Generate real uniform random numbers */

            %if scale == 1 && minVal == 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>);
                %%
            %elseif scale == 1 &&  minVal != 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>) 
                                                                    + %<minVal>;
            %elseif LibBlockParameterValue(Min,0) == 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>) 
                                                                * %<scale>;
            %else
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_UniformRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>) 
                                                                * %<scale> + %<minVal>;
            %endif
    %endif

%endfunction %% DSP_ScalarUniformNumGen

%% Function: ================================================
%% Abstract:
%function DSP_ScalarGaussianNumGen(IS_COMPLEX,OUTPORT_NUM) Output
%%    
    %assign varVal  = LibBlockParameterValue(Variance,0)
    %%
    %if (IS_COMPLEX) 
        /* Generate complex normal (gaussian) random numbers */
        %%
        %assign isMeanComplex = CAST("Boolean",(Mean.ComplexSignal == "yes"))
        %assign meanVal_re    = CAST("Number",LibBlockParameterValue(Mean,"%<tRealPart>0"))
        %%
        %if varVal != 0 && varVal != 2
            {
                real_T sqrt_var = sqrt(%<varVal>/2);
        %endif
        %%        
        %if (isMeanComplex)    
            %%                
            %assign meanVal_im = CAST("Number",LibBlockParameterValue(Mean,"%<tImagPart>0"))
            %%
            %if varVal == 0    && meanVal_re != 0 && meanVal_im != 0 
                %%        
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = %<meanVal_re>;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = %<meanVal_im>;
                %%
            %elseif  varVal == 2 && meanVal_re == 0 && meanVal_im != 0
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re);
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im) + %<meanVal_im>;
                %%
            %elseif varVal == 2    && meanVal_re != 0 && meanVal_im != 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re) + %<meanVal_re>;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im) + %<meanVal_im>;
            %else
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re) * sqrt_var + %<meanVal_re>;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im) * sqrt_var + %<meanVal_im>;
            %endif    
            %%
        %else %% Output is Complex, Mean is not complex
            %%
            %if varVal == 0 && meanVal_re == 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = 0.0;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = 0.0;
                %%
            %elseif varVal == 0 && meanVal_re != 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = %<meanVal_re>;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = 0.0;
                %%
            %elseif  varVal == 2 && meanVal_re == 0 
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re);
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im);
                %%
            %elseif varVal == 2    && meanVal_re != 0
                %%
                /* start real mean variance = 2 */
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.re) + %<meanVal_re>;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im);
                /* end real mean var = 2 */
                %%
            %elseif meanVal_re == 0 && varVal != 0
                %%
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>) * sqrt_var;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>.im) * sqrt_var;    
                %%
            %else
                %%                                                                                                               
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.re = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","","%<tRealPart>0")>) * sqrt_var + %<meanVal_re>;
                %<LibBlockOutputSignal(OUTPORT_NUM,"","",0)>.im = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","","%<tImagPart>0")>) * sqrt_var;
            %endif
        %endif
        %%
        %if varVal != 0 && varVal != 2    
                }
        %endif

    %else    %% Real Case
        /* Generate real normal (gaussian) random numbers */
        %%
        %assign meanVal = LibBlockParameterValue(Mean,0)
        %%
        %if varVal != 0 && varVal != 1
        {
            real_T sqrt_var = sqrt(%<varVal>);
        %endif
        %%
            %if varVal == 1 && meanVal == 0
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>);
                %%    
            %elseif varVal == 0    
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = %<meanVal>;
                %%
            %elseif varVal == 1
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>) + %<meanVal>;
                %%
            %elseif meanVal == 0
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>) * sqrt_var;
                %%
            %else
                %<LibBlockOutputSignal(OUTPORT_NUM,"0","",0)> = DSP_NormalRand((uint32_T *)%<LibBlockDWorkAddr(RAND_SEED,"","",0)>) * sqrt_var + %<meanVal>;
            %endif    
            %%
        %if varVal != 0 && varVal != 1
        }
        %endif        
    %endif

%endfunction %% DSP_ScalarGaussianNumGen


%% Function: DetermineChannels ================================================
%% Abstract: 
%%      Determine how many channels this block has
%%
%function DetermineChannels() void

  %assign OUTPORT_NUM = 0
  %if (SFcnParamSettings.IsDiscrete == "Yes")
    %assign seedLen = LibGetNumberOfElements(InitSeed.Value)
    %if src_type == "Uniform"
      %assign maxVal = Max.Value
      %assign maxLen = LibGetNumberOfElements(maxVal)
      %assign minVal = Min.Value
      %assign minLen = LibGetNumberOfElements(minVal)
      %% Number of channels == the longest parameter length 
      %assign nchans = MAX(MAX(minLen,maxLen),seedLen)
    %else
      %assign meanVal = Mean.Value
      %assign meanLen = LibGetNumberOfElements(meanVal)
      %assign varVal  = Variance.Value
      %assign varLen  = LibGetNumberOfElements(varVal)
      %% Number of channels == the longest parameter length 
      %assign nchans  = MAX(MAX(meanLen,varLen),seedLen)
    %endif

    %% If we are back-propagating output dimensions/frames
    %% then we need to take into account that the output
    %% size may be larger than the sizes of any param vectors
    %% This is true if we have multiple channels in output
    %% and num output channels greater than any param vector length.
    %if INHERIT_ON
      %assign numDims = LibBlockOutputSignalNumDimensions(OUTPORT_NUM)
      %assign dims    = LibBlockOutputSignalDimensions(OUTPORT_NUM)
      %if (numDims > 1)
        %% If num cols > 1, then multiple channels.
        %if (dims[1] > 1)
          %assign nchans = MAX(nchans,dims[1])
        %endif
        %% We are not taking into account the following:
        %% 1) Column vector, sample-based (nchans = width)
        %% 2) 1-D vector (nchans = width)
      %endif
    %endif  
  %else
    %% Continuous output
    %assign nchans = LibBlockOutputSignalWidth(OUTPORT_NUM)
  %endif
    
  %return nchans
  
%endfunction


%% [EOF] sdsprandsrc.tlc

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美视频在线观看| 亚洲不卡一区二区三区| 亚洲中国最大av网站| 国产一区二区免费看| 91豆麻精品91久久久久久| 国产日本一区二区| 看片的网站亚洲| 午夜精品久久久久影视| 成人午夜激情影院| 久久这里都是精品| 美女视频一区在线观看| 欧美专区在线观看一区| 中文字幕在线一区| 国产99精品国产| 久久蜜桃一区二区| 国产精品影视网| 久久综合中文字幕| 久88久久88久久久| 91精品久久久久久蜜臀| 午夜在线电影亚洲一区| 欧美日韩国产综合视频在线观看| 欧美日韩午夜在线| 亚洲国产一区视频| 欧美日韩高清不卡| 午夜精品国产更新| 欧美日韩高清在线| 国产欧美一区二区三区在线老狼| 国产精品久久毛片a| 亚洲一区二区三区小说| 日韩高清在线观看| 91精品福利在线一区二区三区| 久久嫩草精品久久久精品| 美女mm1313爽爽久久久蜜臀| 777色狠狠一区二区三区| 久久精品视频免费| 国产大片一区二区| 成人欧美一区二区三区在线播放| 午夜精品一区二区三区电影天堂 | 欧美一级在线视频| 青青草原综合久久大伊人精品优势| 国内精品伊人久久久久av一坑 | 久久国内精品视频| 欧美精品一区二区三区高清aⅴ| 中文字幕欧美一| 日本韩国一区二区| 日日噜噜夜夜狠狠视频欧美人| 国模冰冰炮一区二区| 久久精品一区二区三区四区| 午夜不卡av在线| 日韩西西人体444www| 国产精品一线二线三线| 欧美福利视频导航| 国内精品免费**视频| 国产精品伦一区| 欧美在线|欧美| 久久国产剧场电影| 中文字幕一区二区日韩精品绯色| 国产一区欧美一区| 综合婷婷亚洲小说| 欧美久久久久中文字幕| 裸体健美xxxx欧美裸体表演| 久久精品视频一区二区三区| 色噜噜狠狠成人网p站| 日本午夜精品一区二区三区电影 | 成人三级伦理片| 精品国产乱码久久久久久影片| 天堂av在线一区| 国产日本欧洲亚洲| 欧美精品第1页| 日本亚洲视频在线| 欧美男女性生活在线直播观看| 国产精品夫妻自拍| 日韩午夜激情视频| 99精品视频在线播放观看| 丝袜诱惑亚洲看片| 亚洲视频网在线直播| 欧美成人精品福利| 在线一区二区三区四区五区| 亚洲影视资源网| 久久亚洲欧美国产精品乐播| 日本韩国视频一区二区| 国产成人免费视| 日本中文一区二区三区| 日韩一级欧美一级| 色婷婷亚洲婷婷| 国产精品综合网| 琪琪一区二区三区| 亚洲自拍偷拍综合| 成人欧美一区二区三区小说 | 一区二区三区四区高清精品免费观看 | 日韩午夜在线观看| 在线影视一区二区三区| 亚洲午夜国产一区99re久久| 久久久久亚洲蜜桃| 97se亚洲国产综合自在线不卡 | 国产一区二区导航在线播放| 亚洲一二三区在线观看| 国产精品成人一区二区艾草 | 天天综合天天做天天综合| 中文欧美字幕免费| 久久精品日产第一区二区三区高清版 | 亚洲日本电影在线| 日本一区二区三区电影| 久久综合久久久久88| 99久久精品免费看国产| 懂色av中文一区二区三区| 国产精品91xxx| 国产成人精品亚洲日本在线桃色 | 色综合天天天天做夜夜夜夜做| 亚洲一二三专区| 欧美精品一区二区三区蜜桃视频| 国产激情视频一区二区在线观看| 中文字幕色av一区二区三区| 国产精品欧美精品| 欧美日韩综合不卡| 欧美吞精做爰啪啪高潮| 欧美日韩国产片| 91.xcao| 日韩欧美国产精品| 久久五月婷婷丁香社区| 久久免费偷拍视频| 国产精品久久久久久久久免费丝袜| 欧美精品高清视频| 91网页版在线| 在线精品观看国产| 欧美精品123区| 精品日韩欧美在线| 久久精品水蜜桃av综合天堂| 国产精品美女久久久久久久久久久| 欧美一区二区精品在线| 日韩女同互慰一区二区| 久久久久久一二三区| 亚洲天堂av一区| 亚洲第一福利视频在线| 久久国产欧美日韩精品| 成人黄色小视频在线观看| 在线观看成人免费视频| 日韩亚洲欧美在线观看| 国产精品美女久久久久av爽李琼| 欧美大肚乱孕交hd孕妇| 欧美三级在线看| 日韩欧美成人激情| 亚洲视频一区二区免费在线观看| 久久久一区二区| 日韩视频一区在线观看| 久久影视一区二区| 亚洲精品日韩综合观看成人91| 久久精品亚洲麻豆av一区二区| 日韩一卡二卡三卡四卡| 国产精品国模大尺度视频| 一区二区三区国产豹纹内裤在线| 日韩一区欧美小说| 日韩成人一区二区三区在线观看| 午夜精品福利一区二区三区av | 亚洲精品国产一区二区精华液| 国产蜜臀av在线一区二区三区| 日韩欧美一级二级三级| 国产精品人人做人人爽人人添| 久久精品视频免费| 亚洲gay无套男同| 久久不见久久见免费视频1| 99久久精品国产毛片| 91在线观看美女| 日韩精品一区二区三区中文不卡| 日韩欧美成人一区| 一区二区三区波多野结衣在线观看| 国产精品久久久久久久久动漫 | 久久久久久久久久电影| 精品第一国产综合精品aⅴ| 亚洲人被黑人高潮完整版| 国产一区二区三区在线看麻豆| 国产精品一区二区x88av| 91福利国产精品| 中文字幕中文字幕一区二区| 久草热8精品视频在线观看| 国产精品一区二区久久不卡| 成人一级视频在线观看| 欧美大尺度电影在线| 五月婷婷久久丁香| 在线视频国内自拍亚洲视频| 欧美日韩卡一卡二| 亚洲天堂精品视频| 丁香桃色午夜亚洲一区二区三区| 成人天堂资源www在线| 欧美成人综合网站| 奇米亚洲午夜久久精品| 制服丝袜亚洲播放| 天堂成人国产精品一区| 欧美日韩国产电影| 亚洲国产成人高清精品| 在线精品视频一区二区三四| 亚洲另类在线制服丝袜| 色综合中文字幕国产 | 国产蜜臀av在线一区二区三区| 最新热久久免费视频| 日本欧美久久久久免费播放网| 国产精品综合在线视频| 国产欧美一区二区精品久导航| 一区二区三区四区高清精品免费观看| 日韩av电影免费观看高清完整版 |