0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

切比雪夫综合法的Matlab程序

电子万花筒 来源:cnblogs 作者:cnblogs 2022-07-28 09:30 次阅读
在《自适应天线与相控阵》这门课中,了解到了关于理想低副瓣阵列设计的一些方法,其中切比雪夫等副瓣阵列设计方法是一种基础的方法,故将其设计流程写成maltab程序供以后学习使用。在此分享一下。此方法全称为道尔夫-切比雪夫综合法,简称为切比雪夫综合法,是一种工程实际中常用的可控制副瓣电平的阵列天线综合方法。切比雪夫阵列的特点是:

(1)等副瓣电平;

(2)在相同副瓣电平和相同阵列长度下主瓣最窄,为最佳阵列;

(3)单元数过多时,阵列两端单元激励幅度跳变大,使馈电困难。一般在雷达系统中,为了使其具有较高的抗干扰、抗反辐射导弹的能力,往往要求雷达天线的副瓣尽量低,而采用道尔夫-切比雪夫综合法以及进一步的泰勒综合法等设计的阵列天线就可以实现低副瓣。最早,道尔夫(C.L.Dolph)利用切比雪夫函数来逼近天线阵列的阵因子函数,得到了这种严谨规范的综合方法。而且,经过前人研究,当天线单元N≤13时,切比雪夫阵列从中间到两端的激励分布是单调减小的;而当N>13时,阵列两端单元的激励开始出现跳变。所以对于大型阵列来说一般不宜采用切比雪夫方法综合阵列。所以下面的Matlab程序正常工作在天线单元数N为3到13这个范围内。关于如何采用切比雪夫多项式去设计阵因子的具体技术步骤,另一篇文章较为详细地介绍了,此处不再赘述,大家可以在文尾或评论区查看。下面是可以综合设计天线单元从3到13单元的切比雪夫综合法的Matlab程序:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

%% --------------------------------------------------------------------------

% 切比雪夫低副瓣阵列综合

% 设计一个间距为d,单元数为N,主副瓣电平比为RdB,扫描角度为theta0的切比雪夫阵列。

% 2019.11.10

%--------------------------------------------------------------------------

%% 初始数据赋值

clear

clc

N = 13;%单元数N(3

ifrem(N,2)==0%求和项数M(奇偶不同)

M = N/2;

else

M = (N-1)/2+1;

end

RdB = 26;% 主副瓣比(dB值)

lamuda = 10;% 波长

d = 0.6*lamuda;% 单元间距

theta0 = 80/180*pi;% 扫描角度,相对于阵列排布方向的夹角

A = [1,0,0,0,0,0,0,0,0,0,0,0,0,0;% chebyshev多项式Tn(x) = cos(nu)= f(x)系数矩阵A

0,1,0,0,0,0,0,0,0,0,0,0,0,0;% 系数矩阵A每一行表示n,从n = 0开始

-1,0,2,0,0,0,0,0,0,0,0,0,0,0;% 列表示x的幂次方,从0次方开始

0,-3,0,4,0,0,0,0,0,0,0,0,0,0;

1,0,-8,0,8,0,0,0,0,0,0,0,0,0;

0,5,0,-20,0,16,0,0,0,0,0,0,0,0;

-1,0,18,0,-48,0,32,0,0,0,0,0,0,0;

0,-7,0,56,0,-112,0,64,0,0,0,0,0,0;

1,0,-32,0,160,0,-256,0,128,0,0,0,0,0;

0,9,0,-120,0,432,0,-576,0,256,0,0,0,0;

-1,0,50,0,-400,0,1120,0,-1280,0,512,0,0,0;

0,-11,0,220,0,-1232,0,2816,0,-2816,0,1024,0,0;

1,0,-72,0,840,0,-3584,0,6912,0,-6144,0,2048,0;

0,13,0,-364,0,2912,0,-9984,0,16640,0,-13312,0,4096];

% 初始矩阵赋值

I =zeros(1,M);% 电流幅度矩阵

S =zeros(M,M);% 阵因子系数矩阵

S_compare =zeros(1,M);% 系数比对矩阵

R = 10^(RdB/20);% 非dB 值的主副瓣比

x0 = 1/2*( (R+sqrt(R^2-1))^(1/(N-1))+...% 变量代换值x0

(R-sqrt(R^2-1))^(1/(N-1)) );

%% 求S、S_compare和I

% 从系数矩阵中择选出M个求和项对应的系数S(奇偶分开讨论)

fori= 1:M

ifrem(N,2)==0% 偶数情况

forj= 1:M% 第i行表示x的i次方,

S(i,j) = A(2*j,2*i);% 第j列表示第j个求和项系数(未除x0)

end

S_compare(i) = A(N,2*i);% 比对矩阵,即下标为N-1的chebyshev多项式的系数

else% 奇数情况

forj= 1:M

S(i,j) = A(2*j-1,2*i-1);

end

S_compare(i) = A(N,2*i-1);

end

end

% 通过S和S_compare系数比对求出电流幅度

fork = 1:M

i= M-k+1;

ifrem(N,2)==0% 偶数

I(i) = (S_compare(i)*x0^(2*i-1) -...

I*S(i,:)')/S(i,i);

else% 奇数

I(i) = (S_compare(i)*x0^(2*(i-1)) -...

I*S(i,:)')/S(i,i);

end

end

I = I/max(I);% 对I归一化

ifrem(N,2)==0

I_final = [fliplr(I),I];% 最终的单元排列(左右对称)

else

I_final = [fliplr(I),I(2:end)];

end

sprintf('天线单元归一化电流幅度:')

sprintf('%.3f ',I_final)

%% 获得最终阵列方向图S_P

theta_rad = 0pi;

theta = theta_rad*180/pi;

u =pi*d/lamuda*(cos(theta_rad)-cos(theta0));

S_P =zeros(1,length(theta_rad));% 最终方向图

fork = 1:M

ifrem(N,2)==0

S_P = S_P + I(k)*cos((2*k-1)*u);% 偶数

else

S_P = S_P + I(k)*cos(2*(k-1)*u);% 奇数

end

end

S_P_abs =abs(S_P);% 对S_P取绝对值

S_PdB = 20*log10(S_P_abs/max(S_P_abs));% 对S_P取dB值

%% 绘图

H = -ones(1,length(S_P_abs))*26; % 根据预先设置的主副瓣比得到的参考曲线

% 直角坐标系

figure('NumberTitle','off','Name','S Parameter (abs)-Plot');

plot(theta,S_P_abs,'b','LineWidth',1.5)

xlabel('theta(°)')

ylabel('|S| ')

title('chebyshev低副瓣阵列直角坐标图')

figure('NumberTitle','off','Name','S Parameter (dB)-Plot');

plot(theta,H,'r--','LineWidth',1.5)

holdon

plot(theta,S_PdB,'b','LineWidth',1.5)

xlabel('theta(°)')

ylabel('|S| dB')

title('chebyshev低副瓣阵列直角坐标图')

legend('预设副瓣参考曲线','方向图')

% 极坐标系

figure('NumberTitle','off','Name','S Parameter (dB)-Polar');

polarplot(theta_rad,H,'r--','LineWidth',1.5)

holdon

polarplot(theta_rad,S_PdB,'b','LineWidth',1.5)

thetalim([0 180]);

rmin = S_PdB(1,1);

rmax =max(S_PdB);

rlim([-50 rmax]);

title('chebyshev低副瓣阵列极坐标图')

legend('预设副瓣参考曲线RdB','方向图(dB)')

下面即为一个示例:单元间距d=0.6λ、单元数13、主副瓣电平比26dB、扫描角度80度(相对于单元排布方向)的切比雪夫阵列设计。归一化单元电流幅度比为:0.406 0.432 0.604 0.770 0.908 1.000 0.516 1.000 0.908 0.770 0.604 0.432 0.406

6d23f842-0e14-11ed-ba43-dac502259ad0.png

6d4bd3bc-0e14-11ed-ba43-dac502259ad0.png

6d55389e-0e14-11ed-ba43-dac502259ad0.png

----END 上文提到的另一篇文章。

阵列天线综合之切比雪夫低副瓣阵列设计 MATLAB(作者:OLIVERMAHOUT)

相控阵天线中,直线阵列作为重要的一种,有着极为广泛的应用。切比雪夫低副瓣阵列设计是一种典型的设计方法。

切比雪夫方法主要是实现低副瓣、窄波束:

其产生的核心如下:

6d68e6b4-0e14-11ed-ba43-dac502259ad0.png

我的理解:因为能量守恒,所有副瓣都一样的时候,能量会更多的集中在副瓣中,

主瓣最大增益也不会改变,这样就可以使主瓣窄,副瓣电平降低。G=4πS/λ2

6d86721a-0e14-11ed-ba43-dac502259ad0.png

结合切比雪夫函数,可以得到:

6d949e8a-0e14-11ed-ba43-dac502259ad0.png

6daad736-0e14-11ed-ba43-dac502259ad0.png

6dcc2558-0e14-11ed-ba43-dac502259ad0.png

当具体应用时,解决方案如下:

6ddac6c6-0e14-11ed-ba43-dac502259ad0.jpg

话不多说,其Matlab中的程序如下:

6deb6864-0e14-11ed-ba43-dac502259ad0.jpg

1

% 2019-11
% 切比雪夫低副瓣阵列馈电设计_1.0 (端射阵)

close all;
clear
% digits(3);

% 参数设置
lamda = 1; % 波长
d = lamda * 0.6; % d为阵元间距
theta0 = (120/180)*pi; % 扫描角度
theta = 0: 0.01 : pi; % Θ为方向角
u = pi*d*(cos(theta)-cos(theta0))/lamda;
%T = Chebyshev; % T为切比雪夫恒等式系数矩阵
N = 10; % N为直线阵的阵元数量,M为一侧的单元数(对称)
R0dB = 26; % R0dB为副瓣电平

if (mod(N,2)==0)
M = N / 2;
parity = 0; % parity为奇偶性,0为偶数
else
M = (N+1)/2;
parity = 1;
end

% 导入切比雪夫多项式
syms x;
T = [
1;
x;
2*x^2-1;
4*x^3-3*x;
8*x^4-8*x^2+1;
16*x^5-20*x^3+5*x;
32*x^6-48*x^4+18*x^2-1;
64*x^7-112*x^5+56*x^3-7*x;
128*x^8-256*x^6+160*x^4-32*x^2+1;
256*x^9-576*x^7+432*x^5-120*x^3+9*x;
512*x^10-1280*x^8+1120*x^6-400*x^4+50*x^2-1
];


% 换算副瓣电平R0
R0 = 10 ^ (R0dB / 20);

% 计算x0
x0 = ((R0 + sqrt(R0^2 -1))^(1/(N-1)) + (R0 - sqrt(R0^2 -1))^(1/(N-1))) * 1/2;

% 定义馈电幅度矩阵I
I = sym('I', [1 M]);

% 计算展开的方向图表达式
S = T(2) * I(1);

for k = 2 : M
S = S + T(2*k) * I(k);
end

%collect(S,x)
%vpa(S)

S_po = coeffs(S,x); % 含电流的方向图多项式系数
T_po = sym2poly(T(N)); % 标准的方向图多项式系数(反向了)
T_PO = zeros(1,M);
for k = 1 : M
T_PO(k) = T_po(2*k-1);
S_po(k) = S_po(k)/x0^(2*k-1);
end
% T_PO
% vpa(S_po)

% 系数比较求出电流大小
eq = sym('eq',[M 1]); % 系数比较恒等式
for k = 1 : M
eq(k) = S_po(k) == T_PO(M+1-k);
end

vpa(eq)
I_st = solve(eq);
I_ce = struct2cell(I_st);
i = zeros(M,1); % 最终的电流矩阵
for k = 1 : M
i(k) = I_ce{k,1};
i(k) = i(k);
end
for k = 2 : M
i(k) = i(k)/i(1); % 电流归一化
end
i(1) = 1; i
i=[1;0.89;0.706;0.485;0.357]; % 用来检验的数据

% 计算最终的阵因子
S_all = zeros(1,length(theta));
for k = 1 : M
S_all = S_all + i(k)*cos((2*k-1)*u);
end
SS = S_all;

% 画图 —— 直角坐标系
S_max = max(S_all); % 归一化处理
S_all = 20*log10(abs(S_all/S_max)); % 取分贝值
figure('NumberTitle', 'off', 'Name', 'S Parameter (dB) - Cartesian');
theta_ = theta * 180 / pi;
plot(theta_,S_all,'k','LineWidth',1.5);
grid off
xlabel(' heta (°)','FontSize',13);
ylabel('|S| dB','FontSize',12);
axis([0 182 -50 2]);
box on

% 画图 —— 极坐标系
figure('NumberTitle', 'off', 'Name', 'S Parameter (dB) - Polar');
S_pol = SS / max(SS);
polarplot(theta,S_all,'k','LineWidth',1.5);
thetalim([0 180]);
rmin = min(S_all);
rmax = max(S_all);
rlim([-50 rmax]);

6deb6864-0e14-11ed-ba43-dac502259ad0.jpg

上述测试的N=10的10个阵列,侧射阵(θ=0),副瓣电平SLL=26dB,结果如下:

6e029c1e-0e14-11ed-ba43-dac502259ad0.png

6e24aeee-0e14-11ed-ba43-dac502259ad0.png

经过比较,结果较为标准。

更改一下theta0的值,改为120读,即偏离法相30度:

6e326746-0e14-11ed-ba43-dac502259ad0.png6e41f4ae-0e14-11ed-ba43-dac502259ad0.png

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    179

    文章

    2946

    浏览量

    229438
  • 电平
    +关注

    关注

    5

    文章

    351

    浏览量

    39706
  • 阵列天线
    +关注

    关注

    3

    文章

    32

    浏览量

    10965

原文标题:MATLAB阵列天线之切比雪夫低副瓣阵列设计

文章出处:【微信号:ZGDZGCS,微信公众号:电子万花筒】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用FilterPro软件设计的带通滤波器和设定的差很多是为什么?

    我设置的带通滤波器通带:20-20KHz阻带:25KHz增益:10dB2级4阶-sallenkey拓扑,我看数据表中的数据是4k-23k左右的通带我实际测量是4k-19.5k
    发表于 09-02 06:58

    电力电容器手动投和自动投区别在哪

    电力电容器的手动投和自动投有以下几点区别: 一、操作方式: 1、手动投:需要操作人员手动控制开关或按钮来进行电容器的投(连接)和切除(断开)操作。 2、自动投
    的头像 发表于 06-26 14:16 383次阅读
    电力电容器手动投<b class='flag-5'>切</b>和自动投<b class='flag-5'>切</b>区别在哪

    什么是基尔霍电压定律 什么是基尔霍电流定律

    基尔霍定律是电路分析的基本原则,由德国物理学家基尔霍(Gustav Kirchhoff)在19世纪中叶提出。基尔霍定律分为基尔霍电压定律和基尔霍
    的头像 发表于 02-18 16:43 6381次阅读

    基尔霍电流定律的内容和表达式 基尔霍电流定律的作用对象是

    基尔霍电流定律(Kirchhoff's Current Law,简称KCL)是描述电路中电流分布和流动的定律之一,由德国物理学家基尔霍(Gustav Robert Kirchhoff)于1845
    的头像 发表于 02-04 13:54 1460次阅读

    曼编码怎么算 哈曼编码左边是0还是1

    曼编码是一种基于频率的变长编码方式,常用于数据压缩和信息传输领域。它是由美国数学家大卫·哈曼在1952年发明的,被广泛应用于无损压缩领域。 哈曼编码算法的基本思想是根据字符出现的频率构建一棵
    的头像 发表于 01-30 11:27 2035次阅读

    基尔霍电流定律体现了什么性质

    基尔霍电流定律(Kirchhoff's Current Law),又称为电流守恒定律或结点法则,是描述电流在交流和直流电路中的分布和变化规律的基本定律之一。基尔霍电流定律可以用来判断电流在电路中
    的头像 发表于 01-15 13:44 638次阅读

    基尔霍定律与什么有关

    基尔霍定律是电路分析中的重要定律,它是由德国物理学家基尔霍于1845年提出的,用于描述电路中电流和电压的分布及关系。基尔霍定律是电路理论中的基础,对于理解和分析电路的工作原理起着重要的作用
    的头像 发表于 01-10 16:59 806次阅读

    基尔霍定律体现了什么守恒

    基尔霍定律,也被称为基尔霍电流定律和基尔霍电压定律,是电路分析中最为基础和重要的定律之一。基尔霍定律体现了电流和电压在电路中的守恒原理。在本文中,我们将详细讨论基尔霍
    的头像 发表于 01-10 16:55 970次阅读

    变换的原理简述

    变换是一种对图像中形状的定位技术,常被用于提取图像中的直线,圆和椭圆等简单形状。霍变换运用两个坐标空间之间的变换,将在一个空间中具有相同形状的曲线或直线映射到另一个坐标空间的一个点上形成峰值,从而把检测任意形状的问题转化为统计峰值问题。
    的头像 发表于 12-19 16:56 1877次阅读
    霍<b class='flag-5'>夫</b>变换的原理简述

    MATLAB课程之第四章v3 程序设计(3)

    看看调试方法吧!掌握了方法也就能自行找出程序的错误了。 程序调试是程序设计的重要环节,也是程序设计人员必须掌握的重要技能。没有人能保证写出的程序
    的头像 发表于 12-03 08:10 363次阅读

    基尔霍定律适用于什么电路?

    基尔霍定律是电路分析的基本原理之一,适用于任何集总参数电路,包括交流电路和直流电路。下面将详细介绍基尔霍定律及其适用范围。 一、基尔霍定律的表述 基尔霍定律包括两个部分:基尔霍
    的头像 发表于 11-24 11:49 7791次阅读

    求助,滤波器设计向导的使用疑问

    在使用ADI官网上的滤波器设计向导进行一个多级低通滤波器时,方向其第一级是一级RC缓冲器,其增益是滤波器的总增益,可以把这一级省略,然后把增益分配到其他各级(即总增益分配在各级
    发表于 11-17 07:56

    嵌入式操作教程:4-6 无限冲激响应滤波器(IIR)算法(MATLAB 辅助,LCD显示)

    ,巴特沃斯型,型,还是其它什么型的滤波器。 (2)当选定一个型号后,就可以根据设计参数和这个滤波器的计算公式来确定其阶数、传输函数的表达式。通常这个过程中还存在预扭曲的问题(这
    发表于 11-16 15:08

    基尔霍定律及其应用详解

    基尔霍定律,又称为基尔霍(Kirchhoff)电流定律和电压定律,是电路理论中的重要定律之一。
    的头像 发表于 11-13 16:41 2751次阅读
    基尔霍<b class='flag-5'>夫</b>定律及其应用详解

    MATLAB如何实现PID?

    MATLAB是一种非常强大的工具,用于实现和分析PID(比例-积分-微分)控制器。在MATLAB中,您可以使用控制系统工具箱来设计、模拟和调整PID控制系统。以下是一般步骤,演示如何在MATLAB
    的头像 发表于 11-04 08:00 2417次阅读
    <b class='flag-5'>MATLAB</b>如何实现PID?