资源简介
MUSIC算法 [1] 是一种基于矩阵特征空间分解的方法。从几何角度讲,信号处理的观测空间可以分解为信号子空间和噪声子空间,显然这两个空间是正交的。信号子空间由阵列接收到的数据协方差矩阵中与信号对应的特征向量组成,噪声子空间则由协方差矩阵中所有最小特征值(噪声方差)对应的特征向量组成。这是我当时学music算法时自己总结并注释过,很好懂
代码片段和文件信息
clear all;
clc;
p=3; %入射信号数目
M=8; %阵元个数
L=1; %将阵列划分为相互重叠的L个子阵
m=M-L+1; %每个子阵中的阵元个数
fc=1e9; %入射信号中频为1G
DOA=[202122]/180*pi; %信号入射DOA
fs=3*fc; %采样频率
N=512; %采样个数
snr=10; %信噪比
T=1/fs; %采样时间间隔
c=3e8; %波速
d=c/fc*0.5; %阵元间距
t=0:T:(N-1)*T; %采样时间区间
s1=sqrt(2)*cos(2*pi*fc*t);
s3=2*s1;%信号数据
s2=sqrt(2)*cos(2*pi*(fc+2e8)*t);
s4=sqrt(2)*cos(2*pi*(fc+3e7)*t);
%s3=sqrt(2)*cos(2*pi*(fc+5e8)*t);
%s4=5*s1;
s5=sqrt(2)*cos(2*pi*(fc+9e8)*t);;
s6=sqrt(2)*cos(2*pi*(fc+1e7)*t);
ss=[s1;s2;s3;s4;s5;s6];
s=ss(1:p:);
%%%%%%%%计算阵列流形矩阵A
A=zeros(Mp);
for k=1:p
for kk=1:M
A(kkk)=exp(-j*2*pi*fc*(kk-1)*d*sin(DOA(k))/c);
end
end
y=A*s;
y=awgn(ysnr);%阵列接收数据
R=y*y‘/N;
[vdd]=eig(R); %对协方差矩阵进行特征值分解
%%%%%计算噪声子空间
if(dd(11)>dd(22))
Un=v(:p+1:M);
else
Un=v(:1:(M-p));
end
do=-90:90;
pu1=zeros(1length(do));
kg=1;
for k=-90:90
a=zeros(M1);
for kk=1:M
a(kk1)=exp(-j*2*pi*fc*(kk-1)*d*sin(k/180*pi)/c);
end
pu1(1kg)=abs(1/(a‘*Un*Un‘*a));
kg=kg+1;
end
hold on;
%测量谱峰值
DOA_guji1=[];
double(pu1);
double(DOA_guji1);
l=length(pu1);
for i=2:l-1
if (pu1(i)>pu1(i+1)&&pu1(i)>pu1(i-1)&&pu1(i)>1)
DOA_guji1=[DOA_guji1i-90-1];
end
end
DOA_guji1
rf=zeros(mm);
rb=ze
- 上一篇:相关向量机RVM_MATLAB
- 下一篇:matlab演化博弈代码
相关资源
- matlab演化博弈代码
- 相关向量机RVM_MATLAB
- 三次样条插值三弯矩算法matlab程序.
- 平方根无迹卡尔曼滤波matlab代码
- 基于MATLAB的三相PWM整流
- 基于matlab的孔隙率检测
- 无线传感器网络节能路由协议研究仿
- 基于MATLAB的格拉布斯准则
- 离散时滞系统MATLAB作图
- matlabR2017ab破解工具
- MATLAB实现图片柱面投影
- 开关型矢量中值滤波器matlab
- 拟合圆matlab代码
- 灰色预测的matlab代码
- 基于MATLAB的滤波器设计
- 梯度下降法matlab程序,需要手动输入
- 基于遗传算法的BP神经网络优化算法—
- 基于matlab的遍历文件夹中的所有子文
- 卡尔曼滤波的MATLAB实现
- 基于MATLAB的数字语音识别
-
BCH编码与解码的simuli
nk仿真 - 基于多频外差原理的仿真,matlab程序
- 线性规划.非线性规划.多目标规划Ma
- 模拟退火法Matlab代码[比赛已经用过保
- matlab特征点提取
- matlab简易画板GUI程序
- 稀疏表示内含完整的MATLAB代码
- 视频分帧matlab
- MATLAB前方交会函数程序
- DFIG风电模型
评论
共有 条评论