1. 程式人生 > 其它 >【數字訊號調製】基於matlab正交幅度調製模擬【含Matlab原始碼 1002期】

【數字訊號調製】基於matlab正交幅度調製模擬【含Matlab原始碼 1002期】

一、簡介


二、原始碼

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
完整程式碼或代寫加1564658423