⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music1.m

📁 采用matlab编写的music算法实现
💻 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 + -