欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

matlab生成任意波形发生器(AWG)所需波形文件程序

发布时间:2024/1/18 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 matlab生成任意波形发生器(AWG)所需波形文件程序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

matlab生成任意波形发生器(AWG)所需波形文件程序

环境

matlab2016a

简介

使用Matlab生成任意波形发生器(AWG)所需波形文件,使得任意波形发生器产生你所需波形,本文使用高斯脉冲来举例。

代码

%任意波形发生器输入波形程序Num1Period=100; %在任意波形发生器一个脉冲周期的点数Fs=16e9; %任意波形发生器的采样率16G Sa/s Ts=1/Fs; ContinueTime=Ts*Num1Period %总共2400个点,有24个周期的脉冲,100点一个周期,6.25e-9 s= 6.25ns一个周期 Freq=1/ContinueTime%脉冲频率160MHz%高斯脉冲参数 t=linspace(-ContinueTime/2,ContinueTime/2,Num1Period); Lenth_t=length(t); tao=ContinueTime/10; t0=0;Info=[1,0,1,0,0,1,1,1,0,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1]; %2400个点,有24个脉冲波形 InfoBitNum=numel(Info); MSign=zeros(InfoBitNum,Lenth_t); %%%二阶高斯脉冲,PAM调制的0编码对应的波形 y0=(-0.5).*(t.^2-tao.^2).*exp(-1.*((t-t0)/tao).^2)./(((2*pi).^(1/2)).*(tao.^5)); y0=y0./max(y0)/2; %%%二阶高斯脉冲,PAM调制的1编码对应的波形 y=(-1).*(t.^2-tao.^2).*exp(-1.*((t-t0)/tao).^2)./(((2*pi).^(1/2)).*(tao.^5)); y=y./max(y); figure subplot(2,1,1) plot(t,y) grid on axis([-ContinueTime/2,ContinueTime/2,-0.2,1]) xlabel('t') ylabel('y')for i=1:InfoBitNumif Info(i)==1MSign(i,:)=repmat(y,1);else MSign(i,:)=repmat(y0,1);end endMSignDisplay=MSign.'; MSignDisplay=MSignDisplay(:); csvwrite('AWG.csv',MSignDisplay);%输出为.csv文件,改后缀名 MSignDisplay=MSignDisplay.';tDisplay=linspace(0,ContinueTime*InfoBitNum,Num1Period*InfoBitNum); subplot(2,1,2) plot(tDisplay,MSignDisplay) grid on axis([0,ContinueTime*InfoBitNum,-0.2,1]) xlabel('t') ylabel('AWGwave')

结果


由图上分别展示了你所生成的单个波形的图和1,0,1,0,0,1,1,1,0,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1的PAM调制后的波形

也生成了.csv文件,根据AWG所需的文件格式和内容格式修改。
内容可能存在疏漏,仅供参考,欢迎评论区指出

总结

以上是生活随笔为你收集整理的matlab生成任意波形发生器(AWG)所需波形文件程序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。