- ●图片
- 视频●
阵列信号处理MATLAB仿真
为了实现代码可读性高,调用方便,重写性强的特性,建立可重复应用于不同算法的信号生成模型如下:
clear all;close all;clc
%%%%%%%%%%%%参数设置%%%%%%%%%%%%
s.M = 16; %阵元数
s.lamda = 1; %设置波长
s.d = 1/2*s.lamda; %取1/2波长为阵元距
s.SNR = 10; %信噪比
s.INR = 10; %干燥比
s.Noise = 1; %高斯噪声方差
s.SigDOA = [30 45]; %信号
s.IntDOA = [0 50 70]; %干扰
s.Theta = -90:1:90; %扫描范围
s.L = 200; %快拍数/采样数
s.fc = 100; %信号频率
s.fs=10000; %采样频率
%%%%%%%%%%生成信号%%%%%%%%%%%%
s.SigNum = length(s.SigDOA); %信号数
s.IntNum = length(s.IntDOA); %干扰数
s.ds = exp(1j*2*pi*(0:s.SigNum-1)'*s.fc/s.fs*(0:s.L-1)); %信号´
s.di = randn(s.IntNum,s.L)+1j*randn(s.IntNum,s.L); %干扰
s.As = exp(-1j*2*pi*s.d/s.lamda*(0:s.M-1)'*sin(s.SigDOA*pi/180)); %信号方向矢量
s.Ai = exp(-1j*2*pi*s.d/s.lamda*(0:s.M-1)'*sin(s.IntDOA*pi/180)); %干扰方向矢量
s.Xs = sqrt(10^(s.SNR/10))*s.As*s.ds; %构造信号
s.Xi = sqrt(10^(s.INR/10))*s.Ai*s.di; %构造干扰
s.Nos = (randn(s.M,s.L)+1j*randn(s.M,s.L))/sqrt(2); %构造噪声
s.Y = s.Xs+s.Xi+s.Nos; %合成阵列接收信号
在构造信号时,考虑到工程应用中采样频率、信号频率和快拍的问题,将三者融合到所构造的信号中,方便工程应用。不同算法应用到的信号模型不同,例如,常规波束形成是对不含干扰的信号进行波束形成,构造接收数据就是构造信号加上噪声;最小均方差要求协方差中不含期望信号,构造接收数据就是构造干扰加上噪声。所以此处将信号、干扰和噪声分开构造,方便调用组合。