802.11 中 scrambler的matlab仿真

802.11a和802.11n中的scrambler仿真不可以直接用matlab中的comm.Scrambler函数。因为这个函数实现的是multiplicative scrambling,而802.11a和802.11n中的scrambler使用的是additive scrambling。additive scrambling使用异或操作进行扰码,multiplicative scrambling使用乘法而非异或操作来对数据进行扰码。

所以进行仿真的时候,要使用comm.PNSequence生成一个PN序列,然后对输入数据进行XOR操作即可。

代码如下:

%% scramble
genPoly = 'x^7 + x^3 + 1';       % Generator polynomial
shift = 7;                       % Shift value for output
spf = 48;                        % Samples per frame
initState = [1 0 1 1 1 0 1]';    
pnSeq = comm.PNSequence( ...
    Polynomial=genPoly, ...
    InitialConditionsSource="Input Port", ...
    Mask=shift, ...
    SamplesPerFrame=spf, ...
    OutputDataType="logical");
pnsequence = pnSeq(initState);
scrData = xor(data_Payload_bit,pnsequence);

你可能感兴趣的:(信号处理,matlab,通信,matlab,信息与通信)