LABVIEW与MATLAB混合编程(关于labview和matlab中波形图横轴的不同的问题)
时间:10-02
整理:3721RD
点击:
第一幅图是在matlab运行后的图,第二幅图是在labview前面板实现的波形图,用的是相同的程序,是波束形成LMS算法的,第三幅图是与前面板对应的程序框图。我想问的是labview中波形图的横轴可以改为角度吗与第一幅图对应。
%% LMS波束形成的MATLAB仿真程序
clear all
close all
clc
j=sqrt(-1);
M=32; % 天线的数量
K=2; % 来源的数量
theta=[10 20]; % DOA
d=0.3; % 天线间距
N=5; % 样品
Meann=0; varn=1; % 噪声平均值,噪声方差
SNR=10; % 信噪比
INR=10; % 干扰比
pp=zeros(200,N);
pp1=zeros(200,N);
rvar1=sqrt(varn) * 10^(SNR/20); % 信号功率
rvar2=sqrt(varn) * 10^(INR/20); % 干扰力
for q=1:100
s=[rvar1*exp(j*2*pi*(500*0.001*[0:N-1]));rvar2*exp(j*2*pi*(2000*0.001*[0:N-1]+rand))]; % 产生源信号
A=exp(-j*2*pi*d*[0:M-1].'*sin(theta*pi/180)); % 方向矩阵
e=sqrt(varn/2)*(randn(M,N)+j*randn(M,N)); % 噪音
Y=A*s+e; % 收到的数据
% LMS算法
L=400;
de =s(1, :);
mu=0.0001;
w = zeros(M, 1);
for k = 1:N
y(k) = w'*Y(:, k); % 预测下一个样本和错误
e(k) = de(k) - y(k); % error
w = w + mu * Y(:,k)*conj(e(k)); % 适应重量矩阵和步长
end
end
% 使用LMS方法进行波束成形
beam=zeros(1,L);
for i = 1 : L
a=exp(-j*2*pi*d*[0:M-1].'*sin(-pi/2 + pi*(i-1)/L));
beam(i)=20*log10(abs(w'*a));
end
% plotting
figure
angle=-90:180/400:(90-180/400);
plot(angle,beam,'k'); grid on
title('波束图');xlabel('角度/degree');ylabel('幅度响应/dB');
axis([-45 45 -50 0]);
legend('LMS');
%% LMS波束形成的MATLAB仿真程序
clear all
close all
clc
j=sqrt(-1);
M=32; % 天线的数量
K=2; % 来源的数量
theta=[10 20]; % DOA
d=0.3; % 天线间距
N=5; % 样品
Meann=0; varn=1; % 噪声平均值,噪声方差
SNR=10; % 信噪比
INR=10; % 干扰比
pp=zeros(200,N);
pp1=zeros(200,N);
rvar1=sqrt(varn) * 10^(SNR/20); % 信号功率
rvar2=sqrt(varn) * 10^(INR/20); % 干扰力
for q=1:100
s=[rvar1*exp(j*2*pi*(500*0.001*[0:N-1]));rvar2*exp(j*2*pi*(2000*0.001*[0:N-1]+rand))]; % 产生源信号
A=exp(-j*2*pi*d*[0:M-1].'*sin(theta*pi/180)); % 方向矩阵
e=sqrt(varn/2)*(randn(M,N)+j*randn(M,N)); % 噪音
Y=A*s+e; % 收到的数据
% LMS算法
L=400;
de =s(1, :);
mu=0.0001;
w = zeros(M, 1);
for k = 1:N
y(k) = w'*Y(:, k); % 预测下一个样本和错误
e(k) = de(k) - y(k); % error
w = w + mu * Y(:,k)*conj(e(k)); % 适应重量矩阵和步长
end
end
% 使用LMS方法进行波束成形
beam=zeros(1,L);
for i = 1 : L
a=exp(-j*2*pi*d*[0:M-1].'*sin(-pi/2 + pi*(i-1)/L));
beam(i)=20*log10(abs(w'*a));
end
% plotting
figure
angle=-90:180/400:(90-180/400);
plot(angle,beam,'k'); grid on
title('波束图');xlabel('角度/degree');ylabel('幅度响应/dB');
axis([-45 45 -50 0]);
legend('LMS');
有大神能指导一下吗
求各位大神指点啊
你这个能仿真成功吗