矩形波导计算matlab代码
利用Matlab实现矩形波导电磁场分布图的绘制

;0001/ob=b ;0001/oa=a 图构结场的刻时 t t% 度精样采 d% 长波导波为取里这 向方输传 c% 寸尺导波 b a% 长波止截模 01ET cl% 长波导波 gl% 长波/率频作工 0l f% 米毫为入输 米为位单算计有所 构结场导波形矩画% )t,f,0H,d,ob,oa(1tcrtsevawtcer noitcnuf niam% ;)30.0,9^01*48.9,1,6,61.01,68.22(1tcrtsevawtcer 单清序程附.C 2图
;))1y(ezis(sorez=yh ;)B*.1z-t*w(soc*.)1x*.a/.ip(soc*.0H=zh ;ip/.)1z*.B-t*w(nis*.)1x*.a/.ip(nis*.0H*.a*.B-=xh ;)1z,1y,1x(hsem% ;)z,y,x(dirghsem=]1z,1y,1x[ ;c:d/c:0=z ;b:d/b:0=y ;a:d/a:0=x ;)8^01*3(/B=w ;gl/ip*2=B ;gl=c ;)5.0^)2^)cl/0l(-1((/0l=gl ;flc esle ;nruter )cl>0l(fi ;)7-(^01*ip*4=u ;f/8^01*3=0l 率频止截 01ET% ;a*2=cl
�� �
�1-1�
�下如量参各中式上
�下如示表导推可量分场磁电其。a*2 为长波止截的模 01ET�b*a 为寸尺导波属金设。模 01ET 为模主的输传中导波形矩 .A 。定给部外由均刻时及率频作工、寸尺 导波。图布分场磁电的模 01ET 模主的导波形矩属金刻时意任出磁电导波形矩现实 baltaM 用利
图果效布分线力磁力电的维三 .C
。加叠像图许允不。布分场电制绘�数函 3reviuq 用 .4 。加叠像图许允。布分场磁制绘�数函 3reviuq 用 .3 。量分的场磁、场电到得 算计�1-1�式公照按。点标坐的场磁和场电定确别分�度精图绘的定给部外由 .2 。量参到得算计式�2-1�照参率频作工、寸尺导波的定给部外由 .1 �骤步的线力磁电画 baltaM 用 .B �2-1�
16qam_星形和矩形星座图调制解调matlab代码

16qam_星形和矩形星座图调制解调matlab代码%% ------------------------------------------------------------ % 软件无线电课程设计%% 方形、星形16QAM调制解调仿真%%%------------------------------------------------------------ %%主程序clcclear%% 定义参数fd=250*10^6; %码元速率250Mfs=2500*10^6; %滤波器采样率fc=2500*10^6; %载波频率2.5Gf=10000*10^6; %对载波采样data_len=200000; %数据长度sym_len=data_len/4; %码元序列长度M_QAM=16;%QAM数k=log2(M_QAM);SNR=1:12;%白噪声信噪比,%% ------------------------------------------------------------ bit_tx=randint(1,data_len);%产生随机序列echo off;rec_qam16=QamMod(bit_tx,16); %方形16QAM调制star_qam16=SrarQamMod(bit_tx); %星形16QAM调制base_rec=base_shape(fd,fs,f,rec_qam16); %基带成型滤波base_star=base_shape(fd,fs,f,star_qam16); %基带成型滤波for i=1:length(SNR) %信噪比从1dB到12dB计算误码率SNR_=i%方形映射16QAMrf_rec_qam16=CarrierMod(fc,f,base_rec); %载波调制rf_rec_qam16_n=awgn(rf_rec_qam16,SNR(i),'measured'); %加噪声[rec_qam16_rx base_rec_rx]=CarrierDemod(fd,fs,fc,f,rf_rec_qam16_n); %载波解调bit_rec_rx=QamDemod(rec_qam16_rx,16); %MQAM解调[num_qam16,perr_qam16_rec(i)]=biterr(bit_tx,bit_rec_rx);%误码率qam16_data_rec(i,:)=rec_qam16_rx;%scatterplot(rec_qam16_rx);%星形映射16QAMrf_star_qam16=CarrierMod(fc,f,base_star); %载波调制rf_star_qam16_n=awgn(rf_star_qam16,SNR(i),'measured'); %加噪声[star_qam16_rxbase_star_rx]=CarrierDemod(fd,fs,fc,f,rf_star_qam16_n); %载波解调bit_star_rx=StarQamDemod(star_qam16_rx); %MQAM解调[num_qam16,perr_qam16_star(i)]=biterr(bit_tx,bit_star_rx);%误码率qam16_data_star(i,:)=star_qam16_rx;%scatterplot(star_qam16_rx);end%% 理论误码率计算SNRtheo=0:0.1:length(SNR); for i=1:length(SNRtheo) SNRdec=10.^(SNRtheo(i)/10);theo_perr_qam16(i)=(3/8)*erfc(sqrt(SNRdec*2/5)); end%% 基带波形N=200;n=1:N;t=1:N*10;%发送端波形figure;stem(n,bit_tx(n)); title('发送序列'); %发送序列figure('Name','发送端基带信号');subplot(411);plot(t,real(base_rec(t))); title('方形映射-Q路'); subplot(412);plot(t,imag(base_rec(t))); title('方形映射-I路'); subplot(413);plot(t,real(base_star(t))); title('星形映射-Q路'); subplot(414);plot(t,imag(base_star(t))); title('星形映射-I路'); %接收端波形figure;subplot(211);stem(n,bit_rec_rx(n)); title('方形接收序列');subplot(212);stem(n,bit_star_rx(n)); title('星形接收序列');figure('Name','接收端基带信号');subplot(411);plot(t,real(base_rec_rx(t))); title('方形映射-Q路');subplot(412);plot(t,imag(base_rec_rx(t))); title('方形映射-I路');subplot(413);plot(t,real(base_star_rx(t))); title('星形映射-Q路');subplot(414);plot(t,imag(base_star_rx(t))); title('星形映射-I路');%基带眼图N1=20000;Tn=f/fd;eye_rex=base_rec(1:N1);eyediagram(eye_rex,Tn*4,Tn); title('方形基带眼图');eye_star=base_star(1:N1);eyediagram(eye_star,Tn*4,Tn); title('星形基带眼图');%% 接收端星座图%scatterplot(qam16_data_rec(12,:)); figure('Name','方形16QAM接收端星座图');for i=3:3:12subplot(2,2,i/3);plot(real(qam16_data_rec(i,:)),imag(qam16_data_rec(i,:)),'.'); xmax=5;axis([-xmax xmax -xmax xmax])title(['Snr=',num2str(SNR(i)),' dB']);endfigure('Name','星形16QAM接收端星座图');for i=3:3:12subplot(2,2,i/3);plot(real(qam16_data_star(i,:)),imag(qam16_data_star(i,:)),'.'); xmax=3;axis([-xmax xmax -xmax xmax])grid on; title(['Snr=',num2str(SNR(i)),' dB']);end%% 功率谱密度f_plot;%% 误码率分析%16QAM误码率曲线figure('Name','16QAM误码性能对比');% semilogy(SNRtheo,theo_perr_qam16); % hold on;semilogy(SNR,perr_qam16_rec,'*'); hold on;semilogy(SNR,perr_qam16_star,'o'); xlabel('SNR in dB');ylabel('Prb of Err');legend('方形16QAM','星形16QAM');title('16QAM误码性能对比');%-------------------------------------------------------------------------------%% 基带成型function base_info=base_shape(fd,fs,f,seq_16QAM) %平方根升余弦滤波器,滚降系数0.5,延迟3个采样点flt=rcosine(fd,fs,'sqrt',0.5);%I路和Q路seq_Q=real(seq_16QAM);seq_I=imag(seq_16QAM);%增采样R=fs/fd;up_seq_Q=upsample(seq_Q,R);up_seq_I=upsample(seq_I,R);%升余弦调制rcos_Q=conv(up_seq_Q,flt);rcos_I=conv(up_seq_I,flt);%提升rcos_Q_up=interp(rcos_Q,f/fs);rcos_I_up=interp(rcos_I,f/fs);base_info=rcos_Q_up+j*rcos_I_up;%--------------------------------------------------------------------%% 载波解调function [data_rx base_rx]=CarrierDemod(fd,fs,fc,f,receive)%% 分两路乘正交高频载波rc_length=length(receive);flt=rcosine(fd,fs,'sqrt',0.5);t=0:rc_length-1;rc_Q=receive .* sin(2*pi*fc*t/f); rc_I=receive .* cos(2*pi*fc*t/f);%减采样后根升余弦匹配滤波,注意对齐采样点down_Q=downsample([0 rc_Q],f/fs);down_I=downsample(rc_I,f/fs);low_Q_rcos=conv(down_Q,flt);low_I_rcos=conv(down_I,flt);base_rx=low_Q_rcos(1:length(low_I_rcos))+j*low_I_rcos;%两次根升余弦滤波延迟,定位初始信号位置%delay+1:end-delay-1R=fs/fd;delay=3*R*2;rc_Q_seq=(downsample(low_Q_rcos(delay+1:end-delay-1),R));rc_I_seq=(downsample(low_I_rcos(delay+1:end-delay-1),R)); %类型转换data_rx=rc_Q_seq+j*rc_I_seq;%--------------------------------------------------------------------------%% 载波调制function transmit=CarrierMod(fc,f,base)%载波调制t=0:length(base)-1;high_freq_Q=real(base) .* sin(2*pi*fc*t/f);high_freq_I=imag(base) .* cos(2*pi*fc*t/f);transmit=high_freq_Q+high_freq_I;%------------------------------------------------------------------------------%% QAM解调程序,将MQAM码元还原为二进制数据% 入口参数:data_QAM:QAM码元数据% M_QAM:MQAM中M的大小% 出口参数:二进制数据比特流%------------------------------------------------------------------------function data_out=QamDemod(data_QAM,M_QAM)k=log2(M_QAM);%每个M进制码元的bit数data_len=length(data_QAM);%码元长度%------------------------------------------------------------------- %QAM信号放缩至与发送端相同比例data_temp=data_QAM(find(real(data_QAM>0)));aver=mean(real(data_temp));data_Qam_temp=data_QAM/aver*(2^(k/2-1));%------------------------------------------------------------------------%平移到第一象限data_Qam_temp2=(data_Qam_temp+(2^(k/2)-1)*(1+j))/2; %---------------------------------------------------------------------- %将实部虚部分别映射为二进制数据%实部data_real=round(real(data_Qam_temp2));%实部判决data_real(find(data_real>(2^(k/2)-1)))=2^(k/2)-1;%大于2^(k/2)-1的数据判定为2^(k/2)-1 data_real(find(data_real<0))=0;%小于0的数据判为0 bit_real=abs(dec2bin(data_real))-'0'; %虚部data_imag=round(imag(data_Qam_temp2));%虚部判决data_imag(find(data_imag>(2^(k/2)-1)))=2^(k/2)-1;%大于2^(k/2)-1的数据判定为2^(k/2)-1 data_imag(find(data_imag<0))=0;%小于0的数据判为0 bit_imag=abs(dec2bin(data_imag))-'0'; %------------------------------------------------------------------------%还原为二进制比特流bit_rec=[bit_real,bit_imag]';data_out=reshape(bit_rec,1,data_len*k);%-------------------------------------------------------------------------------------------------------------%% QAM调制程序,实现二进制到MQam调制% 入口参数:binary:二进制数据% M_QAM:MQAM中M的大小% 返回参数:MQAM码元%------------------------------------------------------------------------function data_M = QamMod(binary,M_QAM)k=log2(M_QAM);%每个M进制码元的bit数data_len=length(binary);%比特长度binary_rec=reshape(binary,k,data_len/k)';%转化为data_len/k行,k列,的矩阵,以便转化为16进制M进制%计算实部data_str1=num2str(binary_rec(:,1:k/2));data_m_real=bin2dec(data_str1);%计算虚部data_str2=num2str(binary_rec(:,k/2+1:k));data_m_imag=bin2dec(data_str2);%实部虚部映射到MQamdata_M=((data_m_real*2-2^(k/2)+1)+j*(data_m_imag*2-2^(k/2)+1)).';%---------------------------------------------------------------------------------%% 星形16QAM映射function data_m16 = SrarQamMod(binary) %binary=randint(1,100);%产生随机序列data_len=length(binary);%比特长度binary_rec=reshape(binary,4,data_len/4)';%转化为data_len/4行,4列,的矩阵,以便转化为16进制data_str=num2str(binary_rec);data_dec=bin2dec(data_str);data_mm16=(floor(data_dec/8)+1).*exp(j*45/180*pi*mod(data_dec,8));data_m16=reshape(data_mm16,1,data_len/4);%------------------------------------------------------------------------------%% 星形16QAM解调function data_bit = StarQamDemod(qam_rev)%qam_rev=xing_qam16_noise(1:10);am=abs(qam_rev);%幅度判定am(find(am>2))=2;%幅度大于2的判定为2am(find(am<1.5))=1;%幅度大于2的判定为2%相位判定ang=angle(qam_rev)/pi*180;%将-180度到0度变为180度到360度ang(find(ang<0))=ang(find(ang<0))+360; ang_n=round(ang/45);ang_n(find(ang_n>7))=0;data_dec=8*(round(am)-1)+ang_n;%data_dec(find(data_dec>15))=15;%大于15的判定为15%data_dec(find(data_dec<0))=0;%小于0的判定为0data_bit_rec=dec2bin(data_dec);data_bit=reshape(data_bit_rec',1,length(qam_rev)*4)-'0';。
基于MATLAB计算软件的波导教学

基于MATLAB计算软件的波导教学赵霞【摘要】将MATLAB引入到导行电磁波的计算中,借助MATLAB强大计算与可视化功能,对常见的矩形波导、圆形波导的模式分布图、场结构图、基本特点进行分析验证,有助于学生对规则金属波导的基本规律及特点的理解.【期刊名称】《实验室科学》【年(卷),期】2010(013)006【总页数】3页(P118-120)【关键词】微波技术;MATLAB;波导【作者】赵霞【作者单位】兰州交通大学自动化与电气学院,甘肃,兰州,730070【正文语种】中文【中图分类】TP319在微波技术中,规则金属波导在通信、雷达、遥感、电子对抗和测量系统中有着广泛的应用[1]。
波导的计算可以通过麦克斯韦方程和边界条件来定量描述,但是在求解的过程中会涉及大量数学计算,并且电磁场的分布是不可见的,这就导致了学生在学习过程中感觉难于理解,内容抽象[2]。
为了使学生把主要精力集中在掌握电磁场的基本概念和基本理论上,从而提高学生学习的积极性和效率,可以借助先进的计算机软件,用数值计算方法来解决较为复杂的电磁场问题,避免繁琐的手工计算[3]。
MATLAB是一个适合多学科、多种工作平台的功能强大的可视化计算软件,它有着丰富的库函数、工具箱和仿真模块,可用于科学研究和解决各种具体工程设计与计算问题[4]。
因此,用MATLAB处理电磁场数值计算时,可以利用它的偏微分方程数值求解的工具箱和编制的程序来求解未知量,并绘出电磁场的分布图[5-6]。
本文通过MATLAB和有限元法结合[7-8],对波导中的相关问题进行了分析,将复杂的计算简单化,将抽象的电磁场可视化。
假设脊波导内为空气,且纵向均匀,采用纵向场法,波导内的场结构可以归结为求解 Helmholtz(亥姆霍兹)方程。
1 理论分析假设脊波导内为空气,且纵向均匀,采用纵向场法,波导内的场结构可以归结为求解Helmholtz(亥姆霍兹)方程。
上式中k=ω με为电磁波在无限媒质中的波数。
MATLAB有限元法求矩形波导前十个本征模的传播常数

MATLAB有限元法求矩形波导前十个本征模的传播常数本文将介绍如何使用MATLAB有限元法求解矩形波导的本征模传播常数,并展示前十个本征模的计算结果。
这将有助于理解矩形波导的基本性质和应用。
矩形波导是一种常见的微波传输线,用于将高频信号从一个点传输到另一个点。
为了使信号的传输更加稳定和可靠,矩形波导需要满足一些特定的条件,其中之一就是要求在波导中只传输特定的波模式,即本征模。
因此,矩形波导的本征模传播常数是重要的物理量。
在MATLAB中,可以使用有限元法求解矩形波导的本征模传播常数。
下面将介绍具体的计算步骤。
首先,我们需要定义矩形波导的几何参数,包括宽度W、高度H、长度L以及介质常数εr。
在本文中,我们取W=20mm,H=10mm,L=50mm,εr=2.2。
```matlabW = 20e-3; % 宽度H = 10e-3; % 高度L = 50e-3; % 长度eps_r = 2.2; % 介质常数```其次,我们需要定义模型中的节点数和单元数。
通常情况下,节点数和单元数越多,计算结果越精确,但计算时间也会更长。
在本文中,我们取每个方向上的节点数为20,总节点数为400,总单元数为342。
```matlabnx = 20; % x方向上的节点数ny = 20; % y方向上的节点数n = nx * ny; % 节点总数n_el = 4; % 每个单元的节点数nel = (nx-1)*(ny-1); % 单元总数```然后,我们可以生成节点的坐标和单元的连接关系矩阵。
具体实现方法可以参考MATLAB官方文档中“PDE 模型和几何对象构建”一章。
```matlabmodel = createpde();%% 创建矩形波导gd = [3 4 4 0 0 2 H H 0 W W 0]';sf = 'R1';ns = char('R1');ns = ns';g = decsg(gd,sf,ns);geometryFromEdges(model,g);%% 生成节点坐标和单元连接关系[p,e,t] = initmesh(g,'Hmax',0.005); % Hmax为最大单元边长```节点坐标和单元连接关系矩阵的生成将自动对模型进行离散化。
matlab矩形波

matlab矩形波
Matlab矩形波是指一种由相等间隔的方波组成的信号。
在Matlab中,我们可以使用“square”函数生成矩形波信号。
该函数
需要两个参数:信号周期和占空比。
其中,信号周期表示一个完整的方波的时间长度,而占空比表示方波的高电平时间占整个信号周期的比例。
例如,一个周期为T的矩形波信号的占空比为50%表示方波的高电平时间为T/2。
在Matlab中,我们可以使用如下代码生成一个
周期为2秒、占空比为25%的矩形波信号:
t = 0:0.01:10; % 时间向量,从0到10秒,时间分辨率为0.01秒
f = 0.5; % 信号周期为2秒
duty = 25; % 占空比为25%
y = square(2*pi*f*t,duty); % 生成矩形波信号
生成的矩形波信号y将在时间轴上以周期为2秒的间隔重复出现,每个周期内高电平时间为0.5秒,低电平时间为1.5秒。
- 1 -。
matlab矩形算法

matlab矩形算法Matlab矩形算法矩形算法是一种常用的数值方法,用于求解一元函数的定积分。
在Matlab中,使用矩形算法可以得到函数在给定区间上的近似定积分值。
矩形算法的基本思想是将函数的定积分转化为矩形的面积之和。
具体而言,将给定区间等分成多个小区间,然后在每个小区间上选择一个点,计算该点的函数值,并将小区间长度乘以函数值作为该小区间上矩形的面积。
最后,将所有矩形的面积相加,即可得到近似的定积分值。
在Matlab中,可以使用以下代码实现矩形算法:```matlabfunction result = rectangle_algorithm(f, a, b, n)h = (b - a) / n; % 计算小区间的长度result = 0; % 初始化结果值为0for i = 1:nx = a + (i - 0.5) * h; % 计算小区间中点的x坐标result = result + f(x); % 将小区间的面积累加到结果中endresult = result * h; % 最终的结果为所有小区间面积之和乘以小区间长度end```上述代码中,`f`代表要求解定积分的函数,`a`和`b`分别是定积分的下限和上限,`n`表示将区间等分成的小区间的个数。
该函数先计算小区间的长度`h`,然后使用循环遍历每个小区间,计算小区间中点的x坐标,并将该点的函数值累加到结果中。
最后,将结果乘以小区间长度,即可得到近似的定积分值。
使用矩形算法求解定积分的精度取决于小区间的个数。
当小区间的个数越多时,近似的定积分值越接近真实值。
因此,在使用矩形算法时,需要根据精度要求选择合适的小区间个数。
除了矩形算法,Matlab还提供了其他数值积分方法,如梯形算法和辛普森算法。
这些方法在计算定积分时都具有一定的近似性,但适用于不同的函数类型和精度要求。
因此,在选择数值积分方法时,需要根据实际情况进行选择。
矩形算法是一种常用的数值方法,用于求解一元函数的定积分。
16QAM-星形和矩形星座图调制解调MATLAB代码

%% ------------------------------------------------------------% 软件无线电课程设计%% 方形、星形16QAM调制解调仿真%%%------------------------------------------------------------%%主程序clcclear%% 定义参数fd=250*10^6; %码元速率250Mfs=2500*10^6; %滤波器采样率fc=2500*10^6; %载波频率2.5Gf=10000*10^6; %对载波采样data_len=200000; %数据长度sym_len=data_len/4; %码元序列长度M_QAM=16;%QAM数k=log2(M_QAM);SNR=1:12;%白噪声信噪比,%% ------------------------------------------------------------bit_tx=randint(1,data_len);%产生随机序列echo off;rec_qam16=QamMod(bit_tx,16); %方形16QAM调制star_qam16=SrarQamMod(bit_tx); %星形16QAM调制base_rec=base_shape(fd,fs,f,rec_qam16); %基带成型滤波base_star=base_shape(fd,fs,f,star_qam16); %基带成型滤波for i=1:length(SNR) %信噪比从1dB到12dB计算误码率SNR_=i%方形映射16QAMrf_rec_qam16=CarrierMod(fc,f,base_rec); %载波调制rf_rec_qam16_n=awgn(rf_rec_qam16,SNR(i),'measured'); %加噪声[rec_qam16_rx base_rec_rx]=CarrierDemod(fd,fs,fc,f,rf_rec_qam16_n); %载波解调bit_rec_rx=QamDemod(rec_qam16_rx,16); %MQAM解调[num_qam16,perr_qam16_rec(i)]=biterr(bit_tx,bit_rec_rx);%误码率qam16_data_rec(i,:)=rec_qam16_rx;%scatterplot(rec_qam16_rx);%星形映射16QAMrf_star_qam16=CarrierMod(fc,f,base_star); %载波调制rf_star_qam16_n=awgn(rf_star_qam16,SNR(i),'measured'); %加噪声[star_qam16_rx base_star_rx]=CarrierDemod(fd,fs,fc,f,rf_star_qam16_n); %载波解调bit_star_rx=StarQamDemod(star_qam16_rx); %MQAM解调[num_qam16,perr_qam16_star(i)]=biterr(bit_tx,bit_star_rx);%误码率qam16_data_star(i,:)=star_qam16_rx;%scatterplot(star_qam16_rx);end%% 理论误码率计算SNRtheo=0:0.1:length(SNR);for i=1:length(SNRtheo)SNRdec=10.^(SNRtheo(i)/10);theo_perr_qam16(i)=(3/8)*erfc(sqrt(SNRdec*2/5));end%% 基带波形N=200;n=1:N;t=1:N*10;%发送端波形figure;stem(n,bit_tx(n)); title('发送序列'); %发送序列figure('Name','发送端基带信号');subplot(411);plot(t,real(base_rec(t))); title('方形映射-Q路');subplot(412);plot(t,imag(base_rec(t))); title('方形映射-I路');subplot(413);plot(t,real(base_star(t))); title('星形映射-Q路');subplot(414);plot(t,imag(base_star(t))); title('星形映射-I路');%接收端波形figure;subplot(211);stem(n,bit_rec_rx(n)); title('方形接收序列');subplot(212);stem(n,bit_star_rx(n)); title('星形接收序列');figure('Name','接收端基带信号');subplot(411);plot(t,real(base_rec_rx(t))); title('方形映射-Q路');subplot(412);plot(t,imag(base_rec_rx(t))); title('方形映射-I路');subplot(413);plot(t,real(base_star_rx(t))); title('星形映射-Q路');subplot(414);plot(t,imag(base_star_rx(t))); title('星形映射-I路');%基带眼图N1=20000;Tn=f/fd;eye_rex=base_rec(1:N1);eyediagram(eye_rex,Tn*4,Tn); title('方形基带眼图');eye_star=base_star(1:N1);eyediagram(eye_star,Tn*4,Tn); title('星形基带眼图');%% 接收端星座图%scatterplot(qam16_data_rec(12,:));figure('Name','方形16QAM接收端星座图');for i=3:3:12subplot(2,2,i/3);plot(real(qam16_data_rec(i,:)),imag(qam16_data_rec(i,:)),'.');xmax=5;axis([-xmax xmax -xmax xmax])title(['Snr=',num2str(SNR(i)),' dB']);endfigure('Name','星形16QAM接收端星座图');for i=3:3:12subplot(2,2,i/3);plot(real(qam16_data_star(i,:)),imag(qam16_data_star(i,:)),'.');xmax=3;axis([-xmax xmax -xmax xmax])grid on; title(['Snr=',num2str(SNR(i)),' dB']);end%% 功率谱密度f_plot;%% 误码率分析%16QAM误码率曲线figure('Name','16QAM误码性能对比');% semilogy(SNRtheo,theo_perr_qam16);% hold on;semilogy(SNR,perr_qam16_rec,'*');hold on;semilogy(SNR,perr_qam16_star,'o');xlabel('SNR in dB');ylabel('Prb of Err');legend('方形16QAM','星形16QAM');title('16QAM误码性能对比');%------------------------------------------------------------------------------- %% 基带成型function base_info=base_shape(fd,fs,f,seq_16QAM)%平方根升余弦滤波器,滚降系数0.5,延迟3个采样点flt=rcosine(fd,fs,'sqrt',0.5);%I路和Q路seq_Q=real(seq_16QAM);seq_I=imag(seq_16QAM);%增采样R=fs/fd;up_seq_Q=upsample(seq_Q,R);up_seq_I=upsample(seq_I,R);%升余弦调制rcos_Q=conv(up_seq_Q,flt);rcos_I=conv(up_seq_I,flt);%提升rcos_Q_up=interp(rcos_Q,f/fs);rcos_I_up=interp(rcos_I,f/fs);base_info=rcos_Q_up+j*rcos_I_up;%--------------------------------------------------------------------%% 载波解调function [data_rx base_rx]=CarrierDemod(fd,fs,fc,f,receive)%% 分两路乘正交高频载波rc_length=length(receive);flt=rcosine(fd,fs,'sqrt',0.5);t=0:rc_length-1;rc_Q=receive .* sin(2*pi*fc*t/f);rc_I=receive .* cos(2*pi*fc*t/f);%减采样后根升余弦匹配滤波,注意对齐采样点down_Q=downsample([0 rc_Q],f/fs);down_I=downsample(rc_I,f/fs);low_Q_rcos=conv(down_Q,flt);low_I_rcos=conv(down_I,flt);base_rx=low_Q_rcos(1:length(low_I_rcos))+j*low_I_rcos;%两次根升余弦滤波延迟,定位初始信号位置%delay+1:end-delay-1R=fs/fd;delay=3*R*2;rc_Q_seq=(downsample(low_Q_rcos(delay+1:end-delay-1),R));rc_I_seq=(downsample(low_I_rcos(delay+1:end-delay-1),R)); %类型转换data_rx=rc_Q_seq+j*rc_I_seq;%--------------------------------------------------------------------------%% 载波调制function transmit=CarrierMod(fc,f,base)%载波调制t=0:length(base)-1;high_freq_Q=real(base) .* sin(2*pi*fc*t/f);high_freq_I=imag(base) .* cos(2*pi*fc*t/f);transmit=high_freq_Q+high_freq_I;%------------------------------------------------------------------------------%% QAM解调程序,将MQAM码元还原为二进制数据% 入口参数:data_QAM:QAM码元数据% M_QAM:MQAM中M的大小% 出口参数:二进制数据比特流%------------------------------------------------------------------------function data_out=QamDemod(data_QAM,M_QAM)k=log2(M_QAM);%每个M进制码元的bit数data_len=length(data_QAM);%码元长度%-------------------------------------------------------------------%QAM信号放缩至与发送端相同比例data_temp=data_QAM(find(real(data_QAM>0)));aver=mean(real(data_temp));data_Qam_temp=data_QAM/aver*(2^(k/2-1));%------------------------------------------------------------------------%平移到第一象限data_Qam_temp2=(data_Qam_temp+(2^(k/2)-1)*(1+j))/2;%----------------------------------------------------------------------%将实部虚部分别映射为二进制数据%实部data_real=round(real(data_Qam_temp2));%实部判决data_real(find(data_real>(2^(k/2)-1)))=2^(k/2)-1;%大于2^(k/2)-1的数据判定为2^(k/2)-1 data_real(find(data_real<0))=0;%小于0的数据判为0bit_real=abs(dec2bin(data_real))-'0';%虚部data_imag=round(imag(data_Qam_temp2));%虚部判决data_imag(find(data_imag>(2^(k/2)-1)))=2^(k/2)-1;%大于2^(k/2)-1的数据判定为2^(k/2)-1 data_imag(find(data_imag<0))=0;%小于0的数据判为0bit_imag=abs(dec2bin(data_imag))-'0';%------------------------------------------------------------------------%还原为二进制比特流bit_rec=[bit_real,bit_imag]';data_out=reshape(bit_rec,1,data_len*k);%-------------------------------------------------------------------------------------------------------------%% QAM调制程序,实现二进制到MQam调制% 入口参数:binary:二进制数据% M_QAM:MQAM中M的大小% 返回参数:MQAM码元%------------------------------------------------------------------------function data_M = QamMod(binary,M_QAM)k=log2(M_QAM);%每个M进制码元的bit数data_len=length(binary);%比特长度binary_rec=reshape(binary,k,data_len/k)';%转化为data_len/k行,k列,的矩阵,以便转化为16进制M进制%计算实部data_str1=num2str(binary_rec(:,1:k/2));data_m_real=bin2dec(data_str1);%计算虚部data_str2=num2str(binary_rec(:,k/2+1:k));data_m_imag=bin2dec(data_str2);%实部虚部映射到MQamdata_M=((data_m_real*2-2^(k/2)+1)+j*(data_m_imag*2-2^(k/2)+1)).';%---------------------------------------------------------------------------------%% 星形16QAM映射function data_m16 = SrarQamMod(binary)%binary=randint(1,100);%产生随机序列data_len=length(binary);%比特长度binary_rec=reshape(binary,4,data_len/4)';%转化为data_len/4行,4列,的矩阵,以便转化为16进制data_str=num2str(binary_rec);data_dec=bin2dec(data_str);data_mm16=(floor(data_dec/8)+1).*exp(j*45/180*pi*mod(data_dec,8));data_m16=reshape(data_mm16,1,data_len/4);%------------------------------------------------------------------------------%% 星形16QAM解调function data_bit = StarQamDemod(qam_rev)%qam_rev=xing_qam16_noise(1:10);am=abs(qam_rev);%幅度判定am(find(am>2))=2;%幅度大于2的判定为2am(find(am<1.5))=1;%幅度大于2的判定为2%相位判定ang=angle(qam_rev)/pi*180;%将-180度到0度变为180度到360度ang(find(ang<0))=ang(find(ang<0))+360;ang_n=round(ang/45);ang_n(find(ang_n>7))=0;data_dec=8*(round(am)-1)+ang_n;%data_dec(find(data_dec>15))=15;%大于15的判定为15%data_dec(find(data_dec<0))=0;%小于0的判定为0data_bit_rec=dec2bin(data_dec);data_bit=reshape(data_bit_rec',1,length(qam_rev)*4)-'0';。
矩形波导衰减常数的研究

关于矩形波导衰减常数的研究一、 摘要平常我们经常研究的都是理想条件下的波导,但是在实际条件下波导传输电磁场时会有不同程度的损耗,主要分为介质损耗和导体损耗。
本文通过理论分析和程序仿真研究矩形波导中的导体损耗的影响。
二、 引言在矩形波导中由导壁所引起的衰减是主要的,在此情况下已有的解不再正确,因为边界条件已经改变,现在导体上E 的 切向分量是很小的,而场只是从无损耗的解微有改变,或受到“微扰”,现在可先用无损耗的解求导体上H 的近似值,再求导体内耗散功率的近似值,即用“微扰法”求解。
三、 理论1.微扰法的理论依据:导体的导电率高,趋肤深度小,损耗低,有耗波导中场与理想波导中场差别不大,微扰。
2.求解步骤:(1)理想波导中场--》有耗波导中场;(2)有耗波导中场有指数衰减;(3) 传输功率:(4) 单位长度功率损耗:(5) 衰减常数计算:四、计算:1、矩形波导TE10模的衰减常数计算:(1)无耗波导的场为:(2)单位长度导体损耗:00()z z j zE x E e E e e γαβ---==00()z z j z H x H e H e e γαβ---==z t S t e P ds z H E P α20*ˆRe 21-=⋅⨯=⎰ P dzdPP L α2=-=PP L 2=αzy ea x E E γπ-⎪⎪⎭⎫ ⎝⎛=sin 0z x e a x E j H γπωμγ-⎪⎭⎫ ⎝⎛=sin 0z c z e a x E j k H γπωμ-⎪⎭⎫ ⎝⎛=cos 02200202121⎪⎪⎭⎫ ⎝⎛===⎰==f f b E R dy H R P P c s b z s a x LC x LC η ()⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛+=+==⎰==22020022014121f f Z a E R dx H H R P P c s a z x s b y LC y LC η ()⎥⎥⎦⎤⎢⎢⎣⎡+⎪⎪⎭⎫ ⎝⎛+=+++=====b a f f Z a E R P P P P P cs a x LC x LC b y LC y LC LC 2212202000η(3)单位长度功率:(4)导体衰减常数:2、按上述步骤可求得TM11模的衰减常数为:22332)/(122a b a b f fc ab R P P s LC c ++-==ηα 3、利用Matlab 对TE10和TM11模在不同材料,不同频率,不同尺寸下的计算得到如下结果:1)不同频率fc —3fc ,2)不同材料比较:红绿蓝青线依次表示铝金铜银,电导率依次增大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ez=zeros(size(z2));
quiver3(z2,x2,y2,ez,ex,ey,'r');
xlabel('传输方向');
ylabel('波导宽边a');
zlabel('波导窄边b');
hold off;
c=lg;
B=2*pi/lg;
w=B/(3*10^8);
x=0:a/d:a;
y=0:b/d:b;
z=0:c/d:c;
[x1,y1,z1]=meshgrid(x,y,z);
%mesh(x1,y1,z1);
hx=-B.*a.*H0.*sin(pi./a.*x1).*sin(w*t-B.*z1)./pi;
hz=H0.*cos(pi./a.*x1).*cos(w*t-z1.*B);
hy=zeros(size(y1));
quiver3(z1,x1,y1,hz,hx,hy,'b');
hold on;
x2=x1-0.001;
y2=y1-0.001;
z2=z1-0.001;
ex=zeros(size(x2));
利用Matlab实现矩形波导电磁场分布图的绘制(附源程序)
通过Matlab计算并绘出任意时刻金属矩形波导的主模TE10模的电磁场分布图。波导尺寸、工作频率及时刻均由外部给定。
A.矩形波导中传输的主模为TE10模。设金属波导尺寸为a*b,TE10模的截止波长为2*a。其电磁场分量可推导表示如下:
(1-1)
end
%------------------------------------------------------------------End Code----------------------------------
C.三维的电力磁力线分布效果图
图1
图2
C.附程序清单
rectwavestrct1(22.86,10.16,6,1,9.84*10^9,0.03);%main
function rectwavestrct1(ao,bo,d,H0,f,t)
%画矩形波导场结构所有计算单位为米输入为毫米
%f l0工作频率/波长
%lg波导波长%lc TE10模截止波长
%a b波导尺寸%c传输方向这里取为波导波长
%d采样精度%t t时刻的场结构图
a=ao/1000;
b=bo/1000;
lc=2*a; %TE10截止0^(-7);
if(l0>lc)
return;
else
clf;
lg=l0/((1-(l0/lc)^2)^0.5);
上式中各参量如下,
(1-2)
B.用Matlab画电磁力线的步骤:
1.由外部给定的波导尺寸、工作频率参照(1-2)式计算得到参量。
2.由外部给定的绘图精度,分别确定电场和磁场的坐标点。按照公式(1-1)计算得到电场、磁场的分量。
3.用quiver3函数,绘制磁场分布。允许图像叠加。
4.用quiver3函数,绘制电场分布。不允许图像叠加。