📄 source_spread.m
字号:
clear all;
% PN码长1024
% 参数定义
% 产生的一帧数据长度32bit
% 信息速率4.5kbps
% 采样速率 4
% 滚将系数 1
%--------------原始数据(31位m序列补一位0)--------------------------------
data=[1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0];
data=[data data data];
%--------------数据成帧-----------------------------------
I=data(1:2:length(data));
Q=data(2:2:length(data));
%--------------差分编码------------------------------------
I_code_data(1)=I(length(I));
Q_code_data(1)=Q(length(Q));
for i=2:1:length(I)
if (and(I_code_data(i-1),Q_code_data(i-1))==0)
I_code_data(i)=xor(I(i),I_code_data(i-1));
Q_code_data(i)=xor(Q(i),Q_code_data(i-1));
else
I_code_data(i)=xor(Q(i),I_code_data(i-1));
Q_code_data(i)=xor(I(i),Q_code_data(i-1));
end;
end;
I_code_data=2*I_code_data-1;
Q_code_data=2*Q_code_data-1;
%--------------扩频序列生成-----------------------------------
clear i;
m1=[1,1,1,1,1,1,1,1,1,1];%初相
poly1=[0,0,1,0,0,0,0,0,0,1];%反馈多项式
m=zeros(1023,1);
N=1023;
for i=1:N
m(i)=m1(10);
if not(m(i)) %统计序列中零的个数,并将'0'改为'-1',以便计算其自相关值
m(i)=-1;
end
temp1=xor(m1(10),m1(3));
for j=10:-1:2
m1(j)=m1(j-1);
end
m1(1)=temp1;
end
m=m';
m=[m 1];%1024位伪码中有513位1
%--------------扩频-----------------------------------------
I_spread_data=kron(I_code_data,m);
Q_spread_data=kron(Q_code_data,m);
%---------------将一位扩展为四位------------------------------
sample_ve=4;
extend=[1 1 1 1];
I_data_extend=kron(I_spread_data,extend);
Q_data_extend=kron(Q_spread_data,extend);
%---------------基带成形-------------------------
%%基带成形滤波器
%升余玹滤波成形
r=1;%滚降系数
Tb=1/(5400*1024);%5.4kbit/s,信号带宽5.529MHz
fs=sample_ve/Tb;%采样率22.2MHz
Ts=Tb/sample_ve;%采样时间间隔
t=(-6*Tb+0.5*Ts:Ts:6*Tb-0.5*Ts); % 归一化离散值
h_t=(sin((1-r)*pi*t/Tb)+(4*r*t/Tb).*cos((1+r)*pi*t/Tb))./(pi*t/Tb.*(1-(4*r*t/Tb).^2));
%%成形
I_shaping=conv(I_data_extend,h_t);
Q_shaping=conv(Q_data_extend,h_t);
%%归一化
I_shaping0=I_shaping/max(abs(I_shaping));
Q_shaping0=Q_shaping/max(abs(Q_shaping));
I0=I_shaping0(65536+25:65536+25+65536-1);
Q0=Q_shaping0(65536+25:65536+25+65536-1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -