资源简介

跳频信号参数估计。参数为跳速、跳时和跳频频率集。文档包括一个短时傅里叶变换函数,一个参数估计函数,一个参数估计相对误差随SNR的曲线图和一个时频分析图。

资源截图

代码片段和文件信息

function [y1y2y3] = FH_Parameter_Estimation(xF0Fshlengthdelta_f)
% function: 跳频信号参数估计
% y1: 跳频频率
% y2: 跳时
% y3: 跳速
% x: 接收信号
% F0: 中频
% Fs: 采样频率
% hlength: 短时傅里叶变换窗宽,须为奇数

%% STFT
xx = x;
x = hilbert(x‘);
H1 = window(@hamminghlength);
N = 2^nextpow2(hlength);
[TFR1TF]=tfrstft(x1:length(x)NH1);
TFR = abs(TFR1(1:N/2:));
F = F(1:N/2);
figure
t = 1:length(x);
contour(tFabs(TFR));
axis([0 max(t) 0 0.5]);
xlabel(‘时间 t/s‘);
ylabel(‘归一化频率 f/Hz‘);
title([‘STFT变换时频图(组合窗)‘]);
colormap gray;
set(gcf‘color‘‘white‘);
grid on;
%% 跳速估计
 %----------时频脊线----------%
 [vloc] = max(TFR);
loc = loc./size(TFR1);
figure
plot(loc);
%----------差分处理----------%
y = abs(diff(loc));
% figure
% plot(y);
%----------去噪--------------%
y = (y >= delta_f/Fs/2);
% figure
% stem(y);
%-------截取信号y中第一跳和最后一跳间的信号-----%
[vc] = find(y > 0);
yy = y(c(1):c(end));
% figure
% stem(yy);
%-------跳速估计-----------------%
num1 = sum(yy == 1);    % 跳频信号突变个数
num2 = sum(yy == 0);    % 跳频周期点数和   
time_point = (num2+num1-1)/(num1-1);
ft = time_point./Fs;            % 跳频周期
hopping_rate = 1/ft;                  % 跳速
%% 跳时估计
tm = sum(c)/length(c)-(length(c)-1)/2*ft*Fs;  % 从信号突变位置的均值计算跳时点
% tm = c(1);
if rem(tmft*Fs) == 0
    tm = 0;
end
hop_timing = tm/Fs;
%% 跳频频率估计
k = hop_timing*Fs+1;
if hop_timing < 0;
k = 1;
end
number = 1;             % 跳频频率集中的频率个数
while number < num1
    tmp = sum(TFR(:k:min([length(x) k+Fs/hopping_rate-1]))2);  
    k = k+Fs/hopping_rate;
    % value为一个跳频周期内最大的STFT值,loc为对应的频率点
    [v loc1] = max(tmp);
    fre_set(number) = loc1*Fs/N;
    number = number+1;
end
number = num1-1;
%% CZT方法对跳频频率估计精细化
x_czt = xx(round(hop_timing*Fs)+1:c(end));
for k = 1:number
    fw = delta_f; f0 = fre_set(k)-delta_f/2;
    delta_f1 = 10;            % 分辨率
    M = fw/delta_f1;          % 观察点数
    W = exp(-j*2*pi*fw/(M-1)/Fs);
    A = exp(j*2*pi*f0/Fs);
    Y = abs(czt(x_cztMWA));
    f = ((0:length(Y)-1)*fw/length(Y))+f0;
    [vloc] = max(Y);
    fre_set(k) = loc*fw/length(Y)+f0;
end
y1 = fre_set+Fs*floor(F0/Fs);
y2 = hop_timing;
y3 = hopping_rate;
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2334  2014-06-29 10:59  FH_Parameter_Estimation.m

     文件       5178  2014-06-26 09:38  Parameters_Estimation_Diff.m

     文件        799  2014-06-03 10:36  STFT.m

     文件       3242  2014-05-22 14:22  Time_Frequency_Analysis.m

     文件        163  2014-06-30 11:28  新建文本文档.txt

----------- ---------  ---------- -----  ----

                11716                    5


评论

共有 条评论