一、簡介


二、源代碼
M=16;
k=log2(M);
n=100000; %位元序列長度
samp=1; %過采樣率
x=randint(n,1); %生成隨機二進制位元流
subplot(211);
stem(x(1:50),'filled'); %畫出相應的二進制位元流信號 title('二進制隨機位元流');
xlabel('二進制位元序列');ylabel('信號幅度');
x4=reshape(x,k,length(x)/k); %將原始的二進制位元序列每四個一組分組,并排列成k行length(x)/k列的矩陣
xsym=bi2de(x4.','left-msb'); %將矩陣轉化為相應的16進制信號序列 figure;
subplot(212);
stem(xsym(1:50)); %畫出相應的16進制信號序列 title('16進制隨機信號');
xlabel('16進制信號序列');ylabel('信號幅度');
y=qammod(xsym,M); %用16QAM調制器對信號進行調制
scatterplot(y); %畫出16QAM信號的星座圖
title('發射信號星座圖');
text(real(y)+0.1,imag(y),dec2bin(xsym));
axis([-5 5 -5 5]);
EbNo=10;
snr=EbNo+10*log10(k)-10*log10(samp); %信噪比
yn=awgn(y,snr,'measured'); %加入高斯白噪聲
h=scatterplot(yn,samp,0,'b.'); %經過信道后接收到的含白噪聲的信號星座圖
hold on;
scatterplot(y,1,0,'r+',h); %加入不含白噪聲的信號星座圖
title('接收信號星座圖');
legend('含噪聲接收信號','不含噪聲信號');
axis([-5 5 -5 5]);
hold on;
yd=qamdemod(yn,M); %此時解調出來的是16進制信號
figure;
三、運行結果



四、備注
版本:2014a
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287710.html
標籤:其他
