直扩抗干扰-直接序列扩频抗干扰性能仿真

1 直接序列扩频抗干扰性能仿真

1.1干扰信号建模

1.1.1 单音干扰

单音干扰信号在某个频点上发射,是一个单频连续正弦波形。时域表达式如下
J ( t ) = 2 P J cos ⁡ ( 2 π f J t + θ J ) θ J ( ˜ 0 , 2 π ) J(t) = \sqrt {2{P_J}} \cos (2\pi {f_J}t + {\theta _J}){\rm{ }}{\theta _J}\~(0,2\pi ) J(t)=2PJ cos(2πfJt+θJ)θJ(˜0,2π)

其中, P J P_J PJ为干扰信号功率, f J f_J fJ为干扰信号频率, θ J \theta _J θJ 为干扰信号相位且服从均匀分布。

1.1.2 宽带噪声干扰

宽带噪声干扰是将高斯白噪声通过一个宽带滤波器,得到在每一个宽带范围内的阻塞噪声。设白噪声 ε ( t ) N ˜ ( 0 , P J / 2 W I ) \varepsilon (t)\~N(0,{P_J}/2{W_I}) ε(t)N˜(0,PJ/2WI),其中 P J P_J PJ是干扰功率, W I W_I WI低通滤波器的截止频率。则宽带噪声干扰可以表示为 n ( t ) = ε ( t ) ⊗ h ( t ) n(t) = \varepsilon (t) \otimes h(t) n(t)=ε(t)h(t),滤波器的频域表达式为
H ( j 2 π f ) = { 1 , ∣ f ∣ ≤ W I 0 , o t h e r w i s e H(j2\pi f) = \left\{ \begin{aligned} &1,|f| \le {W_I}\\ & 0,otherwise \end{aligned} \right. H(j2πf)={1,fWI0,otherwise

1.1.3 窄带噪声干扰

与宽带噪声干扰产生方法类似,将白噪声通过一个窄带滤波器,得到瞄准某一个窄带范围的阻塞信号。窄带滤波器的频域表达式为
H ( j 2 π f ) = { 1 , ∣ f − f J ∣ ≤ W I 2 0 , o t h e r w i s e H(j2\pi f) = \left\{ \begin{aligned} & 1,{\rm{ }}|f - {f_J}| \le {{{W_I}} \over 2} \\ &0,{\rm{ }}otherwise \end{aligned} \right. H(j2πf)= 1,ffJ2WI0,otherwise
f J f_J fJ表示瞄准频率。

1.2 抗干扰性能仿真

1.2.1收发结构框图

发射部分,采用DS-BPSK扩频。
接收部分,发射信号叠加噪声和干扰,得到接收信号,分别进行载波恢复、匹配滤波、解扩、解调,恢复出传输的信息符号。
这里为方便分析,假设接收机已完成载波同步、码同步,仅关注干扰信号对解调和符号判决的影响。信道模型为AWGN信道。
在这里插入图片描述

1.2.2 数值仿真实验

设置3种干扰样式、4种干扰信号,分别为干扰频率为载频频率的单音干扰1,干扰频率为载频频率叠加1个10 KHz频偏的单音干扰2,瞄准载频频率、阻塞带宽为1 MHz的窄带噪声干扰,以及0~80MHz的宽带噪声干扰。具体参数如下表所示。

表 2 1 DS-BPSK直扩系统抗干扰性能仿真参数表

采样频率160 MHz
载波频率70 MHz
数据速率20 KHz
扩频因子100
滚降系数0.5
仿真时间10 ms
单音干扰1频率70 MHz
单音干扰2频率70.01 MHz
窄带噪声干扰瞄准频率70 MHz
窄带噪声干扰阻塞带宽1 MHz
宽带噪声干扰截止频率80 MHz
接收机低通滤波器截止频率20 MHz

固定干信比为20 dB,假设接收机没有噪声。得到4种干扰信号下的接收信号与解扩信号频谱图如下。(1)对于单音干扰1,瞄准频率为载频频率,因此在干信比为20 dB时对解扩信号没有影响。(2)对于单音干扰2,瞄准频率为载频频率叠加10 KHz的频偏,因此解扩后部分能量带入到解扩信号,产生干扰。(3)对于窄带噪声干扰,在扩频带宽上起到阻塞作用,相当于将扩频信号淹没在强噪声中。(4)对于宽带噪声干扰,由于干扰功率平均在整个阻塞带宽上,相比窄带干扰阻塞效果差。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置不同干信比进行蒙特卡洛数值仿真实验,得到在4种干扰信号下的DS-BPSK误码率随干信比变化曲线如图所示。由图可知,DS-BPSK对抗单音干扰1效果最好。其次,DS-BPSK对抗单音干扰2效果最差,这主要是因为同样干信比下单音干扰能量最为集中,干扰信号解扩后参与能量还会带入到解扩信号中瞄准频点处,造成干扰。宽带噪声干扰比窄带噪声干扰对误码率影响更小,这是由于干扰功率均匀分布在阻塞带宽上,有效阻塞频带范围内宽带噪声干扰的功率低于窄带阻塞干扰。
在这里插入图片描述

2 代码

2.1 不同干扰信号生成

% produce the jamming signal
function y =f_produce_jam(JSRdB,Ps,JamType,t)
JSR = 10^(JSRdB/10);
PJ = Ps*JSR;
switch JamType
    case 1
        y = f_single_jam(PJ,t); 
    case 2
        y = f_multi_jam(PJ,t);
    case 3
        y = f_narrowbandnoise_jam(PJ,t); 
    case 4
        y = f_broadbandnoise_jam(PJ,t); 
end

% produce a fragment of single sinusoid jam
function y = f_single_jam(PJ,t)
fs = 70e6+10e3;
y = sqrt(2*PJ)*cos(2*pi*fs*t)';
% produce a fragment of multiple sinusoid jam
function y=f_multi_jam(PJ,t)
Q = 10; % number of multiple sinusoid
fs0 = 65e6; % start freq
deltafs = 1e6; % step freq
fs = fs0:deltafs:fs0+(Q-1)*deltafs; % produce same-distance fs
theta = 2*pi*rand(1,Q);% random phase
xx = sqrt(2*PJ/Q)*cos(2*pi*fs'*t+theta'*ones(1,length(t)));% cos
y = sum(xx); 
y = y';
% multi frequency Sinusoids jam with random phase
end

% produce a fragment of narrow band noise
function y=f_narrowbandnoise_jam(PJ,t)
y = wgn(length(t),1,10); % white noise
% bandpass filter
WI = 1e6; % window of narrow band
FJ = 70e6;% jamming frequency center
Fs = 160e6;% sampling frequence
fl_kaiser = [FJ-WI/2 FJ-WI/4 FJ+WI/4 FJ+WI/2];
fl_mag = [0 1 0];
fl_dev = [0.05 0.05 0.05];
[fl_n_kaiser,fl_wn,fl_beta,fl_ftype]=kaiserord(fl_kaiser,fl_mag,fl_dev,Fs);
h= fir1(fl_n_kaiser,fl_wn,fl_ftype,kaiser(fl_n_kaiser+1,fl_beta));
y = filter(h,1,y);% the result of filter in time domain
y = sqrt(PJ)/sqrt(var(y))*y;
end

function y=f_broadbandnoise_jam(PJ,t)
Fs = 160e6;                    % Sampling frequency
noise = wgn(length(t),1,10); % white noise
% bandpass filter
WI = 70e6; % window of broad band
fl_kaiser = [WI WI+5e6];
fl_mag = [1 0];
fl_dev = [0.05 0.01];
[fl_n_kaiser,fl_wn,fl_beta,fl_ftype]=kaiserord(fl_kaiser,fl_mag,fl_dev,Fs);
h= fir1(fl_n_kaiser,fl_wn,fl_ftype,kaiser(fl_n_kaiser+1,fl_beta));
y = filter(h,1,noise);% the result of filter in time domain
y = sqrt(PJ)/sqrt(var(y))*y;
end

2.2. 不同干扰信号下的误码性能

function errorNum = DSBPSK_tranceiver_jamming(EbN0dB,JSRdB,JamType)
%---------------------------扩频系统参数设置-------------------------------% 
fs = 160e6; %采样频率/Hz >2倍中频频率
ts = 1/fs; %采样周期/s 
rb = 20000; %扩频前的数据速率/bit/s 20k 
SF = 100; %扩频倍数 
Rb = rb*SF; %扩频后的码片速率/Mc/s 
Tsum = 10; %仿真时间/ms 
bits_num = rb*Tsum/1000; 
real_fc = 70e6; %载波频率/Hz 
phi = pi/4; %载波相位/rad 
% EbN0dB = 100;
SNRdB = EbN0dB - 10*log10(0.5*fs/rb);%仿真信噪比/dB 
% JSRdB = 25;% 干信比/dB
% JamType = 1;% 干扰类型 1-单音 2-多音 3-窄带 4-宽带
%% 发射机部分 
%----------------------------m 序列产生模块---------------------------------% 
%产生m序列
load Coef.mat
n = floor(log2(500))+2;%m序列的长度 
fx = (de2bi(base2dec(Coef.Ci(n-2),8),n+1,2));
fx = fliplr(fx(1:end-1));
reg = [zeros(1,n-1) 1];  %移位寄存器的初始状态 
mseq = zeros(n,1);
mseq(1)= reg(n);
N = 2^(n-1)-1;
for i = 2:N 
    regTemp = zeros(1,n);
    regTemp(1)= mod(sum(fx.*reg),2);
    for j = 2:n 
        regTemp(j)= reg(j-1); 
    end
    reg = regTemp;                 %移位后的寄存器 
    mseq(i) = reg(n);              %新的寄存器输出 
end
mseq = 1-2*mseq(1:SF);% 1->-1 0->1
mseq_rp = reshape(repmat(mseq',bits_num,1)',bits_num*SF,1); 
%------------------------------BPSK编码-----------------------------------% 
bits = randi(2,bits_num,1); %仿真比特数据 0 1
CFdata = 2*bits-3;%bpsk 调制 2->1 1->-1
%-------------------------------扩频:1 扩 SF--------------------------------%
CFdata_os = reshape(repmat(CFdata',SF,1),length(CFdata)*SF,1);

DS_data = CFdata_os' .* mseq_rp'; 
US = fs/Rb;
num_sampled = length(DS_data)*US;
DS_data_US = zeros(1,num_sampled); 
DS_data_US(1:US:end) = DS_data; 
h = rcosdesign(0.5,10,US,'sqrt');
DS_data_US_rcos = filter(h,1,DS_data_US);
%% 信道部分
% RF 中频 信道部分,只仿真到中频,不考虑射频部分
t = (0:num_sampled-1)*ts;
carrier_samp = cos(2*pi*real_fc*t+phi); % 发射机生成中频载波
TxSig = DS_data_US_rcos.*carrier_samp; % 扩频信号与中频载波相乘
% 产生干扰
Ps = var(TxSig(1:length(t)/2));% 信号功率
JamSig = f_produce_jam(JSRdB,Ps,JamType,t);
% 接收信号 = 干扰+噪声+原始信号
RxSig = awgn(TxSig,SNRdB,'measured'); % AWGN信道噪声
RxSigJam = RxSig + JamSig';
%% 接收机
%-------------------------------中频->基带--------------------------------%
data_rec_IF = RxSigJam.*carrier_samp;% 载波恢复
data_rec_bb = lowpass(data_rec_IF,0.1*Rb,fs);% 低通滤波
data_rec_bb = data_rec_bb - mean(data_rec_bb);
data_rec_MF_bb = filter(h,1,data_rec_bb);% 匹配滤波
DeS_data_DS = data_rec_MF_bb(1:US:end); % 降采样
DeS_data_DS = [DeS_data_DS(11:end),DeS_data_DS(1:10)];
%-------------------------------解扩:SF 解扩--------------------------------%
Inte = zeros(bits_num,1);
for i = 1:bits_num
     Inte(i) = (DeS_data_DS((i-1)*SF+1:i*SF)*mseq);
end
%-------------------------------解调--------------------------------%
bits_rec = sign(Inte);% 符号判决
errorNum = length(find(bits_rec - CFdata ~=0)); % 误码个数
% end
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值