积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> DSP >> DSP代码示例
  相关分类: 应用论文 | TI DSP | 新产品 | 算法 | 下载 | DSP代码示例 | ADI DSP | freescale DSP |
产生均匀或高斯分布的伪随机数
 
作者:未知   来源:互联网    点击数:923   更新时间:2007-2-7
您可以添加到网摘 让更多人关注此文章:

    

//产生均匀或高斯分布的伪随机数
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "msp.h"
float randnu(long *iseed)
{
        float z;
        *iseed=2045*(*iseed)+1;
        *iseed=*iseed-(*iseed/1048576)*1048576;
        z=(float)((*iseed+1)/1048577.0);
        return(z);
 }

void meavar(float u[],int *n,float *pum,float *puv)
{
        int i,k;
        *pum=0.0;
        for(k=0;k<*n;k++)
            *pum=*pum+u[k];
        *pum=*pum/(*n);
        *puv=0.0;
        for(i=0;i<*n;i++)
            *puv=*puv+pow((u[i]-*pum),2);
        *puv=*puv/(*n-1.);
        return;
        }

void mrandom(float u[],int *n,long *piseed,int itype,float p)
{
        int k,ns,ksection,ks,j;
        float a,v,umean,uvari;
        float *pum,*puv;
        pum=&umean;
        puv=&uvari;
        if(itype >6 || itype <1)
           return;
        for(k=0;k<*n;k++)
            u[k]=randnu(piseed);
        if(itype==2 || itype==3)
            {
                meavar(u,n,pum,puv);
            /* to obtain a zero mean and P-power random sequence u[k]).*/
                    a=12.;
                    if(itype==2)
                       p=sqrt(a);
                    if(itype==3)
                       p=sqrt(p*a);
                    for(k=0;k<*n;k++)
                       u[k]=(u[k]-umean)*p;

            }
        if(itype==4||itype==5)
            {
            /* to generate the Gaussian randow sequence u[k],k=0,1,2,...,ns-1*/
              ksection=12;
            ns=*n/ksection;
            ks=0;
            if (itype==4) p=1;
            p=sqrt(p);
            for(k=0;k<ns;k++)
               {v=0.0;
                for(j=0;j<ksection;j++)
                    v+=p*(u[j+ks]-.5);
                     u[k]=v;
                     ks=ks+ksection;
                     }
            *n=ns;
            }
        meavar(u,n,pum,puv);
        printf("   The mean     of u[n]=%f\n",umean);
        printf("   The variance of u[n]=%f\n",uvari);
        return;
        }



相关文章
· 科技奥运与计算机技术的应用[425]
· Electromedical[2693]
· 患者监控[2742]
· 基于TMS320LF2407A DSP的心电监护系统研究[3187]
· 用S3C2410实现三导联远程心电监护系统[3096]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
严冬期如何发展半导体业 扩
2008年中国集成电路市场回顾与展望
分析师:亚洲芯片厂商库存远超预期
2008年基础电子业十大事件点评
Aptina并购智多微手机软件平台设
凌力尔特公司推出用于多核处理器的&n
安森美半导体任命麦满权为韩国及南亚区
Broadcom:半导体产业依然机会
飞思卡尔推i.MX51芯 
日立芯片守卫新年倒数计时晚会
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
低价专业PCB打样 双面板20...
深圳市天漠科技超低价供应atm...
深圳市天漠科技超低价供应ARM...
[推荐]2.5米精度,高灵敏度...
830实验箱+电脑没有并口...
[原创]平望科技助力自服终端国...
低价专业PCB打样 双面板20...
[原创]低价专业PCB打样 双...
Bootloader for ...
【有奖调查】08-09嵌入式开...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网