伪随机信号的算法弄出来了。c怎么实现啊。

[复制链接]
3742|9
 楼主| kubuco 发表于 2009-2-27 08:59 | 显示全部楼层 |阅读模式
matlab仿真<br /><br />t&nbsp;=&nbsp;0:1/fs:(0.256-1/fs)<br />phase&nbsp;=&nbsp;2*pi*randn(size(1:51));<br />Y&nbsp;=&nbsp;0;<br />for&nbsp;i&nbsp;=&nbsp;1:51<br />&nbsp;&nbsp;&nbsp;&nbsp;Y&nbsp;=&nbsp;Y&nbsp;+&nbsp;sin(2*pi*(89+i)*detf*t&nbsp;+&nbsp;phase(i));<br />end<br /><br />(89+i)*detf&nbsp;为所要产生的频率351.5625hz到546.875hz,频率步进位3.90625hz<br />经过matlab仿真波形因素达到要求,频率范围也够了。<br /><br />现在的问题是,那个随机的相位phase(i)在dsp中c如何实现。困惑。。求解答。
mohanwei 发表于 2009-2-27 09:50 | 显示全部楼层

C库有rand()函数可以产生伪随机数序列

使用前要用srand()喂种,如果采用读取实时时间值来喂种,结果也很令人满意了
 楼主| kubuco 发表于 2009-2-27 10:52 | 显示全部楼层

读取实时时间值?

在c54中也可以读取实时时间值?<br /><br />#include&lttime.h&gt<br />有这个库么。。&nbsp;<br />
 楼主| kubuco 发表于 2009-2-27 11:05 | 显示全部楼层

在ccs help中找到rand() srand()了

Syntax&nbsp;for&nbsp;C:<br /><br />#include&nbsp;&ltstdlib.h&gt<br />int&nbsp;rand(void);<br />void&nbsp;srand(unsigned&nbsp;int&nbsp;seed);<br /><br />Defined&nbsp;in:<br /><br />rand.c&nbsp;in&nbsp;rts.src&nbsp;<br /><br />Description:<br /><br />Two&nbsp;functions&nbsp;work&nbsp;together&nbsp;to&nbsp;provide&nbsp;pseudorandom&nbsp;sequence&nbsp;generation:<br /><br />?The&nbsp;rand&nbsp;function&nbsp;returns&nbsp;pseudorandom&nbsp;integers&nbsp;in&nbsp;the&nbsp;range&nbsp;0&nbsp;-&nbsp;RAND_MAX.&nbsp;<br /><br />?The&nbsp;srand&nbsp;function&nbsp;sets&nbsp;the&nbsp;value&nbsp;of&nbsp;seed&nbsp;so&nbsp;that&nbsp;a&nbsp;subsequent&nbsp;call&nbsp;to&nbsp;the&nbsp;rand&nbsp;function&nbsp;produces&nbsp;a&nbsp;new&nbsp;sequence&nbsp;of&nbsp;pseudorandom&nbsp;numbers.&nbsp;The&nbsp;srand&nbsp;function&nbsp;does&nbsp;not&nbsp;return&nbsp;a&nbsp;value.<br /><br />If&nbsp;you&nbsp;call&nbsp;rand&nbsp;before&nbsp;calling&nbsp;srand,&nbsp;rand&nbsp;generates&nbsp;the&nbsp;same&nbsp;sequence&nbsp;it&nbsp;would&nbsp;produce&nbsp;if&nbsp;you&nbsp;first&nbsp;called&nbsp;srand&nbsp;with&nbsp;a&nbsp;seed&nbsp;value&nbsp;of&nbsp;1.&nbsp;If&nbsp;you&nbsp;call&nbsp;srand&nbsp;with&nbsp;the&nbsp;same&nbsp;seed&nbsp;value,&nbsp;rand&nbsp;generates&nbsp;the&nbsp;same&nbsp;sequence&nbsp;of&nbsp;numbers.
 楼主| kubuco 发表于 2009-2-27 11:21 | 显示全部楼层

喂种的问题。。。怎么喂。。。

喂种的问题。。。怎么喂。。。在c54中也可以读取实时时间值?<br />
mohanwei 发表于 2009-2-27 13:43 | 显示全部楼层

很多系统里都有一个实时时钟

而你开机的时间是随机的,所以,读到的时间也是相当“随机”的……<br />srand(time)的作用是给伪随机函数一个初始值,然后每次调用rand()都会得到一个伪随机数。说它是“伪随机数”,是因为种子一确定,后面的序列就是确定的。<br /><br />
 楼主| kubuco 发表于 2009-2-27 13:58 | 显示全部楼层

很多系统?

我只想知道,在ccs上c54行不。。别的暂时没精力管了。。
mohanwei 发表于 2009-2-28 14:02 | 显示全部楼层

实时时钟指的是DS12C887一类的东西,片上自带的RTC也可以

实时时钟、喂种、随机数……这些概念都和你的那个“ccs上c54”无关……
luomh98 发表于 2009-3-1 09:30 | 显示全部楼层

楼上好耐心

  
 楼主| kubuco 发表于 2009-3-2 10:27 | 显示全部楼层

莫非要上位机把实时时钟传过来

上位机是s3c2410...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

76

主题

869

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部