用matlab产生伪随机码?求程序!

用matlab产生伪随机码?求程序!,第1张

伪随机m序列生成.m文件:

function[mseq]=m_sequence(fbconnection)

n=length(fbconnection)

N=2^n-1

register=[0 1 0 0 1 0 0 0 0 0 0]% 定扰让义移位寄存器大李塌的初始状态

% register=[1 1 1 0 1 1 0 0 0 0 0]%分别定义移位寄存器的三种初始状态

% register=[1 1 0 1 0 1 0 0 0 0 1]%分别定义移位寄存器的三种初始状态

mseq(1)=register(n)

for i=2:N

newregister(1)=mod(sum(fbconnection.*register),2)

for j=2:n

newregister(j)=register(j-1)

end

register=newregister

mseq(i)=register(n)

end

伪随机gold序列.m文件:

function[goldseq]=gold_seq(fbconnection1,fbconnection2)

mseq1=m_sequence(fbconnection1)

mseq2=m_sequence(fbconnection2)

N=2^length(fbconnection1)-1

for shift_amount=0:N-1

shift_mseq2=[mseq2(shift_amount+1:N) mseq2(1:shift_amount)]%移位

goldseq(shift_amount+1,:)=mod(mseq1+shift_mseq2,2)%和移位后的序列进行模为2的相加

end

注:要生成gold序列,需滚圆要连两个m序列

是这样的吧好缓

#include <stdio.h>

#include <纯早time.h>友裤模

char * randbin(char *str, int len)

{

int i

srand(time(NULL))

for(i=0i<leni++)

str[i] = rand() % 2 + 0x30

return str

}

int main()

{

char str[100] = {0}

printf("%s\n", randbin(str, 99))

return 0

}

clear all%清理工作空间

close all%关闭所有图形

g=19%G=10011%常量赋值

state=8%state=1000%常量赋值

L=1000%m序列团拦产生

N=15%常量赋值

mq=mgen(g,state,L)%m序列自相关

ms=conv(1-2*mq,1-2*mq(15:-1:1))/N%计算

figure(1) %图形窗

%subplot(222)

stem(ms(15:end))%画杆图

axis([0 63 -0.3 1.2])%显示范围

title('m序列自相关序列')%图形名称

你这个程序中mgen函数不是matlab自带的函数,可能指或袜是自写的。唯激


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8256013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存