matlab生成任意波形发生器(AWG)所需波形文件程序
生活随笔
收集整理的這篇文章主要介紹了
matlab生成任意波形发生器(AWG)所需波形文件程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
matlab生成任意波形發(fā)生器(AWG)所需波形文件程序
環(huán)境
matlab2016a
簡介
使用Matlab生成任意波形發(fā)生器(AWG)所需波形文件,使得任意波形發(fā)生器產生你所需波形,本文使用高斯脈沖來舉例。
代碼
%任意波形發(fā)生器輸入波形程序Num1Period=100; %在任意波形發(fā)生器一個脈沖周期的點數Fs=16e9; %任意波形發(fā)生器的采樣率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所需的文件格式和內容格式修改。
內容可能存在疏漏,僅供參考,歡迎評論區(qū)指出
總結
以上是生活随笔為你收集整理的matlab生成任意波形发生器(AWG)所需波形文件程序的全部內容,希望文章能夠幫你解決所遇到的問題。