?? filer_qpsk.m
字號:
%升余弦濾波器+PSK調制,%已生成QPSK和OQPSK信號
function y=filer_QPSK(a,b)%
%生成隨機數
%x_length=10; % 信息碼元個數
Rb=819200;%碼元速率819.2k
k=1; %一個碼元間隔包括1個載波周期
k2=16;
fc=k*Rb; % 載波頻率,
fs=fc*k2; % 信號采樣率
x_size=k*k2;
y=1:x_size; % 采樣時間序列,每個碼元采x_size點
x_i=a;
x_q=b;
x_length=length(a);
for i=1:x_length
baseband_i(1,1+(i-1)*x_size:i*x_size)=x_i(i);%將碼元展寬x_size倍
baseband_q(1,1+(i-1)*x_size:i*x_size)=x_q(i);%將碼元展寬x_size倍
end
%將i路提前半個碼元,相當于將q路延遲半個碼元
basefore_i=zeros(1,length(baseband_i));
basefore_i(1:length(baseband_i)-x_size/2)=baseband_i(x_size/2+1:length(baseband_i));
%基帶濾波
n=15;%濾波器階數
shengyuxuian=myfilter(n,k2);
%filtoutI=filter(shengyuxuian,1,baseband_i);
filtoutQ=filter(shengyuxuian,1,baseband_q);
filtoutforeI=filter(shengyuxuian,1,basefore_i);
%baseband_i(2,:)=filtoutI;
%baseband_q(2,:)=filtoutQ;
%產生載波
carry_i(1:x_length*x_size)=cos(2*pi*fc*(1:x_length*x_size)/fs+pi/4);
carry_q(1:x_length*x_size)=sin(2*pi*fc*(1:x_length*x_size)/fs+pi/4);
%BPSK調制
%s_i=filtoutI.*carry_i;
s_q=filtoutQ.*carry_q;
sfore_i=filtoutforeI.*carry_i;
%輸出QPSK信號
%sqpsk=s_i+s_q;
soqpsk=sfore_i+s_q;
y=soqpsk;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(2)
subplot(3,1,1)
plot(filtoutforeI(1:20*x_size))
axis([0 x_size*20 -1.5 1.5])
grid on
title('I路碼元信號')
subplot(3,1,2)
plot(filtoutQ(1:20*x_size))
axis([0 x_size*20 -1.5 1.5])
title('Q路碼元信號')
grid on
subplot(3,1,3)
plot(carry_i(1:20*x_size)) %顯示調制信號波形
axis([0 x_size*20 -1.5 1.5])
title('載波')
grid on
figure(4)
subplot(3,1,1)
plot(sfore_i(1:20*x_size)) %顯示基帶信號波形
axis([0 x_size*20 -1.5 1.5])
grid on
title('I路BPSK調制信號')
subplot(3,1,2)
plot(s_q(1:20*x_size)) %顯示載波信號波形
axis([0 x_size*20 -1.5 1.5])
title('Q路BPSK調制信號')
grid on
subplot(3,1,3)
plot(soqpsk(1:20*x_size)) %顯示調制信號波形
axis([0 x_size*20 -1.5 1.5])
title('OQPSK調制信號')
grid on
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -