✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
卫星导航接收机中的宽带干扰抑制空时自适应处理是一种技术,旨在通过利用阵列天线的空时自适应性能,对接收到的信号进行处理以抑制宽带干扰。
宽带干扰可能来自于其他无线通信系统、雷达系统或其他电磁辐射设备。它们的存在可能会干扰卫星导航信号,并降低接收机的性能和精度。
空时自适应处理基于多个接收天线组成的阵列结构。通过采集并分析各个天线接收到的信号,可以估计出干扰信号的特征,然后利用算法来调整各个天线接到的信号权重,实现对干扰信号的最小化。
空时自适应处理的主要步骤包括:
- 信号采样:利用阵列天线接收到的信号进行采样。
- 通道估计:使用接收到的信估计出各个天线接收通道的响应。
- 干扰估计:通过对接收信号进行处理,估计出干扰信号的特征。
- 接收器权重调整根据干扰估计结果,调整各个天线接收到的信号权重,以最小化干扰对导航信号的影响。
- 信号合成:利用调整后的各个天线接收到的信号,合成出干扰抑制后的输出信号。
通过这种空时自适应处理的方法,可以提高卫星导航接收机对宽带干扰的抵抗能力,从而提高定位和导航的精度和可靠性。
⛄ 部分代码
%{ ------------------ 含约束条件下的空时自适应处理算法 --------------------- 1.有用信号采用GPS L1信号 2.干扰信号采用线性调频信号 ------------------------------------------------------------------------- [1] 卫星导航定位接收机抗干扰技术研究,任超%}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear variables; close all; clc;% 全局变量global settings% 仿真参数设置settings = iniSettings();%----------------------- 产生有用信号、干扰信号、噪声 ---------------------% 产生GPS L1的中频信号Xs = GenGPSL1_t();% 有用信号的幅度 --- 输入信号的功率为1WAm = sqrt(settings.Ps);Xs = Am.*Xs;% 产生宽带干扰信号I_wb = GenWBInterSig();Ai = sqrt(settings.Pi);I_wb = Ai.*I_wb;% 噪声 --- 首先根据信噪比计算噪声功率Pn = settings.Ps/(10^(settings.SNR/10));An = sqrt(Pn/2);Noise = An.*randn(settings.RecNum,settings.SampleNum) ... + 1i.*An.*randn(settings.RecNum,settings.SampleNum);% 画出它们的功率谱密度 --- 但是因为采样点数比较少,所以画出来的图不够准确% PSD_Plot(Xs,I_wb);%----------------------- 阵列接收信号建模 ---------------------------------Alpha_mat = GenArraySteerVectorMatrix();% 信号矢量SigVector = [Xs;I_wb];% 阵列接收信号Yt = Alpha_mat*[Xs;I_wb] + Noise;%----------------------- 用空时导向矢量直接产生Xm -------------------------M = settings.RecNum; % 阵元数L = settings.SampleNum/2; % 数据量N = settings.orders; % 抽头数Xm = zeros(N*M,L); % Xm向量初始化% % 有用信号+干扰信号入射方向% Theta = [settings.Stheta,settings.Itheta(1:settings.WBInNum)];% % % 时间导向矢量% S_t = exp(1i*(2*pi*settings.IF*settings.ts).*(0:N-1).');% % for index = 1:length(Theta)% % theta = Theta(index)*pi/180;% % S_s = exp(1i*(2*pi*settings.d*sin(theta)/settings.lambda).*(0:M-1).');% % S = kron(S_s,S_t);% % Xm = S*SigVector(index,1:L) + Xm;% % end % for index = 1:length(Theta)% % % 加入噪声% Noise = An.*randn(N*M,L) + An.*1i.*randn(N*M,L); % Xm = Xm + Noise;%------------------------ 手动构造Xm矢量 ----------------------------------for RecIndex = 1:settings.RecNum for dataIndex = 1:L % 循环移位 temValue = circshift(Yt(RecIndex,:),-(dataIndex-1)); Xm((RecIndex-1)*N+1:RecIndex*N,dataIndex) = temValue(1:N).'; end % for dataIndex = 1:Lend % for RecIndex = 1:settings.RecNum%------------------------ 计算加权矢量 ------------------------------------% 协方差矩阵Rx = Xm*Xm'./L; S_st = exp(1i*(2*pi*settings.IF*settings.ts) .* (0:N-1).');% % 空域信号方向约束% S_ss = exp(1i*(2*pi*settings.d*sin(settings.Stheta*pi/180)/settings.lambda) ...% .* (0:settings.RecNum-1).');% S = kron(S_ss,S_st);% 功率倒置方法S = zeros(M*N,1);S(1) = 1;w_opt = (S'*inv(Rx)*S)^(-1)*inv(Rx)*S;%------------------- 只画出中频处的阵列响应图 -----------------------------Theta = -100:0.5:100;Value = zeros(1,length(Theta));for index = 1:length(Theta) theta = Theta(index)*pi/180; % 当前入射方向的空域导向矢量 S_s = exp(1i*(2*pi*settings.d*sin(theta)/settings.lambda) ... .*(0:settings.RecNum-1).'); % 当前角度的空时导向矢量 S = kron(S_s,S_st); Value(index) = w_opt'*S;end % for index = 1:length(Theta)Value_dB = 20*log10(abs(Value));figure(102)plot(Theta,Value_dB);grid on
⛄ 运行结果
⛄ 参考文献
[1] 卢丹,冯青,吴仁彪.基于空时自适应处理的GPS宽带干扰抑制技术[J].中国民航大学学报, 2007, 25(4):4.DOI:CNKI:SUN:ZGMH.0.2007-04-001.
[2] 郭美杉.GPS接收机空时自适应宽带干扰抑制算法研究[J].现代导航, 2011(2):5.
[3] 李鹏程,易翔,杨峰,等.卫星导航接收机空时自适应抗干扰技术研究[C]//第二届中国卫星导航学术年会电子文集.2011.