how to make a PN code?

1 回表示 (過去 30 日間)
DaWoon Jeong
DaWoon Jeong 2017 年 6 月 11 日
回答済み: Dimitris Iliou 2017 年 6 月 16 日
I make a PN code for home work. but it's not work but i don't know the reason why. what's the problem n how to build PN code in base on my code. It's my code i know the answer, num_right has to be 60.
var= dec2bin(0:2^9-1)-'0';
var = [ones(512,1),var,ones(512,1)];
num_right = 0;
for k=1 : 512
if(mod(sum(var(k,:)),2)==1)
org(1,:)= var(k,:);
for l=1 :1022
check(k,l) = org(l,3);
next_high = rem(sum(org(l,2:11)),2);
org(l+1,:) = circshift(org(l,:),1);
org(l+1,1) = next_high;
end
check(k,1023) = org(1023,3);
if(isequal(org(1023,:),var(k,:))==1)
for m=1:1023
if(check(k,m)==1)
check(k,m) = -1;
end
if(check(k,m) ==0)
check(k,m) = 1;
end
end
for n=1:1023
check_change = circshift(check(k,:),n);
check_sum(k,n) = sum(check(k,:).*check_change);
end
if (check_sum(k,1023) ==1023)
sum_check = check_sum(k,1:1022).*check_sum(k,1:1022);
if(sum(check_sum(k,1:1022).*check_sum(k,1:1022))==1022)
fprintf('%g \n',var(k,:));
num_right = num_right + 1;
end
if(sum(check_sum(k,1:1022).*check_sum(k,1:1022))~=1022)
continue, end
if (check_sum(k,1023) ~=1023)
continue, end
end
end
end
end
fprintf('%g \n', num_right);

回答 (1 件)

Dimitris Iliou
Dimitris Iliou 2017 年 6 月 16 日
The problem with your code is that the
if(sum(check_sum(k,1:1022).*check_sum(k,1:1022))==1022)
is never true. Due to that, your num_right variable is never modified.
If you debug the code, you will find that the first time you hit that if statement you have the following:
sum(check_sum(k,1:1022).*check_sum(k,1:1022)
ans =
103968206
and
size(check_sum(k,1:1022).*check_sum(k,1:1022))
ans =
1 1022
Having said that, I think you might be checking for the wrong thing.
What I would suggest is try debugging your code in order to understand how it works and what you can do to change it.

カテゴリ

Help Center および File ExchangeTiming and presenting 2D and 3D stimuli についてさらに検索

Community Treasure Hunt

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

Start Hunting!