在matlab中怎样实现随机信号的产生

 我来答
shine戚七七
推荐于2016-05-06 · TA获得超过4.7万个赞
知道大有可为答主
回答量:2万
采纳率:75%
帮助的人:2616万
展开全部
Matlab 伪随机信号的产生(M序列)

这里主要介绍两种方法,一是使用m文件编辑,二是用simulink产生
一、用m文件编辑
Np=63;%循环周期
delta_T = 1;%时钟节拍
a=1;%幅度
%初始化M序列
M(1)=1;
M(2)=0;
M(3)=0;
M(4)=1;
M(5)=1;
M(6)=0;
M_XuLie(Np) = 0;
for n = 1 : Np
temp = xor(M(6), M(5));
if(temp == 0)
M_XuLie(n) = a;
else
M_XuLie(n) = -a;
end
M(6) = M(5);
M(5) = M(4);
M(4) = M(3);
M(3) = M(2);
M(2) = M(1);
M(1) = temp;
end
figure(4)
stairs(M_XuLie)
ylim([-2 2])
说明:
1.原理:由于是用代码书写,可能原理表达不是很直观,后面会以仿真形式给出原理
2.周期:若有N个移位寄存器,那么周期为2^N-1
3.周期的延拓:
r = 3; % 周期数
u=repmat(M_XuLie,1,r+1);%将M序列赋给输入,作为输入信号
二、使用simulink产生M序列
1 选6个移位寄存器,就是Z分之1那个 按顺序排列好,初始条件(initial conditions)全都设为1
2 先把这6个移位寄存器链接起来 第一个输出连第二个输入,以此类推到第六个接OUT,out这里再接一个scope以便观察信号波形或者接到工作空间(本例是接到工作空间中)。按照如下方法设置变量名和输出格式。
注意:尽量选矩阵形式输出,否则调用不方便。
3 选一个logical operator,并从设置中调成XOR,2输入端
4 继续连线
5 设置参数,主要是设置步长和总运行时间(点击菜单simulation-configuration parameters设置)
6 点击运行 scope中显示的便是m序列!或者在命令行中输入stairs(M_seque)
注:事实上,用这种方法在实际使用中存在一些问题,就是输出信号是bool型的,即是逻辑序列,无法作为传递函数的输入使用,如果是在m文件中可以通过double等方法进行转换,simulink应该是有方法转换的但还未做相关查询。
百度网友fedbc39
2010-12-03 · TA获得超过602个赞
知道小有建树答主
回答量:392
采纳率:100%
帮助的人:227万
展开全部
uniform dist:rand(m,n)
normal dist:randn(m,n)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
理斐
2010-12-03 · TA获得超过165个赞
知道答主
回答量:107
采纳率:0%
帮助的人:74.3万
展开全部
用rand函数就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式