How do I perform a channel with probability?

6 ビュー (過去 30 日間)
Dawon Yoo
Dawon Yoo 2020 年 3 月 28 日
回答済み: Peng Li 2020 年 3 月 28 日
I have made an binary sequnce called r.
When 0 is presented as input, I want the channel to generate an output of 0 with 0.975 and generate an output of 1 with 0.025 probability.
And 1 the other way around.
How can I code program this?

採用された回答

Peng Li
Peng Li 2020 年 3 月 28 日
% simulate a sequence r
r = [ones(100, 1); zeros(100, 1)];
ind = randperm(length(r));
r = r(ind);
% randsrc generate a vector of 0 or 1 with probability 0.975 and 0.025, you
% sum up two randsrc results based on r is 0 or 1, if r == 1, switch the
% parameter of randsrc so that it generates 1 with prob 0.975
res = (r == 0) .* randsrc(length(r), 1, [0 1; 0.975 0.025]) + ...
(r == 1) .* randsrc(length(r), 1, [1 0; 0.975 0.025]);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProbability Density Functions についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by