⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 epromgen.m

📁 包内有产生线性调频波、非线性调频波的源码
💻 M
字号:
function wave=epromgen(fname,filestr)

if isempty(fname) | fname==0
    warndlg('未设置保存路径!','错误');%文件夹出错
    return;
end

wavenum=5;          %波形数目
Bit=12;             %量化位数
add0=16;            %开关误差设定
SW=5*240;

h=waitbar(0,'正在计算波形数据,请等待...');
set(h,'position',[200 200 280 50]);

%------------------------------------装入各原始波形数据------------------------------------------
wave=zeros(1,2^18*4);
SWdata=zeros(1,2^18*4);
for i=1:3
    filen=filestr{i};
    if isempty(filen) | filen==0
       
    else
      fp=fopen(filen,'r'); 
      data=load(filen);
      fclose(fp);
      SWdata((i-1)*2^12*4+1+add0:(i-1)*2^12*4+add0+SW+length(data))=1;
      wave((i-1)*2^12*4+1+add0+SW/2:(i-1)*2^12*4+add0+SW/2+length(data))=data;
      waitbar(i/(wavenum+10),h);
    end
end

filen=filestr{4};
if isempty(filen) | filen==0
       
else
   fp=fopen(filen,'r'); 
   data=load(filen);
   fclose(fp);
   SWdata(3*2^12*4+1+add0:3*2^12*4+add0+SW+length(data))=1;
   wave(3*2^12*4+1+add0+SW/2:3*2^12*4+add0+SW/2+length(data))=data;
   waitbar(4/(wavenum+10),h);
end

filen=filestr{5};
if isempty(filen) | filen==0
       
else
   fp=fopen(filen,'r'); 
   data=load(filen);
   fclose(fp);
   SWdata(311296+1+add0:311296+add0+SW+length(data))=1;
   wave(311296+1+add0+SW/2:311296+add0+SW/2+length(data))=data;
   waitbar(5/(wavenum+10),h);
end

data=wave+1;
data=round((2^(Bit-1)-1)*data);%按Bit位量化
waitbar(0.7,h);
%-----------------------------------------生成EPROM数据----------------------------------
i=1:2^18;
waveA=data(4*i-3);    waveB=data(4*i-2);    waveC=data(4*i-1);    waveD=data(4*i);
SW=SWdata(4*i-3);
waitbar(0.8,h);

temp1=bitand(waveA,4080);           %提取DA11-DA4
temp1=bitshift(temp1,4);            %将DA11-DA4移至Q15-Q8
temp2=bitand(waveB,4080);           %提取DB11-DB4
temp2=bitshift(temp2,-4);           %将DB11-DB4移至Q7-Q0
data1=bitor(temp1,temp2);           %合成EPROM1数据

temp1=bitand(waveC,4080);           %提取DC11-DC4
temp1=bitshift(temp1,4);            %将DC11-DC4移至Q15-Q8
temp2=bitand(waveD,4080);           %提取DD11-DD4
temp2=bitshift(temp2,-4);           %将DD11-DD4移至Q7-Q0
data2=bitor(temp1,temp2);           %合成EPROM2数据
waitbar(0.9,h);

temp1=bitand(waveA,15);             %提取DA3-DA0
temp1=bitshift(temp1,12);           %将DA3-DA0移至Q15-Q12
temp2=bitand(waveB,15);             %提取DB3-DB0
temp2=bitshift(temp2,8);            %将DB3-DB0移至Q11-Q8
data3=bitor(temp1,temp2);         
temp2=bitand(waveC,15);             %提取DC3-DC0
temp2=bitshift(temp2,4);            %将DC3-DC0移至Q7-Q4
data3=bitor(data3,temp2);         
temp2=bitand(waveD,15);             %提取DD3-DD0
data3=bitor(data3,temp2);           %合成EPROM3数据

data4=bitshift(SW,9);              %合成EPROM4数据
waitbar(0.95,h);
%-----------------------------------------生成EPROM数据-------------------------------------------
filenameA=[fname,'A'];
fp=fopen(filenameA,'w'); 
fwrite(fp,data1,'uint16');
fclose(fp);

filenameB=[fname,'B'];
fp=fopen(filenameB,'w'); 
fwrite(fp,data2,'uint16');
fclose(fp);

filenameC=[fname,'C'];
fp=fopen(filenameC,'w'); 
fwrite(fp,data3,'uint16');
fclose(fp);

filenameD=[fname,'D'];
fp=fopen(filenameD,'w'); 
fwrite(fp,data4,'uint16');
fclose(fp);

waitbar(0.99,h);
close(h);
msgbox([fname,'A-D文件保存完毕!!!']);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -