首页/文章/ 详情

射频工程师进阶-MATLAB接收系统仿真

1年前浏览156

最近在学习用MATLAB,这次来演示一下用MATLAB进行射频接收系统仿真,对比一下。APPcad的仿真差异。

MATLAB仿真接收系统simlink仿真一下有两种方式,自下而上和自上而下两种方式。

  1. 自上而下

打开MATLAB的APP,选择RF budget analyzer

依次输入模块参数即可。

自上而下的过程中发现,系统计算参数没有把滤波器的参数计算进去,我换成了另一个器件。

选择导出参数,执行命令rfb


  1. 自下而上

就是把上面的每个模块参数语言话

elements(1) = rfelement('Name','TRSwitch','Gain',-1.3,'NF',2.3,'OIP3',37);

这个就是第一个模块,名字叫TRSwitch,增益-1.3dB 噪声系数2.3dB oip3 37dBm

依照每个模块的参数性质命名

elements(2) = rffilter('ResponseType','Bandpass',                       ...

'FilterType','Butterworth','FilterOrder',6,                         ...

'PassbandAttenuation',10*log10(2),                                  ...

'Implementation','Transfer function',                               ...

'PassbandFrequency',[Fcenter-Bwpass/2 Fcenter+Bwpass/2],'Zout',50,  ...

'Name','RF_Filter');

射频滤波器的响应方式,滤波器类型,滤波器阶数,截止点,中心频率,阻抗。

elements(3) = amplifier( 'Name','LNA','Gain',15,'NF',1.5,'OIP3',26,     ...

'Zin',Z);

elements(4) = amplifier( 'Name','Gain','Gain',10.5,'NF',3.5,'OIP3',23);

elements(5) = modulator('Name','Demod','Gain',-7,'NF',7,'OIP3',15,      ...

'LO',5.4e9, 'ConverterType','Down');

Fcenter = 400e6;

Bwpass  = 5e6;

elements(6) = rffilter('ResponseType','Bandpass',                       ...

'FilterType','Butterworth','FilterOrder',4,                         ...

'PassbandAttenuation',10*log10(2),                                  ...

'Implementation','Transfer function',                               ...

'PassbandFrequency',[Fcenter-Bwpass/2 Fcenter+Bwpass/2],'Zout',50,  ...

'Name','IF_Filter');

elements(7) = amplifier( 'Name','IFAmp','Gain',40,'NF',2.5,'Zin',Z);

elements(8) = amplifier('Name','AGC','Gain',17.5,'NF',4.3,'OIP3',36);

superhet = rfbudget( 'Elements',elements,'InputFrequency',5.8e9,        ...

'AvailableInputPower',-66,'SignalBandwidth',20e6)

输入频率,输出信号幅度,输入信号带宽

执行后的结果

结果与上面的自上而下基本相同(上文是7个器件,这里是8个器件)

自下而上可以导出模块模型

执行命令 show(superhet);

exportRFBlockset(superhet)

exportTestbench(superhet);

最后可以执行打包成一个模块,进行频谱监测。

上图是根据不同输入功率进行IIP3的仿真,这样看IIP更直观。

总结

与APPCAD相比,或者ADS的接收系统仿真比,MATLAB的仿真系统需要命令调用,对于射频工程师来说上手不熟悉,但是MATLAB的的仿真功能强大,给出的仿真结果更利于射频工程师进行设计参考。结果更直观。

对于系统分析来说,MATLAB的功能更强大一些。


来源:射频通信链
系统仿真MATLABADSUM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-28
最近编辑:1年前
匹诺曹
签名征集中
获赞 14粉丝 70文章 483课程 0
点赞
收藏
作者推荐

发射机各模块对系统EVM的影响

很多人在做发射链路设计的时候,对于发射链路的每个模块的贡献率不知道如何计算,例如相位噪声、功放的p-1如何选择,每个模块具体有多大的影响。对于EVM每一路的设计规划和功放的EVM恶化很难做评估。EVM根据公式计算,是一个累计的量,相位噪声,滤波器,功放都会对EVM产生累计影响。今天利用模型进行输入信号、功放、相位噪声进行发射系统的EVM累计评估。模型可以根据输入信号的参数及功放的线性系数进行仿真,比如输入信号可以设置略微16-QAM,SNR设置为40dB。功放的IIP3可以根据自己的功放设置,我这里设置是45dBm。相位噪声我设置的是偏10kHz,相位噪声为-85dBm/Hz功放的线性模型可以根据宽窄带设置,例如窄带用无记忆模型。宽带用记忆模型。(DPD仿真的重要模型)。先看16QAM,SNR=40 ,功放IIP3为40dBm.fs = 1000; %调制阶数M = 16;snrdB = 40;refConst = qammod(0:M-1,M,'UnitAveragePower',true);data = randi([0 M-1],1000,1); %调制模型modSig = qammod(data,M,'UnitAveragePower',true);noisySig = awgn(modSig,snrdB);amp = comm.MemorylessNonlinearity('IIP3',45,'AMPMConversion',0);pnoise = comm.PhaseNoise('Level',-85,'FrequencyOffset',10000,'SampleRate',fs);evmRMS =4.7861snrEst =26.3232改变变量,相位噪声恶化,偏10KHZ,相位噪声恶化到-70dBm/HZ星座图已经无法识别。evmRMS =14.0960snrEst =17.0216改变输入信号的峰均比,改为64QAMevmRMS =5.3279snrEst =25.4539改变功放线性输出,IIP3为40dBm。evmRMS =13.8105snrEst =17.0653EVM恶化,16QAM可识别。总结通过仿真,可以计算出,每个模块对整体EVM的贡献值。来源:射频通信链

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈