📄 music1.m
字号:
%构造信号源%
Pd=2000; %符号数
Fd=1; %符号数率
Fs=4*Fd; %采样率
R=0.5; %升余弦滤波器的滚降系数,为0-1的实数
delay=5;
NO=1;
M=4; %码元为四进制
x1=randint(Pd,1,M); %产生Pd*1维的四进制随机序列
x2=randint(Pd,1,M);
x3=randint(Pd,1,M);
y1=modmap(x1,Fd,Fs,'qask',M); %把数字信号映射到模拟信号星座图(以供调制)
y2=modmap(x2,Fd,Fs,'qask',M);
y3=modmap(x3,Fd,Fs,'qask',M);
[rcv_a1,ti]=rcosflt(y1,Fd,Fs,'fir/sqrt/Fs',R,delay); %假设信道等效于升余弦滤波器
[rcv_a2,ti]=rcosflt(y2,Fd,Fs,'fir/sqrt/Fs',R,delay);
[rcv_a3,ti]=rcosflt(y3,Fd,Fs,'fir/sqrt/Fs',R,delay);
s1=amodce(rcv_a1,10,'qam'); %模拟基带调制器,输出复包络,完成正交幅度调制
s2=amodce(rcv_a2,10,'qam');
s3=amodce(rcv_a3,10,'qam');
save sig3.mat s1 s2 s3
%信号-60、30、45度入射时的空间谱%
%麦克风阵列接收信号%
i=sqrt(-1);
j=i;
m=8; %麦克风阵列中阵元个数
angle1=-23; %信号入射方向
angle2=11;
angle3=50;
th=[angle1;angle2;angle3];
lma=2; %入射信号波长
d=lma/2; %阵元间距
nn=1024; %采样数(快拍数)
SN1=20; %信号的信噪比
SN2=20;
SN3=20;
sn=[SN1;SN2;SN3];
degrad=pi/180;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
load sig3; %构造信号和噪声(高斯白噪声)
tt=1:nn;
S=[s1(tt)';s2(tt)';s3(tt)'];
nr=randn(m,nn); %产生8*1024的随机矩阵
ni=randn(m,nn);
U=nr+j*ni; %构造噪声源
Ps=S*S'/nn;
ps=diag(Ps); %输入信号功率
refp=2*10.^(sn/10); %参考信号功率
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
tmp=-i*2*pi*d*sin(th'*degrad)/lma;
tmp2=[0:m-1]';
a2=tmp2*tmp;
A=exp(a2); %阵因子
X=A*S2+U %阵列接收信号
Rxx=X*X'/nn; %接收信号协方差
C=inv(Rxx);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
th2=[-90:0.5:90];
for nnn=1:length(th2)
tmp=-i*2*pi*d*sin(th2(nnn)*degrad)/lma;
tmp2=[0:m-1]';
a2=tmp2*tmp;
A2=exp(a2);
den=A2'*C*A2; %分母
doa(nnn)=1/den; %空间谱函数
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
semilogy(th2,doa);
axis([-90 90 0.1 300]);
title('入射信号角度为-60、0、45度时的MUSIC算法DOA估计');
ylabel('MUSIC谱峰值(spectrum)');
xlabel('角度(angle)');
grid;
hold on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -