📄 main.asv
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -