Random pulse generator
24 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I'm new in Simulink and i trying to make a pulse random generator. Pulses have amplitude (+10 & -10) and width (1 ms). The signal has to be non periodic, i mean, pulses has to appear by a random series. how can i do it? I apprecitate any help. The begining of my project depend of this signal.
Thanks. Néstor.
3 件のコメント
Azzi Abdelmalek
2012 年 10 月 29 日
Check the second image (modified)
set the Amplitude of the pulse generator to 2 and substract 1
採用された回答
Azzi Abdelmalek
2012 年 10 月 27 日
編集済み: Azzi Abdelmalek
2012 年 10 月 27 日
use this block
the function is
function y = fcn(u)
%#codegen
id=rand(1)
if id>0.5 & u==0
y=1
else
y=0
end
or easier
%
0 件のコメント
その他の回答 (2 件)
Fangjun Jiang
2011 年 10 月 19 日
Go to Simulink Sources library, there is the Random Number block and the Uniform Random Number block.
The output of the Uniform Random Number is between 0 and 1, so you'll need to use Relational Operator block to compare it with constant such as 0.1 and 0.9, and then use Switch block to output the +10 or -10 or 0 pulse value.
3 件のコメント
Fangjun Jiang
2011 年 10 月 21 日
You can compare the random number with a constant, e.g. 0.9 and then add a zero-order holder block.
Néstor Monedero
2011 年 11 月 28 日
2 件のコメント
sneha j
2021 年 5 月 3 日
hi, there is a bug in ur code.
In the case that u(i)<-0.9, y(i) sets to -1 in the first if-block.
But wen it executes the 2nd if-block - if gets overwritten by y(i)=0 as u(i)<0.9, so it executes the else part of the block.
U need to club the the first if block with the 2nd if-else block into one if block as follows:
if(u(i)<-0.9)
y(i)=-1;
else if(u(i)>0.9)
y(i)=1;
else
y(i)=0;
end
Hope it works well.
sneha j
2021 年 5 月 3 日
hi Nestor, sorry i jus realised that the else if block doesnt work, so here is a workaround:
if(u<-0.5)
y=-10;
else
y=0;
end
if(u>0.5)
y=10;
end
参考
カテゴリ
Help Center および File Exchange で Sources についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!