matlab通信系统建模1.信源函数

本文介绍了如何使用Matlab中的rand系列函数,如randi、randn和randsrc,来生成信源随机函数,包括均匀分布、正态分布和概率分布指定的信源序列。此外,还展示了如何将信源转换为二进制比特流,以及wgn函数用于产生高斯白噪声的实例。

matlab对通信系统仿真很方便,大多数操作都有对应的函数命令,比较难的是知识点的掌握。

下图是数字通信系统模型:

下面介绍信源函数的产生。

信源的作用:将信息转换成电信号,数学上信源的输出是一个随时间变换的随机函数。

提到随机函数,就可以使用rand系列的函数

1、randi

randi([a,b],m,n):产生一个m x n的均匀分布随机矩阵,元素的值属于[a,b]且取整数。

2、randn

randn(m,n) > 0.5  函数产生m x n的正态分布的随机矩阵,元素值在[0,1]。通过判断,可以得到0/1的随机数

3、randsrc

可以指定每一个符号的出现概率

randsrc(m,n,[alphabet;prob]):mx n随机矩阵,alphabet:指定元素范围,元素为整数,prob每个元素出现概率。

 

4、wgn

产生高斯白噪声

wgn(m,n,p):m x n,p为噪声功率(dBW)

1W = 0dBW

实例:

clc;
clear;
symbols = 1:6;%信源符号
p = [.4 .2 .1 .15 .05 .1];%信源概率分布
x = randsrc(1,1200,[symbols;p]);%长为1200的信源序列
x_bit = reshape(de2bi(x),1,3*1200);%转换成二进制比特流

x = randsrc(1,1200,[symbols;p]);%产生1200个元素为1:6,且概率分布为p的信源序列

B = de2bi(A):将十进制数转换成二进制,值得注意的是,如果A是向量,那么B是矩阵,为了将B换为矩阵,利用reshape

reshape(A,[a,b]):将矩阵A变成a行b列

x_bit = reshape(de2bi(x),1,3*1200);%把信源序列转换成二进制比特流

结果:

信源序列:

二进制比特流 

x = randi([0 M-1],1000,1);

在 [0,M-1]之间产生1000个随机数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值