To use this function just define a variable say var,
var = pnseq(a, b, c); for a, b and c refer to the zip file %This code generates PN sequence and is written by Ashwini Patankar. %You can reach me through ashwinispatankar@gmail.com %My Home page: www.ashwinipatankar.com %My Personal Blog: wwww.ashinipatankar.wordpress.com %Blog on Wireless Engineering : www.wirelesscafe.wordpress.com % Feel free to ask querries related to wirelss engineering, matlab and ns2 function [op_seq] = pnseq (a, b, c) % a : no of fliflops; b = tapp _ function starting frm highest order; c = initial stae %tapp functions or genrator polynomial %e.g. no of flip flops 4 ==> a = 4 %generator polynomial x4+x+1 ==> b = [1 0 0 1] %initial state [1 0 0 0] ==> c = [1 0 0 0] %refere figure to set a relation between tap function and initial state % % % % % < % -----------X____________________________________ % | ___ | _____ ____ _____ | % |> | | | | | | | | | ^| % -----| |--------| |---| |-------| |------------->o/p % ----- ----- ----- ---- % x1 + x2 + x3 + x4 %initial state % 1 0 0 1 % %take care of the reverse order of genrator polynomial and intiial states % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all; clc; x = a; tap_ff =b; int_stat= c; for i = 1:1: length(int_stat) old_stat(i) = int_stat(i); gen_pol(i) = tap_ff(i); end len = (2 ^x)-1; gen_pol(i+1)= 1; gen_l = length(gen_pol); old_l = length(old_stat); for i1 = 1: 1:len % feed back input genration t = 1; for i2 = 1:old_l if gen_pol(i2)==1 stat_str(t) = old_stat(gen_l - i2); i2 = i2+1; t = t+1; else i2 = i2+1; end end stat_l = length(stat_str); feed_ip = stat_str(1); for i3 = 1: stat_l-1 feed_ip = bitxor(feed_ip,stat_str(i3 + 1)); feed_ipmag(i1) = feed_ip; i3 = i3+1; end % shifting elements new_stat = feed_ip; for i4 = 1:1:old_l new_stat(i4+1) = old_stat(i4); old_stat(i4)= new_stat(i4); end op_seq(i1) = new_stat(old_l +1); end %op_seq;
Matlab code to generate 1023 PN sequence.
I am using this code to generate a PN sequence with 1023 length.