📄 datagen.m
字号:
function wave=datagen(waveform,TW,BW,IF0,FS,BUTsave,show1,show2);
j=sqrt(-1);
MHz=1e+6;
us=1e-6;
if waveform==1
if (isempty(TW)|TW==0)
warndlg('请输入脉宽参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(BW))
warndlg('请输入带宽参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(IF0))
warndlg('请输入中频参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(FS) | FS==0)
warndlg('请输入时钟参数!!!','错误');%文件夹出错
wave=0;
return;
else
f0=IF0*MHz;
B=BW*MHz;
T=TW*us;
fs=FS*MHz;
end
ts=1/fs;
wave = Lfm_gen(B,T,ts,f0);
elseif waveform==2
if (isempty(TW)|TW==0)
warndlg('请输入脉宽参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(BW))
warndlg('请输入带宽参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(IF0))
warndlg('请输入中频参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(FS) | FS==0)
warndlg('请输入时钟参数!!!','错误');%文件夹出错
wave=0;
return;
else
f0=IF0*MHz;
B=BW*MHz;
T=TW*us;
fs=FS*MHz;
end
ts=1/fs;
char='gauss';
if T/us==9 | T/us==12
kk = 7;
else
kk = 5;
end
nn = 2;
wave = Nlfm_gen(char,kk,nn,B,ts,T,f0);
elseif waveform==3
if (isempty(TW)|TW==0)
warndlg('请输入脉宽参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(IF0))
warndlg('请输入中频参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(FS) | FS==0)
warndlg('请输入时钟参数!!!','错误');%文件夹出错
wave=0;
return;
else
f0=IF0*MHz;
T=TW*us;
fs=FS*MHz;
end
ts=1/fs;
wave = SIN_gen(ts,f0,T);
else
if (isempty(TW)|TW==0)
warndlg('请输入脉宽参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(IF0))
warndlg('请输入中频参数!!!','错误');%文件夹出错
wave=0;
return;
elseif (isempty(FS) | FS==0)
warndlg('请输入时钟参数!!!','错误');%文件夹出错
wave=0;
return;
else
f0=IF0*MHz;
T=TW*us;
fs=FS*MHz;
end
ts=1/fs;
wave = SAW_gen(ts,f0,T);
end
if length(wave)==0
return;
else
axes(show1);
tt=(1:length(wave))*ts/us;
plot(tt,wave,'k');
xlabel('时间(us)','FontName','楷体_GB2312', 'FontSize',14);
ylabel('幅度(归一化)','FontName','楷体_GB2312', 'FontSize',14);
title('中频波形','FontName','楷体_GB2312', 'FontSize',18);
axis([0 max(tt) -1.1 1.1]);
zoom xon;grid;
fout=abs(fftshift(fft(wave)));
fftout=20*log10(fout/max(fout));
ff=-fs/2:fs/length(fout):fs/2-fs/length(fout);
axes(show2);
plot(ff/MHz,fftout,'k');
xlabel('频率(MHz)','FontName','楷体_GB2312', 'FontSize',14);
ylabel('幅度(dB)','FontName','楷体_GB2312', 'FontSize',14);
title('信号频谱','FontName','楷体_GB2312', 'FontSize',18);
zoom xon;grid;
axis([0 max(ff/MHz) -60 3]);
set(BUTsave,'Enable','on');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -