%%=========================时钟抖动仿真====================================
%---------------1、仿真加了时钟抖动之后的信号变化--------------------------
%---------------2、仿真信噪比随着时钟抖动的大小而变化----------------------
%---------------3、仿真信噪比随着采样频率的大小而变化----------------------
% designed by 20210204
% modified by 20210209
%-----时钟抖动Jitter-LFM调频信号
clc;
clear all;
close all;
T=10e-6; %时宽
B=30e6; %带宽
K=B/T; %调频斜率
Fs=2*B; %采样频率
Ts=1/Fs; %采样间隔
N=T/Ts; %采样点数
SNR=30; %信噪比
rad=pi/180; %转换成弧度
t=linspace(-T/2,T/2,N);
t_det=t+normrnd(0,1e-10,[1,N]);
St=exp(1j*pi*K*t.^2); %线性调频信号(时域)
St_det=exp(1j*pi*K*t_det.^2); %加时钟抖动后的线性调频时域信号
S=awgn(St,SNR); %加噪
S_det=awgn(St_det,SNR);
figure;
plot(t*1e6,St);
hold on;
plot(t*1e6,St_det);
legend('理想信号','加时钟抖动');
xlabel('Time in u sec');
title('线性调频信号');
grid on;axis tight;
SNR_out=10*log10(abs((S).^2)/abs((S_det-S).^2));
%% 1、仿真加了时钟抖动之后的信号变化
%-------------------画出频谱
freq=linspace(-Fs/2,Fs/2,N);
% plot(freq*1e-6,fftshift(abs(fft(St))));
% F=fftshift(abs(fft(S)));
% F_fp=fftshift(fft(S));
F_fp=fftshift(fft(St)); %线性调频信号(频域)
F_f=abs(F_fp);
F_f_det=abs(fftshift(fft(St_det)));
figure;
plot(freq,F_f);
hold on;
plot(freq,F_f_det);
legend('理想信号','加时钟抖动');
% plot((1238:600:1298),F_f);
% plot(freq*1e-6,F_fp);
xlabel('Frequency in GHZ');
title('线性调频信号的幅频特性');
grid on;axis tight;
F_p=unwrap(angle(F_fp));
% figure;
% plot(freq,F_p);
% xlabel('Frequency in GHZ');
% title('线性调频信号的相频特性');
% grid on;axis tight;
%% 2、仿真信噪比随着时钟抖动的大小而变化
k=[1e-2 1e-3 1e-4 1e-5 1e-6 1e-7 1e-8 1e-9 1e-10 1e-11 1e-12 1e-13 1e-14];
NN=length(k);
SNR_out2=zeros(1,NN);
for i=1:NN
t2_det=t+normrnd(0,k(i),[1,N]);
St2=exp(1j*pi*K*t.^2);
St2_det=exp(1j*pi*K*t2_det.^2);
S2=awgn(St2,SNR);
S2_det=awgn(St2_det,SNR);
SNR_out2(i)=10*log10(abs((S2).^2)/abs((S2_det-S2).^2));
end
figure;
plot(SNR_out2,'-*');title('信噪比随着时钟抖动的大小而变化');
xlabel('时钟抖动大小(×10的负n次方)'); ylabel('信噪比(dB)');
%% 3、仿真信噪比随着采样频率的大小而变化
Fs_v=[10e6 20e6 30e6 10e7 50e7 10e8 50e8];
Nv=length(Fs_v);
for j=1:Nv
Ts_v=1/Fs_v(j); %采样间隔
N_v=floor(T/Ts_v); %采样点数
t3=linspace(-T/2,T/2,N_v);
t3_det=t3+normrnd(0,1e-11,[1,N_v]);
St3=exp(1j*pi*K*t3.^2); %线性调频信号(时域)
St3_det=exp(1j*pi*K*t3_det.^2); %加时钟抖动后的线性调频时域信号
S3=awgn(St3,SNR); %加噪
S3_det=awgn(St3_det,SNR);
SNR_out3(j)=10*log10(abs((S3).^2)/abs((S3_det-S3).^2));
end
figure;
plot(SNR_out3,'-*');title('信噪比随着采样频率的大小而变化');
xlabel('采样频率大小(MHz)'); ylabel('信噪比(dB)');
- 1
- 2
前往页