?? filer_qpsk1.m
字號(hào):
%升余弦濾波器+PSK調(diào)制
%以碼元速率1.2288M為例,已生成QPSK和OQPSK信號(hào),
clc;%清除命令窗口
clear all;%清除工作空間workspace,以釋放內(nèi)存
close all;
%生成隨機(jī)數(shù)
x_length=1000; % 信息碼元個(gè)數(shù)
Rb=819200;%碼元速率819.2k
k=1; %一個(gè)碼元間隔包括1個(gè)載波周期/2
k2=8;
fc=k*Rb; % 載波頻率,
fs=fc*k2; % 信號(hào)采樣率
x_size=k*k2;
y=1:x_size; % 采樣時(shí)間序列,每個(gè)碼元采x_size點(diǎn)
x_i=randsrc(1,x_length,[-1,1]);%sign(rand(1,x_length)-0.5); 正負(fù)號(hào)函數(shù)sign,產(chǎn)生隨機(jī)碼
x_q=randsrc(1,x_length,[-1,1]);
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路提前半個(gè)碼元,相當(dāng)于將q路延遲半個(gè)碼元
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;%濾波器階數(shù)
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;
%產(chǎn)生載波
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調(diào)制
s_i=filtoutI.*carry_i;
s_q=filtoutQ.*carry_q;
sfore_i=filtoutforeI.*carry_i;
%輸出QPSK信號(hào)
sqpsk=s_i+s_q;
soqpsk=sfore_i+s_q;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fft_filtoutI=abs(fft(filtoutQ));
fft_soqpsk=abs(fft(soqpsk));
n=size(soqpsk,2);%FFT后數(shù)據(jù)點(diǎn)數(shù)目,d = size(X)返回二維向量,分別為矩陣X行數(shù)和列數(shù)
f=1:fs/n:fs;
m=fc/fs*n*2; %此處m=fs/4=2fc
%圖1,調(diào)制信號(hào)頻譜圖
figure(1)
subplot(2,1,1)
%plot(f(1,1:m),fft_s_i(1,1:m))
%title('信號(hào)頻譜(BPSK)')
%grid on
%subplot(3,1,2)
plot(f(1,1:m),fft_soqpsk(1,1:m))
title('調(diào)制信號(hào)頻譜')
grid on
subplot(2,1,2)
plot(f(1,1:m),fft_filtoutI(1,1:m))
title('基帶信號(hào)頻譜')
grid on
figure(2)
subplot(4,1,1)
plot(filtoutI)
axis([0 x_size*8 -1.5 1.5])
grid on
title('I路碼元信號(hào)')
subplot(4,1,2)
plot(filtoutforeI)
axis([0 x_size*8 -1.5 1.5])
grid on
title('I路碼元信號(hào)')
subplot(4,1,3)
plot(filtoutQ)
axis([0 x_size*8 -1.5 1.5])
title('Q路碼元信號(hào)')
grid on
subplot(4,1,4)
plot(carry_i) %顯示調(diào)制信號(hào)波形
axis([0 x_size*8 -1.5 1.5])
title('載波')
grid on
figure(3)
subplot(3,1,1)
plot(s_i) %顯示基帶信號(hào)波形
axis([0 x_size*8 -1.5 1.5])
grid on
title('I路BPSK調(diào)制信號(hào)')
subplot(3,1,2)
plot(s_q) %顯示載波信號(hào)波形
axis([0 x_size*8 -1.5 1.5])
title('Q路BPSK調(diào)制信號(hào)')
grid on
subplot(3,1,3)
plot(sqpsk) %顯示調(diào)制信號(hào)波形
axis([0 x_size*8 -1.5 1.5])
title('QPSK調(diào)制信號(hào)')
grid on
figure(4)
subplot(3,1,1)
plot(sfore_i) %顯示基帶信號(hào)波形
axis([0 x_size*8 -1.5 1.5])
grid on
title('I路BPSK調(diào)制信號(hào)')
subplot(3,1,2)
plot(s_q) %顯示載波信號(hào)波形
axis([0 x_size*8 -1.5 1.5])
title('Q路BPSK調(diào)制信號(hào)')
grid on
subplot(3,1,3)
plot(soqpsk) %顯示調(diào)制信號(hào)波形
axis([0 x_size*8 -1.5 1.5])
title('OQPSK調(diào)制信號(hào)')
grid on
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -