資源簡介
qpsk在matlab上的仿真 4PSK用的比較多。I 路信號是用余弦載波,由2進制數據流的奇數序列組成;Q路信號用正弦載波,由2進制數據流的偶數序列組成。下面的a是Idata,b就是Qdata,它們分布與各自的載波相乘分別輸出 I 路信號和 Q 路信號。I 路信號加上Q路信號就是QPSK輸出信號。當 I 路載波信號是0相位時為1,是180°相位時為0;當Q路載波信號是0相位時為1,是180°相位時為0。
代碼片段和文件信息
clear?all?
close?all?
%?x1是類似[1?1?-1?-1?-1?-1?1?1]的分布作用是控制相位的180°反轉。?
%由于仿真中載波的頻率是f=1Hz,所以1s的間隔內有一個完整周期的正弦波
?t=[-1:0.01:7-0.01];?%?t共800個數據,-1~7s?
t1?=?[0:0.01:8-0.01];?%t1也是800個數據點?,0?~8s?
?tt=length(t);?%?tt=800?
x1=ones(1800);?
for?i=1:tt?
if?(t(i)>=-1?&?t(i)<=1)?|?(t(i)>=5&?t(i)<=7);?
x1(i)=1;?
else?x1(i)=-1;?
end?
end?
?t2?=?0:0.01:7-0.01;?%t2是700個數據點,是QPSK_rc繪圖的下標
?t3?=?-1:0.01:7.1-0.01;?%t3有810個數據點,是i_rc的時間變量
?
t4?=?0:0.01:8.1-0.01;?%t4有810個數據點,是q_rc的時間變量
%x2是類似于[1?1?-1?-1?1?1?1?1]的分布作用是控制相位的180°反轉?
tt1=length(t1);?
x2=ones(1800);?
for?i=1:tt1?
if?(t1(i)>=0?&&?t1(i)<=2)?||?(t1(i)>=4&&?t1(i)<=8);?
x2(i)=1;?
else?x2(i)=-1;?
end?
end?
?f=0:0.1:1;?
xrc=0.5+0.5*cos(pi*f);?%xrc是一個低通特性的傳輸函數
??
y1=conv(x1xrc)/5.5;?%y1和x1?實際上沒什么區別,僅僅是上升沿、下降沿有點過渡帶
?y2=conv(x2xrc)/5.5;?%?y2和x2?實際上沒什么區別,僅僅是上升沿、下降沿有點過渡帶
?n0=randn(size(t2));?
f1=1;?
i=x1.*cos(2*pi*f1*t);?%?x1就是I?data?
q=x2.*sin(2*pi*f1*t1);?%x2就是Q
data?I=i(101:800);?
Q=q(1:700);?
QPSK=sqrt(1/2).*I+sqrt(1/2).*Q;?
QPSK_n=(sqrt(1/2).*I+sqrt(1/2).*Q)+n0;?
?n1=randn(size(t2));?
i_rc=y1.*cos(2*pi*f1*t3);?%?y1就是I?data,i_rc可能是貼近實際的波形i則是理想波形
?q_rc=y2.*sin(2*pi*f1*t4);?%y2就是Q?data,q_rc可能是貼近實際的波形q則是理想波
??
I_rc=i_rc(101:800);?
Q_rc=q_rc(1:700);?
QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);?
QPSK_rc_n1=QPSK_rc+n1;?
figure(1)?
subplot(411);plot(t3i_rc);axis([-1?8?-1?1]);ylabel(‘a序列‘);?
subplot(412);plot(t4q_rc);axis([-1?8?-1?1]);ylabel(‘b序列‘);?
subplot(413);plot(t2QPSK_rc);axis([-1?8?-1?1]);ylabel(‘合成序列‘);?
subplot(414);plot(t2QPSK_rc_n1);axis([-1?8?-1?1]);ylabel(‘加入噪聲‘);
?bit_in?=?randint(1e3?1?[0?1]);?
?bit_I?=?b
評論
共有 條評論