【信号类型识别】基于高阶累积量和GRNN神经网络的WIFI与3G/4G信号的识别

1.软件版本

matlab2017b

2.本算法理论知识

 

我们提取信号的8个特征参数。然后将这个参数通过GRNN神经网络,然后进行训练识别,获得最后的分类。

这里,8个参数分别为:

第1个参数:高阶累积量

 第2个参数:高阶累积量

 

第3~8个参数:

首先对信号计算希尔伯特变换,然后获得如下6个参数:

这六个参数均为统计量参数。

分别的含义是:

均方差比均值平方;

信号相位统计差

希尔伯特变换后的绝对值方差的倒数

希尔伯特变换后的FFT变换后的峰值

频率的方差

相位的方差

将上述8个参数作为GRNN神经网络的训练数据输入。

        广义回归神经网络的理论基础是非线性核回归分析,非独立变量y相对于独立变量x的回归分析实际上是计算具有最大概率值的y。设随机变量x和y的联合概率密度函数为f (x ,y),已知x的观测值为X,则y相对于X的回归,即条件均值为:

       GRNN通常被用来进行函数逼近。它具有一个径向基隐含层和一个特殊的线性层。第一层和第二层的神经元数目都与输入的样本向量对的数目相等。GRNN结构如图1所示,整个网络包括四层神经元:输入层、模式层、求和层与输出层。

3.部分源码

clc;
clear;
close all;
warning off;
addpath 'func\'
addpath 'func\wifi\'
addpath 'func\S3G\'

%1:WIFI
%2:3G
%3:Fsk广播信号
SNRs = [5:1:12];
Err  = zeros(size(SNRs));
MTKL = 50;
for jj = 1:length(SNRs)
SNR=SNRs(jj);
jj
for ii = 1:MTKL
rng(ii);
%%
SEL  = floor(3*rand())+1;
%产生需要测试的无线信号
%1:WIFI
if SEL == 1
   Signal = func_wifi(SNR); 
end
%2:3G
if SEL == 2
   Signal = func_3G_mobile(SNR); 
end
%3:Fsk广播信号
if SEL == 3
   Signal = func_2FSK(5000);
end
%采样化处理
Fs      = 1e6;   %信号采样率
fc      = Fs/32;  %信号采样率
nsamp   = 32;    %过采样率
delay   = 16;    %根号下升余弦的群时延
dataout = RRCsend(Signal,Fs,nsamp,delay); 
%基于SDR的上变频
if SEL == 1 | SEL == 2
   R = real(dataout).*cos(2*pi*fc*[1:length(dataout)]/Fs) + imag(dataout).*sin(2*pi*fc*[1:length(dataout)]/Fs);
end
if SEL == 3
   R = dataout;
end
%通过噪声信道
dataout = awgn(R,SNR,'measured');
%%
%以下是SDR的接收平台
Rec     = dataout;
%特征提取
char    = real(func_para_check(real(Rec),Fs,fc));
%识别
load Grnn.mat
T(ii) = round(sim(Net,char'));
SELss(ii) = SEL;
end
Err(jj) = length(find(T==SELss))/MTKL;
end
 
figure;
plot(SNRs,Err,'b-o');
grid on
xlabel('信噪比');
ylabel('识别正确率');
save D.mat SNRs Err

4.仿真结论

A05-50

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年5月23日
下一篇 2022年5月23日

相关推荐