【數字訊號調製】基於matlab正交幅度調製模擬【含Matlab原始碼 1002期】
阿新 • • 發佈:2021-06-18
一、簡介
二、原始碼
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