⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reedmuller.m

📁 采用reed-muller码降低ofdm的par方法
💻 M
字号:
%function [output,par]=reedmuller(input);

input=randint(1,4000);
G0=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1];
G1=[0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1;
    0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1;
    0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1;
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1];
G2=[0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1;
    0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1;
    0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1;
    0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1;
    0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1;
    0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1];
pe=[1 0 0 1 0 1;
    1 0 0 0 1 1;
    0 1 0 0 1 1;
    0 1 0 1 1 0;
    0 0 1 1 1 0;
    0 0 1 1 0 1;
    1 1 0 0 0 1;
    1 0 1 0 0 1];
G=[G0;G1;G2];
       
len=length(input);
n=len/8;
peak=zeros(1,n);
aver=zeros(1,n);
par=zeros(1,n);
output=zeros(1,len*2);
block=zeros(1,8);
tribit=zeros(1,3);
blockout=zeros(1,11);
for j=1:n
    block=input(j*8-7:j*8);
    tribit=block(6:8);
    s=bi2de(tribit,'left-msb')+1;
    blockout(1:5)=block(1:5);
    blockout(6:11)=pe(s,:);
    freq=mod(blockout*G,2);
    freq=-freq*2+1;
    stime=ifft(freq,16);
    output(j*16-15:j*16)=stime;
    peak(j)=max(stime.*conj(stime));
    aver(j)=mean(stime.*conj(stime));
    par(j)=10*log10(peak(j)/aver(j));
end
    
j=1:n;
plot(j,par(j));
    
    

⌨️ 快捷键说明

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