?? mod_oqpsk_030621.m
字號:
function y = mod_oqpsk_030621 (x,n,M)
global k Fc Fd Fs Fs_n;
% OQPSK Modulation Procedure
% M = 2
% x 為長度為1024*5=5120點的數字信號,每個碼元里有Fs_n/Fd=120個數,共42+2/3個碼元。
% 將 x 進行串并轉換后分為兩個正交信號 I 、Q。
% 分別對這兩個正交信號進行2PSK調制,再將兩列相加。
% 首先將基帶數字信號 x 變成雙極性信號(非零信號)
x=-1+2*x; % “0”——“-1” “1”——“1”
N1=length(x)-mod(length(x),Fs_n/Fd); % N1值為5040,共42個碼元,每個碼元用120個相同的數字表示。
x0=x(1:N1); % 取x的前5040個值。
for i=1:fix(length(x)/(Fs_n/Fd)/2) % 將42個碼元分為21(=length(x)/(Fs_n/Fd)/2)組,每組第一個碼元給同相分量,第二個碼元給正交份量。
for j=1:120
x1((i-1)*120+j)=x0(120*2*(i-1)+j);
x2((i-1)*120+j)=x0(120*2*(i-1)+j+120); % 得到x1、x2兩個分量長度均為2520
end
end
%---- 將x1、x2碼元擴展一倍,得到 I、Q 的長度均為N1=5040,碼元寬度變為240。
for i=1:N1/2
I0(2*i-1)=x1(i);
I0(2*i)=x1(i);
Q0(2*i-1)=x2(i);
Q0(2*i)=x2(i);
end
%---- I、Q均擴展為5120點
for i=N1+1:length(x)
I0(i)=x(i);
Q0(i)=x(i);
end
I=I0;
for i=1:length(x)-Fs_n/Fd
Q(i) = Q0(i+Fs_n/Fd);
end
for i=length(x)-Fs_n/Fd+1:length(x)
Q(i)=Q0(i-(length(x)-Fs_n/Fd));
end % Q 相對于 I 移半個碼元。
% M == 2
y_I = cos(2*pi*Fc*n + I.*pi/2);
y_Q = sin(2*pi*Fc*n + Q.*pi/2);
y = y_I - y_Q; % 得到OQPSK調制信號。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -