main.asv

来自「在高斯信道下」· ASV 代码 · 共 38 行

ASV
38
字号
g=[1 0 1
    1 1 1];
k=1;
M=16;
N=64;
snrdb=0:2:25;
for sn=1:length(snrdb)
code=randint(1,25600,[0,1]);
conv_code=conv(g,k,code);
w=1;
for u=1:log2(M):length(conv_code)
    qam_source(w)=deci2(conv_code(u:u+log2(M)-1))+1;
    w=w+1;
end
qam_code=qam16(qam_source)
for u=1:N:length(qa_code)
    ifft_code(u:u+N-1,1)=ifft(qa_code(u:u+N-1,1))*100;
end

chan_noisy=awgn(ifft_code,snrdb(sn),'measured');

for u=1:N:length(ifft_code)
    fft_code(u:u+N-1,1)=fft(chan_noisy(u:u+N-1,1))*1/100;
end
 
 j=1;
 for u=1:length(qam_decode)
     vtb_in(j:j+log2(M)-1)=binary(qam_decode(u)-1,log2(M));
     j=j+log2(M);
 end
 
conv_decode=viterbi(g,k,vtb_in);
 [num,rat(sn)]=symerr(code,conv_decode);
end
rat
semilogy(snrdb,rat);
grid;

⌨️ 快捷键说明

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