FH-GFSK信号盲解调:MATLAB仿真实践

1.算法描述

GFSK 高斯频移键控调制是把输入数据经高斯低通滤波器预调制滤波后,再进行FSK调制的数字调制方式。它在保持恒定幅度的同时,能够通过改变高斯低通滤波器的3dB带宽对已调信号的频谱进行控制,具有恒幅包络、功率谱集中、频谱较窄等无线通信系统所希望的特性。因此,GFSK调制解调技术被广泛地应用在移动通信、航空与航海通信等诸多领域中。


在无线通信中,为了对抗信道衰落和保证传输信息的安全常采用跳频(Frequency Hopping, FH)通信技术。高斯移频键控(Gauss Frequency Shift Keying, GFSK)具有恒幅包络、功率谱集中、频谱较窄等无线通信系统所希望的特性。FH-GFSK则结合了上述两种技术的优点,因此,在数字通信中得到广泛应用。


本课题采用基于GNU Radio的软件无线电接收机首先对FH-GFSK信号进行采集,随后对采集到的信号进行分析,最终实现信号的盲解调。




m基于FH-GFSK信号的盲解调matlab仿真_无线通信

所以在进行盲估计时候,需要知道fc,和低通滤波器的参数,后面的是固定结构,就不用估计了。

然后题目中讲到:

m基于FH-GFSK信号的盲解调matlab仿真_3d_02

高斯滤波器参数,实际上就是获得对应的低通滤波器;

然后调制指数的计算公式为:

m基于FH-GFSK信号的盲解调matlab仿真_无线通信_03

因此, 估计调制指数,实际上就是获得fd和Rb,而Rb表示符号速率,这个只要信号接收到,就可以得到的,不用估计,所以就是估计fd。FSK调制是载波的频率随信息符号成正比的一种调制方式,当发送信息符号1时发射频率向上搬移fdHz,当发送信息符号-1时发射频率向下搬移fdHz。 然后我们这里是调频通信,因此估计fd。

所以,这里,忙解调的参数估计,本质就是就是频率估计和滤波器参数估计两个部分。




常见的数字调制方法如:

ASK ——幅移键控调制,把二进制符号0和1分别用不同的幅度来表示。

FSK ——频移键控调制,即用不同的频率来表示不同的符号。如2KHz表示0,3KHz表示1。

GFSK——高斯频移键控,在调制之前通过一个高斯低通 滤波器来限制信号的频谱宽度。

GMSK——高斯滤波最小频移键控,是在MSK(最小频移键控)调制器之前插入高斯低通预调制滤波器的一种调制方式



2.仿真效果预览

matlab2022a仿真结果如下:

m基于FH-GFSK信号的盲解调matlab仿真_3d_04m基于FH-GFSK信号的盲解调matlab仿真_3d_05m基于FH-GFSK信号的盲解调matlab仿真_低通滤波器_06



3.MATLAB核心程序

%计算带宽,通过计算-3db频谱范围作为带宽
[x0,t,ssf,yy] = plotspec(Rx,1/fs);
Y2            = 10*log10(yy/max(yy));
Y3            = Y2(length(Y2)/2:end);
indx          = find(Y3>=-3);
ssf2          = ssf(length(ssf)/2:end);
BB            = (ssf2(indx(end))-ssf2(indx(1)));
BT            = 100*BB/fs;
disp('调制指数');
set(handles.edit2,'string',num2str(BT));
Rfinal        = [];
for i = 1:R
    i
    RR           = selectRxFrame2(i,:);
    [Isignal_,h] = glpfsignal(real(RR),fs,BT);
    [Qsignal_,h] = glpfsignal(imag(RR),fs,BT);
    %滤波这块比较费时,我这里只截取一部分进行处理
    Isignal  = Isignal_(1:length(RR));
    Qsignal  = Qsignal_(1:length(RR));
    %输出二进制数据
    tmps = Isignal.*[diff(Qsignal,1),0] - Qsignal.*[diff(Isignal,1),0];
    %做下滤波处理
    tmps = tmps-mean(tmps);
    w    = hamming(128);
    tmps = conv(tmps,w);
    tmps = tmps-mean(tmps);
    Rfinal = [Rfinal,tmps];
end
 
tmps2= Rfinal>=0;
 
axes(handles.axes3);
plot(Rfinal)
axis([2000,20000,-2,3]);
axes(handles.axes4);
plot(tmps2)
axis([2000,20000,-1,2]);
01_153m






免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空