-
大小: 5KB文件類型: .m金幣: 2下載: 0 次發布日期: 2024-02-02
- 語言: Matlab
- 標簽:
資源簡介
:
產生等概率且相互獨立的二進制序列,畫出波形;
產生均值為0,方差為1的加性高斯隨機噪聲;
進行8PSK調制,畫出波形;
進行蒙特卡羅分析;
解調8PSK,畫出眼圖。
代碼片段和文件信息
f=150???? ????????%抽樣頻率
g=(sign(rand(1150)-0.5)+1)/2 %產生二進制序列
sn=randn(150*length(g)); %產生加性高斯白噪聲
dt=2*pi/149;
t=0:dt:2*pi;
si=[];co=[];???? %si為正交分量,co為同相分量
sit=[];sqt=[];?? %sit為同相分量幅度,sqt為正交分量幅度
sb2=[];????%輸入二進制序列
%8PSK調制過程
for?n=1:3:length(g); %一次取3個二進制數
if?g(n)==0?&&?g(n+1)==0?&&?g(n+2)==0
%b1b2b3=000時正交分量和同相分量的幅值
????????it=-0.383*ones(1150);
????????qt=-0.924*ones(1150);??
????????b2=[zeros(150)?zeros(150)?zeros(150)]
????elseif?g(n)==0?&&?g(n+1)==0?&&?g(n+2)==1 %b1b2b3=001時
????????it=-0.924*ones(1150);
????????qt=-0.383*ones(1150);
????????b2=[zeros(150)?zeros(150)?ones(150)]
????elseif?g(n)==1?&&?g(n+1)==0?&&?g(n+2)==0
????????it=0.383*ones(1150);
????????qt=-0.924*ones(1150);?
????????b2=[ones(150)?zeros(150)?zeros(150)?]
????elseif?g(n)==1?&&?g(n+1)==0??&&?g(n+2)==1
????????it=0.924*ones(1150);
????????qt=-0.383*ones(1150);??
????????b2=[ones(150)?zeros(150)?ones(150)?]
????elseif?g(n)==0?&&?g(n+1)==1?&&?g(n+2)==0
????????it=-0.383*ones(1150);
????????qt=0.924*ones(1150);?
????????b2=[zeros(150)?ones(150)?zeros(150)??]
????elseif?g(n)==0?&&?g(n+1)==1?&&?g(n+2)==1
????????it=-0.924*ones(1150);
????????qt=0.383*ones(1150);?
????????b2=[zeros(150)?ones(150)?ones(150)??]
????elseif?g(n)==1?&&?g(n+1)==1?&&?g(n+2)==1
????????it=0.924*ones(1150);
????????qt=0.383*ones(1150);??
????????b2=[ones(150)?ones(150)?ones(150)??]
????elseif?g(n)==1?&&?g(n+1)==1?&&?g(n+2)==0
????????it=0.383*ones(1150);
????????qt=0.924*ones(1150);
????????b2=[ones(150)?ones(150)?zeros(150)??]
????end
????sb2=[sb2?b2];
????c=cos(f*t);???s=sin(f*t);
????sit=[sit?it];?sqt=[sqt?qt];???
????co=[co?c];????si=[si?s];??
end
psk=sit.*co+sqt.*si; %調制后的8psk信號
%畫圖
figure(1);
plot(sb2‘LineWidth‘1.5);
grid?on;title(‘二進制序列(信源)‘);
axis([0?2000?-1.5?1.5]);
set(gca‘Xtick‘[150:150:1800]);
xlabel(‘(a)??????t/(ts/150)‘);
figure(2);
plot(psk‘LineWidth‘1.5);
grid?on;title(‘8PSK?調制?‘);axis([0?2000?-1.5?1.5]);
xlabel(‘(b)??????t/(Ts/150)‘);
%8PSK的解調
rpsk=psk+sn; %加入加性高斯白噪聲
rs=[]; %rs用來存放解調后的二進制序列
for??m=1:150:50*length(g)-150;
rpsk1=rpsk(m:m+149); %取一個碼元
sit=rpsk1.*cos(f*t);
it=cumtrapz(sit)*dt;
it=it(end); %相關后得的I路電平
if?it>0 %對得到的電平進行判決
rs=[rs?ones(150)];
elseif?it<0
????rs=[rs?zeros(150)];
end
sqt=rpsk1.*sin(f*t);
qt=cumtrapz(sqt)*dt;
qt=qt(end)
評論
共有 條評論