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所需的文件格式和内容格式修改。
内容可能存在疏漏,仅供参考,欢迎评论区指出


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部