52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: 强干扰下跳频信号的参数估计 [打印本页]

作者: matlab的旋律    时间: 2018-5-8 12:24
标题: 强干扰下跳频信号的参数估计
close all
clear
clc


Fs = 10*10^3;      % 采样频率
Ts = 1/Fs;          % 采样周期
Fh = 20;           % 跳频频率
Th = 1/Fh;          % 跳频周期
SNR = 20;           % 信噪比
snr = 10^(SNR/10);  % 线性信噪比
f_set = [5 15 10 30 32 20 15 30 45 35 40 44]*10^2;        % 跳频频率集
noise_f = 24*10^2;                           %定频干扰频率
N = length(f_set);                                  % 跳频点数
t = 0:1/Fs:N*Th-1/Fs;                               % 时间
% 产生跳频信号,每个跳频周期对就一个频率
% 每个跳频周期的时间点为Th/Ts
for i = 1:N
    sig(1+(i-1)*fix(Th/Ts):i*fix(Th/Ts)) = sqrt(2)*cos(2*pi*f_set(i)*t(1+(i-1)*fix(Th/Ts):i*fix(Th/Ts)));
    noise_sig(1+(i-1)*fix(Th/Ts):i*fix(Th/Ts)) = sqrt(2)*cos(2*pi*noise_f*t(1+(i-1)*fix(Th/Ts):i*fix(Th/Ts)));%定频干扰
end

x = sig + noise_sig ;%加定频干扰
figure
subplot(211);
plot(t,x);
xlabel('时间 t/s');
ylabel('幅度');
title('跳频信号');
grid on;
subplot(212);
L = length(x);
NFFT = 2^nextpow2(L);
Y = abs(fft(x,NFFT));
f = (0:length(Y)-1)*Fs/length(Y);
plot(f(1:NFFT/2), 2*Y(1:NFFT/2));
xlabel('频率 f/Hz');
ylabel('|Y(f)|');
title('跳频信号频谱');
grid on;

x = x';
x = hilbert(x);
N = 2^nextpow2(length(x));
H = window(@hamming,1023);
[TFR,T,F]=tfrstft(x,1:length(x),N,H);


figure
contour(t,F(1:N/2),abs(TFR(1:N/2,: )));
axis([min(t), max(t), 0, 0.5])
ylabel('归一化频率 f/Hz');
xlabel('时间 t/s');
title('STFT变换时频图');
colormap
grid on;

f = F(1:N/2);
SQTFR = abs(TFR(1:N/2,: )).^2;

ff = sum(repmat(f,1,size(SQTFR,2)).*SQTFR,1)./sum(SQTFR,1);
figure
plot(t,ff)
xlabel('时间 t/ms');
ylabel('归一化频率 f/Hz');
title('时频重心曲线')

wf = wden(ff,'sqtwolog','s','mln',3,'haar');
figure
plot(t,wf)
xlabel('时间 t/ms');
ylabel('模值');
title('小波变换结果')








欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2