clc;close all;clear all;
%%通用参数设置
fs=10e6; %采样精度
N=10e6; %采样点数
N_fft = N; %FFT点数
fc=100e3;
f_code=10e3; %码元速率
A=14; %脉组包含脉冲个数
%%信号参数设置
pri0=1/f_code; %初始脉冲序列长度
pw=0.3*pri0; %脉冲宽度
primax=A*pri0;
ts=1/fs; %时间精度
T1=N*ts; %时间长度
t=0:ts:T1; %时间序列的生成
T=0; %初始时间
T_r=0; %初始脉冲重复周期
sn=0; %初始波形
%%生成抖动量
o0=0.3; %抖动的比例
pri=ones(1,A);
for i=2:1:A
pri(1,1)=pri0;
if pri(1,i-1)<primax
o=mod((i-1),A)*o0;
pri(1,i)=pri0*(1+o);
else
o=0;
pri(1,i)=pri0;
end
end
%%滑变PRI序列的生成
for m=1:A
T=T+pri(1,m);
end
percent=pw/T; %方波百分比生成
c=(cos(2*pi*fc*t)+1)/2; %载波生成
%%信号波形生成
for m=1:A
s=(1+square(2*pi*(t-T_r)/T,100*percent))/2;
sn=sn+s;
T_r=T_r+pri(m); %第i个Tr的变化
end
sn=sn.*c;
%%频谱生成
P_sn=fft(sn,N_fft);
mag1=abs(P_sn);
f1=(0:N_fft-1)*fs/N_fft;
%%绘图
figure(1);
plot(t,sn);
axis([0 0.05 -1 2]);
xlabel('时间/s');
ylabel('幅度/v');
title('重频滑变信号');
set(gca,'Fontsize',20);
legend('重频滑变信号');
grid on
figure(2);
plot(f1(1:N_fft/2),mag1(1:N_fft/2)*2/N_fft);
axis([0.3*1e5,1.7*1e5,0,0.1]);
title('重频滑变信号频谱');
set(gca,'Fontsize',20);
legend('频谱');
grid on