I am trying to implement a binary offset carrier (BOC) direct sequence spread spectrum scheme in MATLAB. In that scheme, a code $c(t)$ (a binary vector which repeats after a certain number of zeros and ones) should be calculated by an other square (sub) carrier of the following form sign(sin(1*pi*fs*t) where fs is the subcarrier frequency and finally should be calculated by a carrier frequency having the usual form of a cosine.
I have generated the code needed (a vector of 1023 elements). These 1023 chips (vector’s elements) should be repeated every 1 ms in order for the chipping frequency to be achieved (10Mchips/s). After, that vector (code) should be multiplied by a square subcarrier of 1023 Mhz and finally by the ‘actual’ carrier (a co sinusoidal signal) of 4092 Mhz. All these should be demonstrated via plots.
My first problem is that in order to demonstrate the spectrum of the codes, spectral nulls should be represented at frequencies multiples of 1.023 Mhz. The only way that I could somehow think how to do this is to use massive vectors where are not really supported by my laptop's memory (RAM).
I say "somehow", because the sampling rate should change (for example wherever I have one ‘1’ I should add some more and the same applies to zeros). This procedure ruins the whole purpose of the code because the code has some particular autocorrelation properties which I don’t know if will continue to exist after.
Moreover, if that should reach the 10Mchips how will this could be done by using the particular vector. While I understand that it is easily done by using a random vector of 10*10^6 elements. Should I repeat the 1023 chips 1000 times?