58 lines
2.1 KiB
Mathematica
58 lines
2.1 KiB
Mathematica
![]() |
function [Type,Jam_data,Jam_pos] = SpectrumSense(rx_format,cfgUI)
|
||
|
addpath(genpath('.\JamDetect'));
|
||
|
|
||
|
NFFT = 2048;
|
||
|
PfH = 0.0001;
|
||
|
Pf = 0.001;
|
||
|
fs = 20e6;
|
||
|
operator = cfgUI.JamDetect;
|
||
|
% 干扰检测
|
||
|
y = fft(rx_format(1:NFFT,:));
|
||
|
data_Freuq = y(1:NFFT/2,:);
|
||
|
J = Selecdt_Detection(data_Freuq,Pf,PfH,32,operator);
|
||
|
Type = JudgeTypeJam(J);
|
||
|
|
||
|
% struct jam_data;
|
||
|
jam_data.Num_multi = 0;
|
||
|
jam_data.f_multi = 0;
|
||
|
jam_data.Power_multi = [];
|
||
|
jam_data.Num_band = [];
|
||
|
jam_data.f_start = [];
|
||
|
jam_data.f_end = [];
|
||
|
jam_data.f_wide = [];
|
||
|
jam_data.Power_band = [];
|
||
|
|
||
|
if strcmp(Type,'multi')
|
||
|
[jam_data.Num_multi,jam_data.f_multi,jam_data.Power_multi] = Multi_Parameter(data_Freuq.',J,fs,NFFT);
|
||
|
elseif strcmp(Type,'mono')
|
||
|
[jam_data.f_multi,jam_data.Power_multi] = Mono_Parameter(data_Freuq.',J,fs,NFFT);
|
||
|
elseif strcmp(Type,'band')
|
||
|
[jam_data.Num_band,jam_data.f_start,jam_data.f_end,jam_data.f_wide,jam_data.Power_band] = Band_Parameter(data_Freuq.',J,fs,NFFT);
|
||
|
elseif strcmp(Type,'band_mono')
|
||
|
[jam_data.f_mono,jam_data.Power_mono,jam_data.Num_band,jam_data.f_start,jam_data.f_end,jam_data.f_wide,jam_data.Power_band] = Band_Mono_Parameter(data_Freuq.',J,fs,NFFT);
|
||
|
elseif strcmp(Type,'band_multi')
|
||
|
[jam_data.Num_multi,jam_data.f_multi,jam_data.Power_multi,jam_data.Num_band,jam_data.f_start,jam_data.f_end,jam_data.f_wide,jam_data.Power_band] = Band_Multi_Parameter(data_Freuq.',J,fs,NFFT);
|
||
|
else
|
||
|
disp('No jam!');
|
||
|
end
|
||
|
Jam_data = jam_data.f_multi;
|
||
|
dt=1/fs;
|
||
|
data_abs = 10*log(abs(data_Freuq(J)));
|
||
|
J_freuq=(J-1)/(dt*NFFT)/10^6; % 采样间隔
|
||
|
ssf=(0:NFFT/2-1)/(dt*NFFT); % 频率矢量
|
||
|
data_db=10*log(abs(data_Freuq));
|
||
|
Jam_pos = J_freuq*10^6;
|
||
|
% 取对数
|
||
|
%作图
|
||
|
% plot(ssf,data_db); % 做幅度频谱图
|
||
|
% grid on;
|
||
|
% hold on;
|
||
|
% stem(Jam_pos,data_abs,'m--','filled','MarkerSize',2)
|
||
|
% xlabel('frequency');
|
||
|
% ylabel('magnitude');
|
||
|
% hold off;
|
||
|
% pause(0.5);
|
||
|
% close;
|
||
|
rmpath(genpath('.\JamDetect'));
|
||
|
end
|