散射场的平方幅度与观察角

问题描述 投票:0回答:1

我正在尝试生成论文 [Intelligent Reflecting Surfaces at Terahertz Bands: Channel Modeling and Analysis][1] 中的数字。图2如下。 [![在此处输入图片描述][2]][2]

我从我的代码中得到的如下。 [![在此处输入图片描述][3]][3]

以下是使用的代码

% Intelligent reflecting surfaces at terahertz bands: channel modelling and
% analysis
% figure 2

close all
clear all
clc

% setting latex inerpreter
set(groot,'defaulttextinterpreter','latex'); 
set(groot,'DefaultTextFontname', 'CMU Serif');
set(groot,'DefaultAxesFontName', 'CMU Serif');
set(groot,'DefaultTextFontSize',14)
set(groot,'DefaultAxesFontSize',14)

% phi: azimuth angle, theta: polar angle
% t: transmitter, r: receiver
% d: distance from origin
theta_r = 0:.1:90;   % receiver polar angel
theta_t = 30;        % transmitter polar angle
phi_r = 60;          % receiver azimuth angle
% amplitude of electric (E-field) of the incident plane
amplitudeE_i_squared = 1;            
f = 300e9;          % carrier frequency
D_r = 4;            % distances measured from the (0,0)th IRS element to Rx
c = 3e8;            % velocity of light
lambda = c/f;       % wavelength

%% 1. lx = ly = lambda/2, eq. 9
L_x = lambda/2;     % size of reflecting element in x
L_y = lambda/2;     % size of reflecting element in y

X = ((pi*L_x)/lambda) * sind(theta_r) * cosd(phi_r);
Y = ((pi*L_y)/lambda) * ( (sind(theta_r) * sind(phi_r)) - sind(theta_t));

F = cosd(theta_t)^2 * ( (cosd(theta_r).^2 * cosd(phi_r)^2) + ...
    sind(phi_r)^2);

E_s_NormSquared_eq9 = 10*log10( ((L_x*L_y)/lambda)^2 * ...
    (amplitudeE_i_squared/D_r^2) * F .* sinc(X).^2 .* sinc(Y).^2);

plot(theta_r,E_s_NormSquared_eq9,'b');
hold on

%% 2. lx = ly = lambda/2, eq. 10
E_s_NormSquared_eq10 = 10*log10( ((L_x*L_y)/lambda)^2 * ...
    (amplitudeE_i_squared/D_r^2) * F);

plot(theta_r,E_s_NormSquared_eq10,'k-.');

%% 3. lx = ly = 5*lambda, eq. 9
L_x = 5*lambda;
L_y = 5*lambda;

% lambda = 2*lambda;

X = ((pi*L_x)/lambda) * sind(theta_r) * cosd(phi_r);
Y = ((pi*L_y)/lambda) * ( (sind(theta_r) * sind(phi_r)) - sind(theta_t));

F = cosd(theta_t)^2 * ( (cosd(theta_r).^2 * cosd(phi_r)^2) + ...
    sind(phi_r)^2);

E_s_NormSquared_eq9 = 10*log10( ((L_x*L_y)/lambda)^2 * ...
    (amplitudeE_i_squared/D_r^2) * F .* ...
    sinc(X).^2 .* sinc(Y).^2);

% E_s_NormSquared_eq10 = 10*log10( ((L_x*L_y)/lambda)^2 * ...
% (amplitudeE_i_squared/D_r^2) * F);

plot(theta_r,E_s_NormSquared_eq9,'r');
% plot(theta_r,E_s_NormSquared_eq10,'r');

xlabel('$\theta_r [degrees]$');
ylabel('$||E_s||^2 [dB]$');
hl = legend('$L_x = L_y = \lambda/2$ (Eq. 9)',...
    '$L_x = L_y = \lambda/2$ (Eq. 10)',...
    '$L_x = L_y = 5\lambda$');
set(hl, 'Interpreter','latex')
xlim([min(theta_r) max(theta_r)]);

% saveas(gca, ['f2_', datestr(now,'ddmmyyyy'), '.png']);

我的绘图和z轴范围与论文中的不相似

你能指出我做的错误吗?谢谢。

[1]: https://arxiv.org/abs/2103.15239#:~:text=Intelligent%20Reflecting%20Surfaces%20at%20Terahertz%20Bands%3A%20Channel%20Modeling%20and%20Analysis,-Konstantinos%20Dovelos%2C %20Stylianos&text=An%20intelligent%20reflecting%20surface%20(IRS,for%20the%20severe%20propagation%20losses. [2]: https://i.stack.imgur.com/3atos.png [3]: https://i.stack.imgur.com/Fk004.png

matlab channels telecommunication
1个回答
0
投票

1.- 基数 sin 或 sinc 有两个定义:

虽然在信号处理中明显的定义是

sinc(x)=sin(x)/x
sinc
通常被定义为
sinc(x)=sin(pi*x)/(pi*x)

请理解,我在这里的主要目标是让代码生成具有一定连贯性的预期曲线,但可能需要进一步细化。

问题中提供的代码的以下更改使所有 3 个图表都符合预期曲线。

close all;clear all;clc

theta_r = [0:.1:90]; % [degree] receiver polar angle
theta_t =30;            % [degree] transmitter polar angle range
phi_r= 60;              % [degree] receiver azimuth angle range

% amplitude of electric (E-field) of the incident plane
Ei2 = 1;            
f = 300e9;              % [Hz]  carrier frequency
D_r = 4;                 % [m]  distances measured from the (0,0)th IRS element to Rx
c = 3e8;                  % [m/s] velocity of light
lambda = c/f;          % [m]  wavelength

%% 1. lx = ly = lambda/2, eq. 9
L_x = lambda/2;     % [m]  size of reflecting element in x 
L_y = lambda/2;     % [m] size of reflecting element in y

X = pi*((pi*L_x)/lambda) * sind(theta_r) * cosd(phi_r);
Y = pi*((pi*L_y)/lambda) * ( (sind(theta_r) * sind(phi_r)) - sind(theta_t));

F = cosd(theta_t)^2 * ( (cosd(theta_r).^2 * cosd(phi_r)^2) + sind(phi_r)^2);

Es2_eq9 = 10*log10( ((L_x*L_y)/lambda^2)^2 * (Ei2/D_r^2) * F .*sinc(X).^2 .* sinc(Y).^2*1/pi^4);

plot(theta_r,Es2_eq9,'b');
hold on
axis([0 90 -140 -40])

%% 2. Lx = Ly = lambda/2, eq. 10
Es2_eq10 = 10*log10( ((L_x*L_y)/lambda)^2 * (Ei2/D_r^2) * abs(F));

plot(theta_r,Es2_eq10,'k-.');

%% 3. Lx = Ly = 5*lambda, eq. 9
N=50
L_x = lambda/N;
L_y = lambda/N;

X = pi*((pi*L_x)/lambda) * sind(theta_r) * cosd(phi_r);
Y = pi*((pi*L_y)/lambda) * ( (sind(theta_r) * sind(phi_r)) - sind(theta_t));

F = cosd(theta_t)^2 * ( (cosd(theta_r).^2 * cosd(phi_r)^2) + sind(phi_r)^2);

Es2_eq9_2 = 10*log10(N*((L_x*L_y)/lambda^2)^2 * (Ei2/D_r^2) * F .* sinc(X).^2 .* sinc(Y).^21/pi^4);

plot(theta_r,Es2_eq9_2,'r');
grid on; grid minor;

xlabel('theta_r (degree)');ylabel('|E_s|^2 (dB)');

legend({'L_x = L_y = \lambda/2 (Eq. 9)',...
                  'L_x = L_y = \lambda/2 (Eq. 10)',...
                  ['L_x = L_y = lambda /' num2str(N) ]}, ...
                  'Location','northeast');

2.- X 和 Y 修改

标题

pi
符合
sinc
定义sinc(x)=sin(pix)/(pix)

计算|Es2|时加入一个因子

1/pi^4
以 dB 为单位,再次满足
sinc
定义,包括 pi.

如果您想知道信号处理中的原因

sinc(x)=sin(pi*x)/(pi*x)
请发布另一个问题。

3.- 电场必须为 [V/m]

否则就不是电场了。

Yet as defined in the paper, right after Figure.2

Es
的单位不是
[V/m]
而是
[V/m^3]

可能是开因子

(Lx*Ly/lambda)
应该是
(Lx*Ly/lambda^2)
.

然而更有可能的是开场

Lx
Ly
因子应该是
((Lx/lambda)*(Ly/lambda)/lambda)
.

电场单位的平方为

[V/m]
.

5.- 论文中的第三条曲线可能是错误的

Lx
Ly
都上升到
5*lambda
时,所产生的
abs(Es(theta_r))
不能像
Lx
Ly
lambda 的一小部分时那样保持平滑。

论文中的红色图表似乎更接近

Lx
Ly
包含一小部分
lambda
而不是几个
lambda
.

所以也许对于第 3 条曲线,要么论文图 2 中的第 3 条图不正确,要么不是

Lx=5*lambda
Ly=5*lambda
应该是
Lx=lambda/50
Ly=lambda/50
然后满足 Lx>>lambda Ly>>lambda.

考虑到图 2 中的第 3 条曲线可能不正确。

close all;clear all;clc

theta_r = [0:.1:90]; % [degree] receiver polar angle
theta_t =30;            % [degree] transmitter polar angle range
phi_r= 60;              % [degree] receiver azimuth angle range

% amplitude of electric (E-field) of the incident plane
Ei2 = 1;            
f = 300e9;              % [Hz]  carrier frequency
D_r = 4;                 % [m]  distances measured from the (0,0)th IRS element to Rx
c = 3e8;                  % [m/s] velocity of light
lambda = c/f;          % [m]  wavelength

% 1. lx = ly = lambda/2, eq.9
L_x = lambda/2;     % [m]  size of reflecting element in x 
L_y = lambda/2;     % [m] size of reflecting element in y

X = pi*((pi*L_x)/lambda) * sind(theta_r) * cosd(phi_r);
Y = pi*((pi*L_y)/lambda) * ( (sind(theta_r) * sind(phi_r)) - sind(theta_t));

F = cosd(theta_t)^2 * ( (cosd(theta_r).^2 * cosd(phi_r)^2) + sind(phi_r)^2);

Es2_eq9 = 10*log10( ((L_x*L_y)/lambda^2)^2 * (Ei2/D_r^2) * F .*sinc(X).^2 .* sinc(Y).^2*1/pi^4);

plot(theta_r,Es2_eq9,'b');
hold on; grid on
axis([0 90 -140 -40])

% 2. Lx = Ly = lambda/2 , eq.10
Es2_eq10 = 10*log10( ((L_x*L_y)/lambda)^2 * (Ei2/D_r^2) * abs(F));

plot(theta_r,Es2_eq10,'k-.');

% 3. Lx = Ly = 5*lambda , eq.10
N=1/5
L_x = lambda/N;
L_y = lambda/N;

X = pi*((pi*L_x)/lambda) * sind(theta_r) * cosd(phi_r);
Y = pi*((pi*L_y)/lambda) * ( (sind(theta_r) * sind(phi_r)) - sind(theta_t));

F = cosd(theta_t)^2 * ( (cosd(theta_r).^2 * cosd(phi_r)^2) + sind(phi_r)^2);

Es2_eq9_2 = 10*log10(N*((abs(L_x*L_y)/lambda^2)^2 * (Ei2/D_r^2) * F .* sinc(X).^2 .* sinc(Y).^2*1/pi^4));

plot(theta_r,Es2_eq9_2,'r');

xlabel('theta_r (degree)');ylabel('|E_s|^2 (dB)');

legend({'L_x = L_y = \lambda/2 (Eq. 9)',...
            'L_x = L_y = \lambda/2 (Eq. 10)',...
            ['L_x = L_y =' num2str(1/N) ' lambda' ]}, ...
            'Location','northeast');

© www.soinside.com 2019 - 2024. All rights reserved.