txmask.m

来自「有关OFDM信道估计的matlab程序(其中包含英文简介和部分simulink模」· M 代码 · 共 66 行

M
66
字号
%calculating PSD
x=ceil(rand(256,256)*2-1);
t4b5b=[1 1 1 1 0
0 1 0 0 1    
1 0 1 0 0    
1 0 1 0 1    
0 1 0 1 0    
0 1 0 1 1    
0 1 1 1 0    
0 1 1 1 1    
1 0 0 1 0    
1 0 0 1 1
1 0 1 1 0
1 0 1 1 1
1 1 0 1 0
1 1 0 1 1
1 1 1 0 0
1 1 1 0 1];
pspc=zeros(1,2048);
for i=1:256
    %4b5b encoding
    for j=1:4:256
        xin=x(i,j:j+3);
        xind=xin(1)*8+xin(2)*4+xin(3)*2+xin(4)+1;
        xout=t4b5b(xind,:);
        jj=1+(j-1)/4*5;
        y(jj:jj+4)=xout;
    end
    xlin=zeros(1,321);
    slv=0;
    %MLT3 encoding
    for j=1:320
        if y(j)==1
            if slv==0
                xlin(j+1)=xlin(j)+1;
                if xlin(j+1)>1
                    slv=1;
                    xlin(j+1)=0;
                end
            else
                xlin(j+1)=xlin(j)-1;
                if xlin(j+1)<-1
                    slv=0;
                    xlin(j+1)=0;
                end
            end
        else
            xlin(j+1)=xlin(j);
        end
    end
    %To four times of sampling rate with proper rising time
    xlinl=zeros(1,1281);
    for j=1:319
        xlinl(j*4+1:j*4+5)=xlinl(j*4+1:j*4+5)+xlin(j+1)*[0.5 1 1 1 0.5];
    end
    pspc=pspc+abs(fft(xlinl,2048));
end
pspc=pspc/256;
pspc=pspc.^2/100/0.001/125e6/4;
figure(1)
logpspc=10*log10(pspc(1:1024));
f=[1:2048]/2048*5e8;
plot(f(1:511),logpspc(1:511))
grid
xlabel('Frequency (Hz)')
ylabel('PSD (dBm/Hz)')

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?