• 基于CGAN增强陷窄带干扰信号的通信系统测试


    一、系统框架

    通信系统的一般框架如下图所示。实际通信系统不一定包含图中的所有环节,本设计是数字基带传输系统,故没有上变频、下变频部分,同样也不需要低通滤波。另外,在上采样后,对信号添加了AWGN和窄带干扰,下采样后陷波陷掉窄带干扰,然后进行解调译码等,在不同的参数下,测试系统的抗干扰性能。当系统有频率偏移时,采用PLL锁相环对频偏进行矫正,测试不同频偏下的误码率,锁相会引入相位模糊,通过导频解决。
    在这里插入图片描述
    如图所示为本设计的系统结构。随机产生的二进制序列经过QPSK、成型滤波、上采样后,直接下采样得到的信号clean_signals为CGAN的标签。上采样后的信号经过加性高斯白噪声、窄带噪声,加频偏后通过匹配滤波、下采样,后陷波、载波同步、消除相位模糊。如果不经过锁相,那么陷波后的信号即为CGAN网络的输入,如果经过锁相,那么经过载波同步、消除相位模糊的信号为CGAN网络的输入。输入信号学习标签,生成的信号再送入MATLAB计算误码率。
    在这里插入图片描述

    二、系统参数

    参数内容
    调制方式QPSK
    符号速率2e8
    成型滤波器点数8
    匹配滤波器点数8
    带宽100M
    窄带范围[4e7,5e7](10M)
    陷波带宽10M/15M/20M
    上采样倍数2/4
    采样频率4e8/8e8
    信噪比8dB/5dB
    信干比-10dB/-20dB/-30dB
    频偏0/2000/4000/5000
    EbN08dB

    三、基础知识

    1.EbN0与SNR关系

    EbN0和SNR的关系在MATLAB的官方文档中有具体的说明,详见help awgn(在命令行输入即可):
    在这里插入图片描述
    EbN0 = SNR + 10log10(oversampled rate)-10log10(k),其中oversampled rate为上采样倍数,k为每个符号包含的比特数,当上采样倍数为2且调制方式为QPSK时,EbN0等于SNR。
    在MATLAB中,我们可以使用bertool工具箱计算不同EbN0下的误码率。 在本设计中,误码率要求为10e-2,由图知EbN0大于等于4dB即可,由于bertool中的理论仿真是没有干扰的,所以我们设计中,保证EbN0大于7dB或者8dB即可。
    在这里插入图片描述

    2.锁相原理(参考MATLAB官方文档)

    (1)载波同步

    载波同步是基于锁相环技术使本地获取和载波同频同相的参考信号,用来解调信号。载波同步就是对本地参考信号进行频率和相位偏差的补偿,进而实现本地参考信号和载波信号同频同相。
    comm.CarrierSynchronizer System object™ 用于补偿使用单载波调制方案的信号中的载波频率和相位偏移,创建并调用即可。载波同步器算法对于 BPSK、QPSK、OQPSK、8-PSK、PAM 和QAM 兼容。详见help comm.CarrierSynchronizer。

    % 校正接收信号中的相位和频率偏移
    carrierSync = comm.CarrierSynchronizer('SamplesPerSymbol',1,'Modulation','QPSK');
     % 对输入信号的频率偏移进行补偿
    syncSignal(:,jj) = step(carrierSync,sig_r_trap(:,jj)); 
    
    • 1
    • 2
    • 3
    • 4

    (2)相位模糊

    同步算法会产生相位模糊问题,同步器引入的潜在相位模糊度取决于调制类型,如本设计中的QPSK引入的相位模糊可能是0、90、180、270。以下是解决相位模糊的代码。idx是随机选取的部分导频信号,通过这些符号来估计相位偏移,用于纠正相位模糊。

    %%--------------------------- Phase ambiguity ---------------------------%%
    idx = 1:50;
    phOffset = angle(modSig(idx) .* conj(syncSignal(idx)));
    phOffset = round((2/pi) * phOffset); % -1, 0, 1, +/-2
    phOffset(phOffset==-2) = 2; % Prep for mean operation
    phOffset = mean((pi/2) * phOffset); % -pi/2, 0, pi/2, or pi
    disp(['Estimated mean phase offset = ',num2str(phOffset*180/pi),' degrees'])
    %%------------------------------ Phase Shift ----------------------------%%
    resPhzSig = exp(1i*phOffset) * syncSignal;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    四、CGAN网络

    五、部分实验数据

    1.第一部分实验数据:上采样倍数16,EbN0为19.03dB(SNR=10dB)

    参数内容
    EbN019.03dB
    信噪比10dB
    上采样倍数16
    采样频率32e8
    信干比-10dB/-20dB/-30dB
    频偏0~5000

    (1)SIR=-10dB,SNR=10dB,不同频偏下加锁相的BER和BER(afterGAN)

    结论:SIR=-10dB,SNR=10dB,频偏0~10kHz,锁相后BER为10e-2量级,通过GAN增强后BER降低至10e-3量级。
    在这里插入图片描述

    (2)SIR=-10dB,SNR=10dB,相同频偏下,加锁相和不加锁相的BER和BER(afterGAN)

    结论:
    2.SIR=-10dB,SNR=10dB,当FrequencyOffset<5000时,不锁相效果更好;当FrequencyOffset≥5000时,锁相后BER更低。BER为10e-2量级,通过GAN增强后BER降低至10e-3量级。
    在这里插入图片描述

    (3)SNR=10dB,SIR=-20dB,相同频偏下,加锁相和不加锁相下的BER和BER(afterGAN)

    结论:
    3.SIR=-20dB,SNR=10dB,当FrequencyOffset≤5000时,不锁相效果更好,BER为10e-2量级,通过GAN增强后BER降低。
    在这里插入图片描述

    (4)SNR=10dB,SIR=-30dB,相同频偏下,加锁相和不加锁相下的BER和BER(afterGAN)

    结论:
    4.SIR=-30dB,SNR=10dB,当FrequencyOffset≤5000时,不锁相效果更好,BER为10e-1量级,通过GAN增强后BER降低至10e-2量级。锁相后BER为0.5左右。
    在这里插入图片描述

    (5)SNR=10dB,相同频偏,不加锁相,不同SIR下的BER和BER(afterGAN)

    结论:
    5.当FrequencyOffset≤5000、SIR≥-30dB且不加锁相时,GAN能有效降低BER。
    在这里插入图片描述

    (6)SNR=10dB,相同频偏,加锁相,不同SIR下的BER和BER(afterGAN)

    结论:
    6.当FrequencyOffset≤5000、SIR≥-20dB且加锁相时,GAN能有效降低BER。SIR=-30dB时且加锁相时,BER为0.5,且生成器不收敛。
    在这里插入图片描述
    实际系统中,上采样倍数没有这么高,为和硬件保持一致,设置为2或者4。

    2.第二部分实验数据:上采样倍数2/4

    参数内容
    EbN08dB
    信噪比8dB
    上采样倍数2/4
    采样频率4e8/8e8
    信干比-10dB/-20dB/-30dB
    频偏0/2000/5000

    (1)sps=2,SNR=8dB,不加锁相,相同频偏不同SIR下的BER和BER(afterGAN)

    在这里插入图片描述

    (2)sps=4,SNR=5dB,不加锁相,相同频偏不同SIR下的BER和BER(afterGAN)

    在这里插入图片描述

    3.第三部分实验数据:每帧符号数为16384,上采样倍数为2/4

    (1)频率分辨率

    频率分辨率是指所用的算法能将信号中两个靠得很近的谱峰保持分开的能力。DFT频率分辨率为Δf=fs/N。
    实际应用时,可以将频率分辨率理解为频谱图中,在频率轴(频谱图的水平轴))上得到的最小频率间隔如果采样频率为fs,采样时间间隔为t,采样点数为N,采样时间为t(完成一组样本的采集所需要的时间),则频率分辨率为:f0 = fs/N = 1/t。所以信号长度越长,频率分辨率越好。
    为了使陷波更加精准,将每帧符号数修改为16384,最后生成的clean_signals和noise_signals均reshape为[frame,1024,16]输入CGAN。

    (2)实验参数

    参数内容
    EbN08dB
    信噪比8dB
    上采样倍数2
    采样频率4e8
    信干比-10dB/-20dB/-30dB
    频偏0/2000/5000

    (3)实验结果

    不加PLL时,每帧符号数16384,上采样倍数为2,EbNo = SNR = 8dB
    结论:当符号数增加为16384后,频偏为0时BER有所提升;频偏不为0时,误码率增大。原因如下。
    在这里插入图片描述

    (4)原因分析

    如下是代码中添加频偏的部分:

    Rs = 2e8;                          % 符号速率
    sps = 2;                           % 上采样倍数
    fs = sps * Rs;                     % 采样频率
    symbol_num = 16384;
    f_shift = 2000;                        % 频率偏移
    t0 = (0:symbol_num*sps-1)/fs;
    % 加频偏
    channel_out_delay(:,jj) = channel_out(:,jj).*exp(1j*2*pi*f_shift*t0');
    plot(t0,real(exp(1j*2*pi*f_shift*t0')));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    以频偏为2000为例,不同符号数的指数信号实部时域图像如图所示。
    符号数为1024时,值基本上都在0.99附近,所以频偏对信号影响就比较小。符号数增长后,信号衰减较大,导致了BER变高。序列越长、频偏越大,对BER的影响越大。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.第四部分实验数据:每帧符号数16384,上采样倍数为2,EbNo = SNR = 8dB

    结论:当信干比为-10dB时,陷波15M效果更好;当信干比为-20dB时,陷波20M效果更好;当信干比为-30dB时,陷波应该更多。(符号序列长度、频偏不影响陷波的多少)
    在这里插入图片描述

    5.第五部分实验数据:

    之前系统结构不对,接收端应该是陷波-PLL-匹配-下采,而不是匹配-下采-陷波-PLL。

    6.第六部分实验数据

    用16384点陷波时,并没有让误码率提高,可能是因为陷波不加过渡带是10M,加上过渡带可能是15M、16M,所以调整干扰,使得干扰加上过渡带后一共10M。

    六、实验中报错及解决

    1.转置导致误码率高的问题

    MATLAB中,复数信号的矩阵转置为共轭转置,如果仅仅需要转置,不能使用以下代码进行转置。

    Sig = rxsig';
    
    • 1

    在命令行中进行测试:
    在这里插入图片描述
    因此,在转置时导致了数据共轭,而数据维度正确从而不会报错,导致误码率在0.5左右。
    正确的转置代码如下:

    Sig = rxsig.';
    
    • 1

    2.画图出现的陷波不完全问题

    修改系统结构后,从匹配-下采-陷波-PLL到陷波-PLL-匹配-下采。第一种系统结构,画陷波后数据时已经下采过了,所以是channel_out_r(1:symbol_num,pp),symbol_num=1024。修改系统结构后,陷波之后还没下采,应该横坐标是2048个点,channel_out_r(:,pp)。如果还用channel_out_r(1:symbol_num,pp)就会出现陷波好像没陷干净的问题。

    3.

  • 相关阅读:
    论文解读(CGC)《CGC: Contrastive Graph Clustering for Community Detection and Tracking》
    C语言既然可以自动为变量分配内存,为什么还要用动态分配内存呢?
    基于net的应用开发技术-上机三
    【OpenCV】图像基本操作
    STM32F4x之中断一
    iMazing2023永久免费版苹果iOS设备管理软件
    触发器(1)
    第十四届蓝桥杯要开始了(2022年)
    解决vite打包出现 “default“ is not exported by “node_modules/...问题
    数字孪生智慧场馆|智慧协同,立体可控,节省方案智能化建设投资
  • 原文地址:https://blog.csdn.net/weixin_46846151/article/details/136107026