matlab 缺少awgn,MATLAB运行时出现Undefined function 'awgn' for input arguments of type 'double'....
MATLAB运行时出现Undefined function 'awgn' for input arguments of type 'double'.0
pp11992016.05.08浏览236次分享举报
如题,无线传感器网络一个仿真,完整代码如下
clear;clc;close all
%超声波载频
f=30e3;
%采样频率
fs=4*f;
%快拍数目
N=4096;
%超声波传播速度
wavespeed=340;
%波长
wavelength=wavespeed/f;
%阵元间距
d=wavelength/2;
%两个来波到达角
angle(1)=30*pi/180;
angle(2)=70*pi/180;
aoa(1)=(2*pi*d/wavelength)*cos(angle(1));
aoa(2)=(2*pi*d/wavelength)*cos(angle(2));
%天线阵元个数
M=8;
for i=1:M
A(i,1)=exp(1i*(i-1)*aoa(1));
A(i,2)=exp(1i*(i-1)*aoa(2));
end
%产生两个来波的基带信号;
Twhole=N/fs;
t=0:1/fs:Twhole-1/fs;
%随机产生两个信号的初始相位
S(1,:)=cos(2*pi*f*t+2*pi*rand(1,1)-pi);
S(2,:)=cos(2*pi*f*t+2*pi*rand(1,1)-pi);
%无噪声天线端接收信号矩阵
X=A*S;
%加入噪声
SNR=10;
X=awgn(X,SNR,'measured');
%接收信号协方差矩阵
Rxx=X*X';
%角度搜索间隔
Nsearch=1000;
anglescale=0:pi/2/Nsearch:pi/2;
for i=1:length(anglescale)
for j=1:M
esa(j,1)=exp(1i*(j-1)*(2*pi*d/wavelength)*cos(anglescale(i)));
end
%mvdr method
pmvdr(i)=abs(1/(esa'*pinv(Rxx)*esa));
pbart(i)=abs(esa'*Rxx*esa/(esa'*esa));
end
subplot(2,1,1)
plot(anglescale*180/pi,20*log10(pmvdr))
xlabel('DOA/°')
ylabel('PSD')
legend('mvdr')
subplot(2,1,2)
plot(anglescale*180/pi,20*log10(pbart))
xlabel('DOA/°')
ylabel('PSD')
legend('bartlett')
在老师的电脑上运行成功,在我的电脑上就会出现Undefined function 'awgn' for input arguments of type 'double'.
Error in test_doa_estimate_without_music (line 35)
X=awgn(X,SNR,'measured');这种错误
很急啊!!求大神!!!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)