📄 ucadata_huang.m
字号:
function Y =ucadata2(azimuth,elevation,P,N,sig2,mk)
% Generates N snapshots of ULA sensor data
% Y=ucadata(theta,P,N,sig2,m,d);
% theta <- arrival angles of the m sources in degrees
% P <- The covariance matrix of the source signals
% N <- number of snapshots to generate
% sig2 <- noise variance
% m <- number of sensors
% d <- sensor spacing in wavelengths
% Y -> m x N data matrix Y = [y(1),...,y(N)]
% generate the A matrix
% ====== data for test ======= %
%azimuth = [ 5 20 30 ];
%elevation = [ 60 100 300 ];
%P = diag( [ 20 20 39 ] );
%N = 1000;
%sig2 = 1;
%m = 8;
% =========================== %
n = max( size( azimuth ) );
ksi = 2*pi*ones(mk, 1 )*sin( elevation*pi/180 ); % 2*1
r = 2*pi*[ 0: mk-1 ]'/mk; %
A = exp( j*ksi.*cos( ones(mk,1 )*azimuth*pi/180 - r*ones( 1, n) ) );
% generate the source signals
Ns = max( size( P ) );
s = zeros(N,Ns);
for m = 1:Ns
if m == 1
[s1,am] = anaask(N,64,0.15); % Amplitude Shift Keying (ASK) signal
s(:,m) = sqrt(0.5)*(s1+j*s1);
elseif m == 2
[s2,bm] = anabpsk(N,64,0.02);
s(:,m) = sqrt(0.5)*(s2+j*s2);
elseif m == 3
[s3,ifl] = anafsk(N,64,0.05);
s(:,m) = sqrt(0.5)*(s3+j*s3);
elseif m == 4
[s4,pm] = anaqpsk(N,64,0.03);
s(:,m) = sqrt(0.5)*(s4+j*s4);
else
[s5,fm] = fmlin(N,0.05,0.3,50);
s(:,m) = sqrt(0.5)*(s5+j*s5);
end
end
sw = s.';
s = ( sqrtm( P )') * sw ;
%generate the noise component
e = sqrt( sig2/2 )*( randn(mk, N ) + j*randn(mk, N ) );
% generate the ULA data
%y = A*s;
%temp = zeros( size( y ) );
%J = sqrt( sig2/2 )*( imnoise( temp,'salt & pepper',1) + j*imnoise( temp,'salt & pepper',1));
%J = sqrt( sig2/2 )*( imnoise( temp,'gaussian',0,1) + j*imnoise( temp,'gaussian',0,1));
%Y = y + J;
Y = A*s + e;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -