基于Matlab实现最小二乘窄带干扰消除

简介: 基于Matlab实现最小二乘窄带干扰消除

作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

在一些实际应用中需要从加性白噪声干扰的宽带有用信号中除去窄带干扰(narrowband interference,NBI)。比如,能穿透地面和植被障碍物的超宽带雷达工作在0.01到1GHz带宽上,用的是脉冲或者线性调频波形。为了得到高的分辨率,这些波形具有很高的带宽,覆盖在0.01到1GHz 范围上的至少100MHz。然而,这些频率范围被TV、FM广播电台、蜂窝电话和其它相对窄(少于1MHz)的射频信号源所引用,因而对超宽带雷达信号产生了窄带干扰。

⛄ 完整代码

close all;clear;clc

%% 参数设定与信号生成

%-宽带信号的生成

tr=0.4;tf=2;arf=2.3;N=4096;

Fs=2;Ts=1/Fs;

point=(-2):Ts:(6);

g=1./(exp(-arf*point/tr)+exp(arf*point/tf));

s=g(2:end)-g(1:end-1);% s为有用宽带信号

plot(s);axis tight;

set(gca,'XTick',1:1.8:16);

set(gca,'XTickLabel',{'-2','-1','0','1','2','3','4','5','6'});

xlabel('时间(ns)');

ylabel('幅度');

title('宽带信号');

Ks=fft(s,1024);

Ks=fftshift(Ks);

AKs=abs(Ks);

PKs=phase(Ks);

figure;

subplot(211);

plot(AKs);axis tight;

set(gca,'XTick',1:102:1024);

set(gca,'XTickLabel',{'-1','-0.8','-0.6','-0.4','-0.2','0','0.2','0.4','0.6','0.8','1'});

xlabel('频率(GHz)');

ylabel('幅度');

title('幅度');

subplot(212);

plot(PKs);axis tight;

set(gca,'XTick',1:102:1024);

set(gca,'XTickLabel',{'-1','-0.8','-0.6','-0.4','-0.2','0','0.2','0.4','0.6','0.8','1'});

xlabel('频率(GHz)');

ylabel('相位(rad)');

title('相位');

%-窄带干扰信号的生成

F=0.1*[0.6,1,1.8,2.1,3,4.8,5.2,5.7,6.1,6.4,6.7,7,7.8,9.3]';

L=length(F);

om=2*pi*F/Fs;

A=[0.5,1,1,0.5,0.1,0.3,0.5,1,1,1,0.5,0.3,1.5,0.5];

rand('seed',1954);

phi=2*pi*rand(L,1);

n=1:N;

y=A*sin(om*n+phi*ones(1,length(n)));

Ky=periodogram(y);

Ky=10*log10(Ky);

figure;

plot(Ky);axis tight;axis([1 N/2 -100 50]);

set(gca,'XTick',1:204:N/2+1);

set(gca,'XTickLabel',{'0','0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9','1'});

xlabel('频率(GHz)');

ylabel('功率(dB)');

title('干扰信号周期图');

%-高斯白噪声生成

v=wgn(1,N,-10);

%-原始信号生成

n0=1000;

x=zeros(1,N);

x(n0-4:n0-4+length(s)-1)=x(n0-4:n0-4+length(s)-1)+30*s;   %待传输宽带信号

figure;subplot(221);plot(x(n0-99:n0+100));axis tight;

set(gca,'XTick',1:100:200);

set(gca,'XTickLabel',{'950','1000','1050'});

xlabel('时间(ns)');

ylabel('幅度');

title('宽带信号');

x=x+v;    %加入高斯白噪声

subplot(222);plot(x(n0-99:n0+100));axis tight;

set(gca,'XTick',1:100:200);

set(gca,'XTickLabel',{'950','1000','1050'});

xlabel('时间(ns)');

ylabel('幅度');

title('受干扰信号');

x=x+y;    %加入窄带干扰信号

subplot(223);plot(x(n0-99:n0+100));axis tight;

set(gca,'XTick',1:100:200);

set(gca,'XTickLabel',{'950','1000','1050'});

xlabel('时间(ns)');

ylabel('幅度');

title('观测信号');

%% 干扰消除

D=600;

M=100;

rela=xcorr(x,M+D);%计算相关系数

r=zeros(M);

for c=1:M %构建输入信号的自相关矩阵R

   r(c,:)=rela((M+D+2-c):(2*M+D+1-c));

end

q=rela((M+2*D+1):(2*M+2*D));%计算输入与输出信号的互相关q

h=r\q';

h1=zeros(1,M);

for c=1:M

   h1(c)=h(M+1-c);%后向预测器系数

end

res=conv(h,x); %预测滤波器输出响应

res1=conv(h1,x);%后向预测滤波器输出响应


re=x;

re(D+1:end)=re(D+1:end)-res(1:N-D);  %NBI后的输出信号

re(1:D)=re(1:D)-res1((D+1):2*D);

subplot(224);plot(re(n0-99:n0+100));axis tight;

set(gca,'XTick',1:100:200);

set(gca,'XTickLabel',{'950','1000','1050'});

xlabel('时间(ns)');

ylabel('幅度');

title('滤波器输出信号');

%% 结果展示

Kx=periodogram(x);

Kx=10*log10(Kx);

hh=zeros(1,N);

hh(1)=1;

hh(D+1:D+length(h))=h*(-1);

Kh=periodogram(hh);

Kh=10*log10(Kh);

Kre=periodogram(re);

Kre=10*log10(Kre);


figure;

subplot(311);

plot(Kx);axis tight;axis([1 N/2 -100 50]);

set(gca,'XTick',1:204:N/2+1);

set(gca,'XTickLabel',{'0','0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9','1'});

xlabel('频率(GHz)');

ylabel('功率(dB)');

title('原信号周期图');

subplot(312);

plot(Kh);axis tight;axis([1 N/2 -100 50]);

set(gca,'XTick',1:204:N/2+1);

set(gca,'XTickLabel',{'0','0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9','1'});

xlabel('频率(GHz)');

ylabel('功率(dB)');

title('滤波器频率响应');

subplot(313);

plot(Kre);axis tight;axis([1 N/2 -100 50]);

set(gca,'XTick',1:204:N/2+1);

set(gca,'XTickLabel',{'0','0.1','0.2','0.3','0.4','0.5','0.6','0.7','0.8','0.9','1'});

xlabel('频率(GHz)');

ylabel('功率(dB)');

title('输出信号周期图');

figure;spectrogram(x,512,500,4096,2e9);

figure;spectrogram(re,512,500,4096,2e9);

⛄ 运行结果

⛄ 参考文献

[1]孟藏珍, 徐向东, 袁俊泉,等. 一种基于最小二乘的DS—SS系统抗窄带干扰方法[J]. 空军预警学院学报, 2006, 20(3):174-176.

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
7月前
|
机器学习/深度学习 传感器 算法
SO-LSSVM回归预测 | Matlab 蛇群优化最小二乘支持向量机回归预测
SO-LSSVM回归预测 | Matlab 蛇群优化最小二乘支持向量机回归预测
|
8月前
|
机器学习/深度学习 传感器 算法
POA-LSSVM分类预测 | Matlab 鹈鹕优化最小二乘支持向量机分类预测
POA-LSSVM分类预测 | Matlab 鹈鹕优化最小二乘支持向量机分类预测
|
3月前
|
算法
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
|
10天前
|
计算机视觉
MATLAB偏最小二乘回归(PLSR)和主成分回归(PCR)分析光谱数据
MATLAB偏最小二乘回归(PLSR)和主成分回归(PCR)分析光谱数据
|
15天前
|
算法
MATLAB最小二乘法:线性最小二乘、加权线性最小二乘、稳健最小二乘、非线性最小二乘与剔除异常值效果比较
MATLAB最小二乘法:线性最小二乘、加权线性最小二乘、稳健最小二乘、非线性最小二乘与剔除异常值效果比较
|
8月前
|
机器学习/深度学习 传感器 算法
Matlab 龙格库塔优化最小二乘支持向量机分类预测
Matlab 龙格库塔优化最小二乘支持向量机分类预测
|
8月前
|
机器学习/深度学习 传感器 算法
WOA-LSSVM分类预测 | Matlab 鲸鱼优化最小二乘支持向量机分类预测
WOA-LSSVM分类预测 | Matlab 鲸鱼优化最小二乘支持向量机分类预测
|
8月前
|
机器学习/深度学习 传感器 算法
INFO-LSSVM分类预测 | Matlab 向量加权优化最小二乘支持向量机分类预测
INFO-LSSVM分类预测 | Matlab 向量加权优化最小二乘支持向量机分类预测
|
5月前
|
机器学习/深度学习 算法
【MATLAB】数据拟合第13期-基于最小二乘支持向量机的拟合
【MATLAB】数据拟合第13期-基于最小二乘支持向量机的拟合
69 1
|
7月前
|
机器学习/深度学习 传感器 算法
SMA-LSSVM回归预测 | Matlab 黏菌优化最小二乘支持向量机回归预测
SMA-LSSVM回归预测 | Matlab 黏菌优化最小二乘支持向量机回归预测

热门文章

最新文章