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

📄 main.m

📁 在高斯信道下
💻 M
字号:
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(qam_code)
    ifft_code(u:u+N-1,1)=ifft(qam_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
 qam_decode=deqam16(fft_code,M);
 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
 for l=1:length(vtb_in)
    if vtb_in(l)==0
         vtb_in(l)=-1;
     end
 end
conv_decode=viterbis(g,k,vtb_in);
 [num,rat(sn)]=symerr(code,conv_decode);
end

semilogy(snrdb,rat,'-.');
grid on;
xlabel('信噪比(dB)');
ylabel('误码率(Pe)');
legend('软判决---','硬判决-。-。');
hold on;

⌨️ 快捷键说明

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