软件定义无线电实战入门 第7篇:调制与发射系统

摘要

本文将深入探讨调制技术的原理与实现,并带你构建完整的SDR发射系统。你将学习AM、FM、PM调制的深入机制,理解数字调制的基础知识,掌握发射机的设计与测试方法。这是整个SDR学习系列的收官之作,将你的技能从接收扩展到发射,实现完整的收发能力。

学习目标

阅读完本文后,你将能够:

  • 深入理解调制:掌握AM、FM、PM调制的数学原理和实现方法
  • 构建发射机:设计并实现FM发射系统
  • 避免过调制:理解调制深度概念,防止信号失真
  • 认识数字调制:了解ASK、FSK、PSK的基本原理
  • 掌握测试方法:使用环路back测试验证收发系统
  • 了解法律要求:理解发射功率的法律限制和安全注意事项

一、基带信号与调制基础

调制是通信系统的核心技术,理解基带信号是掌握调制的前提。

1.1 基带信号的定义

基带信号是调制的原始信息载体。

flowchart TD
    subgraph Baseband_Def[基带信号定义]
        direction TB
        Baseband["基带信号:<br/>原始信息信号<br/>未调制的信号"]
        Freq_Range["频率范围:<br/>接近直流<br/>0Hz到几kHz"]
        Char["特性:<br/>相对低频<br/>包含信息<br/>不适合直接传输"]
    end

    subgraph Baseband_Examples[基带信号示例]
        Ex1["语音信号:<br/>20Hz - 20kHz<br/>人类听觉范围"]
        Ex2["数字数据:<br/>方波<br/>0/1序列"]
        Ex3["视频信号:<br/>0Hz - 6MHz<br/>模拟电视"]
        Ex4["传感器:<br/>低频变化<br/>温度/压力等"]

        Ex1 -->|典型| Baseband_Def
        Ex2 -->|数字| Baseband_Def
        Ex3 -->|宽带| Baseband_Def
        Ex4 -->|低速| Baseband_Def
    end

    subgraph Modulation_Need[为什么需要调制]
        Need1["天线尺寸:<br/>基带频率低<br/>天线需要几十公里"]
        Need2["频分复用:<br/>同时通信<br/>需要分离"]
        Need3["传播特性:<br/>不同频率<br/>不同传播"]

        Need1 -->|原因1| Baseband_Def
        Need2 -->|原因2| Baseband_Def
        Need3 -->|原因3| Baseband_Def
    end

    Baseband_Def -.->|应用| Baseband_Examples
    Baseband_Examples -.->|传输问题| Modulation_Need

    style Baseband fill:#bbdefb
    style Modulation_Need fill:#c8e6c9

图表讲解:基带信号是携带原始信息的信号,频率范围从接近直流开始到几千赫兹或几兆赫兹。音频信号是最常见的基带信号,频率范围约20Hz到20kHz。数字数据的基带信号通常是方波(0和1的序列),包含丰富的频率成分。视频信号的基带带宽可达6MHz。基带信号不能直接通过无线电有效传输,原因有几个:低频需要巨大的天线(基带频率对应的长波长),不同用户无法在同一频段同时通信,不同频率有不同传播特性。调制就是将基带信号搬移到更高的载波频率,解决这些问题。

1.2 调制的基本过程

调制的本质是将信息加载到载波上。

flowchart TD
    subgraph Modulation_Process[调制基本过程]
        direction TB
        Info["信息信号<br/>m(t)<br/>基带"]
        Carrier["载波信号<br/>c(t) = cos(ω_ct)<br/>高频"]
        Modulator["调制器<br/>某种操作<br/>数学函数"]
        Modulated["已调信号<br/>s(t)<br/>准备传输"]
    end

    subgraph Mod_Types[调制类型分类]
        Analog["模拟调制:<br/>连续信息<br/>AM/FM/PM"]
        Digital["数字调制:<br/>离散信息<br/>ASK/FSK/PSK"]
    end

    subgraph AM_FM_PM[三大模拟调制]
        AM_Type["AM:<br/>幅度调制<br/>s(t) = A[1+m(t)]cos(ω_ct)"]
        FM_Type["FM:<br/>频率调制<br/>s(t) = cos(ω_ct + k∫m)"]
        PM_Type["PM:<br/>相位调制<br/>s(t) = cos(ω_ct + k·m)"]

        AM_Type -->|改变| Modulation_Process
        FM_Type -->|改变| Modulation_Process
        PM_Type -->|改变| Modulation_Process
    end

    Modulation_Process -.->|分类| Mod_Types
    Mod_Types -.->|包含| AM_FM_PM

    style Info fill:#ffcdd2
    style Carrier fill:#c8e6c9
    style AM_Type fill:#e1bee7
    style FM_Type fill:#c8e6c9
    style PM_Type fill:#fff9c4

图表讲解:调制的基本过程是将基带信号m(t)通过某种操作加载到载波c(t)上,产生已调信号s(t)。载波通常是高频正弦波(或复指数),m(t)可以是音频、视频或数据。调制类型分为模拟调制(信息连续)和数字调制(信息离散)。三大模拟调制是AM(调幅,改变载波幅度)、FM(调频,改变载波频率)、PM(调相,改变载波相位)。AM已调信号的幅度随m(t)变化,频率和相位不变。FM已调信号的瞬时频率随m(t)变化,幅度和相位(积分后)不变。PM已调信号的相位随m(t)变化,幅度和频率不变。注意FM和PM的密切关系——PM的频率是PM相位的导数,FM的相位是FM频率的积分。


二、调幅(AM)深度解析

AM是最古老的调制方式,但其原理仍需要深入理解。

2.1 AM信号的频谱结构

AM信号的频谱包含特定成分。

flowchart TD
    subgraph AM_Spectrum[AM信号频谱]
        direction TB
        Carrier_Comp["载波分量:<br/>f_c<br/>不携带信息"]
        USB["上边带:<br/>f_c + f_base<br/>携带信息"]
        LSB["下边带:<br/>f_c - f_base<br/>携带信息"]
        Redundant["冗余:<br/>USB = LSB<br/>信息重复"]
    end

    subgraph Power_Power[功率分配]
        Carrier_P["载波功率:<br/>P_c<br/>不传输信息"]
        Side_P["边带功率:<br/>P_s<br/>传输信息<br/>上下各半"]
        Total_P["总功率:<br/>P_total = P_c + 2P_s<br/>(两个边带)"]
    end

    subgraph Efficiency[效率分析]
        Eff_100["100%调制:<br/>边带功率 = 载波功率/2<br/>效率 ~33%"]
        Eff_Low["低调制:<br/>大部分功率在载波<br/>效率更低"]
        Issue["问题:<br/>载波浪费<br/>至少2/3功率<br/>不传输信息"]

        Eff_100 -->|理想| Total_P
        Eff_Low -->|实际| Total_P
        Issue -.->|固有| Carrier_P
    end

    AM_Spectrum -.->|组成| Power_Power
    Power_Power -.->|问题| Efficiency

    style Carrier_Comp fill:#ffcdd2
    style USB fill:#c8e6c9
    style LSB fill:#c8e6c9
    style Issue fill:#ffcdd2

图表讲解:AM信号的频谱由三部分组成:中心的载波分量(在f_c)、上边带(f_c到f_c+f_base)和下边带(f_c-f_base到f_c)。上下边带包含完整的信息,因此是冗余的——只需要一个边带就能恢复信息,这就是单边带(SSB)调制的原理。功率分配方面,AM信号的效率很低。在100%调制(调制指数=1)时,两个边带的总功率等于载波功率的一半,这意味着总功率的2/3用于不传输信息的载波,只有1/3用于传输信息。实际应用中,为了避免过调制问题,调制指数通常限制在0.8-0.9,效率更低。这是AM的根本性劣势——大部分发射功率浪费在载波上,没有传输任何信息。

2.2 调制深度与过调制

调制深度是AM调制的关键参数。

flowchart TD
    subgraph Mod_Index[调制指数]
        direction TB
        Definition["定义:<br/>μ = m(t)_max<br/>归一化峰值"]
        Typical["典型值:<br/>0.8-0.9<br/>避免过调制"]
        Range["范围:<br/>0 ≤ μ ≤ 1<br/>μ=1是100%调制"]
    end

    subgraph Overmodulation[过调制问题]
        OM_Def["定义:<br/>μ > 1<br/>信息峰值 > 1"]
        Problem1["问题1:<br/>载波会过零点<br/>相位反转"]
        Problem2["问题2:<br/>包络检波<br/>严重失真"]
        Solution["解决:<br/>限制μ ≤ 1<br/>或使用其他调制"]

        OM_Def --> Problem1
        Problem1 --> Problem2
        Problem2 --> Solution
    end

    subgraph Visual[过调制可视化]
        Normal["正常调制:<br/>载波从不为0<br/>包络=m(t)"]
        Over["过调制:<br/>载波为0<br/>包络丢失信息"]
        Detect["检波问题:<br/>包络检波<br/>无法恢复m(t)"]

        Normal -->|波形| Definition
        Over -->|波形| Overmodulation
        Over -->|无法检波| Detect
    end

    Mod_Index -.->|限制| Overmodulation
    Overmodulation -.->|后果| Visual

    style Typical fill:#c8e6c9
    style OM_Def fill:#ffcdd2
    style Problem1 fill:#ffcdd2
    style Problem2 fill:#ffcdd2

图表讲解:调制指数μ定义了基带信号峰值与载波幅度的比值。100%调制意味着基带信号峰值等于载波幅度(μ=1),载波在基带峰值时被调制到0。如果μ>1(过调制),载波会变为负值,意味着载波相位反转180°,包络检波器会产生严重失真,无法正确恢复原始信息。因此标准AM广播通常将μ限制在0.8-0.9,留一些余量。过调制的AM信号不仅音质差,还会产生额外的频谱成分(扩展到更宽的带宽),可能干扰相邻频道。解决过调制的方法是限制调制指数(压缩音频信号幅度)或使用其他调制方式(如SSB或FM)。

2.3 AM调制器实现

在GNU Radio中实现AM调制器非常直接。

flowchart TD
    subgraph AM_Mod_GRC[GNU Radio AM调制器]
        direction TB
        Audio_In["音频输入<br/>Float<br/>48kHz采样"]
        Resample["重采样<br/>匹配RF速率<br/>如1MHz"]
        Carrier["载波源<br/>Signal Source<br/>cos(ω_ct)"]
        Multiply["乘法器<br/>实现AM<br/>s(t) = A[1+m(t)]c(t)"]
        RF_Out["RF输出<br/>Complex IQ<br/>已调AM信号"]
    end

    subgraph DC_Block[直流阻塞]
        Need["问题:<br/>音频可能有直流<br/>会增加载波幅度"]
        Block["解决:<br/>耦合电容<br/>或减去均值<br/>去除直流"]

        Need --> Block
    end

    subgraph Carrier_Gen[载波生成]
        Real_Carrier["实数载波:<br/>Signal Source<br/>输出类型: Float"]
        Complex_Convert["复数转换:<br/>Float to Complex<br/>准备混频"]

        Real_Carrier --> Complex_Convert
        Complex_Convert --> Carrier
    end

    subgraph Mod_Depth[调制深度控制]
        Input_Amp["音频幅度<br/>通常归一化"]
        Scale["缩放系数:<br/>Multiply Const<br/>控制调制深度"]
        Limit["限制器:<br/>Clip信号<br/>防止过调制"]

        Input_Amp --> Scale
        Scale --> Limit
        Limit -->|音频| Multiply
    end

    AM_Mod_GRC -.->|问题| DC_Block
    AM_Mod_GRC -.->|组件| Carrier_Gen
    AM_Mod_GRC -.->|参数| Mod_Depth

    style Multiply fill:#bbdefb
    style Scale fill:#c8e6c9
    style Limit fill:#ffcdd2

图表讲解:在GNU Radio中实现AM调制器只需要几个模块。音频信号首先重采样到RF采样率(如从48kHz到1MHz),然后与载波相乘。载波由Signal Source模块产生,输出类型设为Float(实数正弦波),然后转换为Complex(复数)以便后续处理。Multiply模块执行调制——音频乘以载波。需要注意音频信号可能有直流偏置(非零均值),这会增加载波的平均幅度但不改变调制,可以通过减去均值或添加耦合电容等效操作去除。调制深度控制很重要——音频信号幅度应该限制,使峰值不超过载波幅度。可以使用Multiply Const缩放音频信号,然后用Clip模块限制幅度,确保不发生过调制。


三、调频(FM)深度解析

FM是现代广播的标准调制方式,有独特的优势。

3.1 FM信号的频谱特性

FM信号的频谱与AM完全不同。

flowchart TD
    subgraph FM_Spectrum[FM信号频谱特性]
        direction TB
        Inf_Comps["无穷边带:<br/>理论上<br/>无限个边带"]
        Bessel["贝塞尔函数:<br/>边带幅度<br/>J_n(β)决定"]
        Center_str["中心强度:<br/>载波幅度<br/>J_0(β)"]
        Sidebands["边带强度:<br/>第n边带<br/>J_n(β)"]

        Center_str -->|决定| Inf_Comps
        Sidebands -->|形状| Inf_Comps
    end

    subgraph Mod_Index_F[调制指数]
        Beta_Def["β = Δf/f_m<br/>频偏/调制频率"]
        Beta_Low["小指数(β < 1):<br/>窄带FM<br/>载波主导"]
        Beta_High["大指数(β > 1):<br/>宽带FM<br/>多个显著边带"]
        Beta_Carson["卡森规则:<br/>有效带宽<br/>≈ 2(Δf + f_m)"]

        Beta_Def -->|决定| Bessel
        Beta_Low -->|窄带| FM_Spectrum
        Beta_High -->|宽带| FM_Spectrum
        Beta_Carson -.->|估算| Inf_Comps
    end

    subgraph Bandwidth_Calc[FM带宽计算]
        BW_Narrow["窄带FM:<br/>~2f_m<br/>约2倍音频"]
        BW_Wide["宽带FM:<br/>~2(Δf + f_m)<br/>卡森公式"]
        BW_Example["FM广播:<br/>Δf=75kHz<br/>f_m=15kHz<br/>BW≈180kHz"]

        BW_Narrow -->|简单| FM_Spectrum
        BW_Wide -->|标准| FM_Spectrum
        BW_Example -->|实例| FM_Spectrum
    end

    FM_Spectrum -.->|由| Mod_Index_F
    Mod_Index_F -.->|决定| Bandwidth_Calc

    style Inf_Comps fill:#bbdefb
    style Center_str fill:#fff9c4
    style BW_Example fill:#c8e6c9

图表讲解:FM信号的频谱与AM完全不同。AM信号的边带是原始基带信号的简单搬移,只有两个边带。FM信号的频谱理论上包含无限多个边带,位于载波频率±音频频率的整数倍位置(f_c ± f_m, f_c ± 2f_m, f_c ± 3f_m…)。边带的幅度由贝塞尔函数J_n(β)决定,其中β是调制指数(频偏/调制频率)。对于小β(<1),载波主导(J_0最大),边带很小,这是窄带FM。对于大β(>1),多个边带显著,这是宽带FM。卡森公式给出了FM信号的近似带宽:BW ≈ 2(Δf + f_m)。对于FM广播(Δf=75kHz, f_m=15kHz),带宽约180kHz。这就是为什么FM需要比AM宽得多的频谱。

3.2 窄带FM与宽带FM

调制指数决定FM信号的特性。

flowchart TD
    subgraph NBFM_WBFM[窄带vs宽带FM]
        direction TB
        NBFM["窄带FM(NBFM):<br/>β &lt; 0.5<br/>~f_m带宽"]
        WBFM["宽带FM(WBFM):<br/>β &gt;&gt; 1<br/>~2Δf带宽"]
        Transition["过渡区:<br/>0.5 &lt; β &lt; 1<br/>两者特性"]
    end

    subgraph Applications[应用场景]
        App1["NBFM应用:<br/>语音通信<br/>航空通信<br/>业余电台"]
        App2["WBFM应用:<br/>高质量广播<br/>FM广播<br/>电视伴音"]
        App3["中间值:<br/>对讲机<br/>某些双向通信"]

        App1 -->|使用| NBFM
        App2 -->|使用| WBFM
        App3 -->|使用| Transition
    end

    subgraph Quality_T[质量与带宽权衡]
        Trade1["NBFM优势:<br/>带宽小<br/>节省频谱<br/>声音质量一般"]
        Trade2["WBFM优势:<br/>带宽大<br/>高质量<br/>声音优秀"]
        Trade3["权衡:<br/>质量 vs 带宽<br/>根据应用"]

        Trade1 -->|节省| NBFM
        Trade2 -->|质量| WBFM
        Trade3 -.->|选择| Applications
    end

    NBFM_WBFM -.->|类型| Applications
    Applications -.->|影响| Quality_T

    style NBFM fill:#fff9c4
    style WBFM fill:#c8e6c9
    style Trade2 fill:#a5d6a7

图表讲解:窄带FM(NBFM)和宽带FM(WBFM)是两种不同的FM类型,由调制指数β区分。NBFM(β<0.5)的带宽约等于2f_m(音频频率的两倍),这与AM信号的带宽相当,但保留了FM的抗噪声优势。NBFM用于语音通信(如航空通信、业余电台),因为带宽节省且声音质量足够。WBFM(β>>1)的带宽约为2Δf(两倍频偏),音频带宽可以忽略不计。WBFM用于高质量广播(FM广播、电视伴音),因为提供优异的音质。FM广播是WBFM的典型例子,频偏75kHz,音频15kHz,带宽约180kHz。选择NBFM还是WBFM是质量与带宽的权衡——NBFM节省频谱但质量一般,WBFM消耗频谱但质量优秀。

3.3 FM调制器实现

在GNU Radio中实现FM调制器。

flowchart TD
    subgraph FM_Mod_GRC[GNU Radio FM调制器]
        direction TB
        Audio_In2["音频输入<br/>Float<br/>48kHz采样"]
        Resample2["重采样<br/>匹配RF速率<br/>如1MHz"]
        Integrator["积分器<br/>相位累加<br/>∫m(t)dt"]
        Phase["相位到幅度<br/>cos(ω_ct + ∫m)"]
        RF_Out2["RF输出<br/>Complex IQ<br/>已调FM信号"]
    end

    subgraph Sensitivity[调制灵敏度]
        Dev_Param["频偏参数:<br/>灵敏度或频偏<br/>k或Δf"]
        Calc1["灵敏度:<br/>k = 2πΔf<br/>单位Hz/V"]
        Calc2["频偏:<br/>最大频偏<br/>如75kHz"]
        Audio_Range["音频范围:<br/>归一化输入<br/>-1到+1"]

        Dev_Param -->|设置| Integrator
        Calc1 -.->|计算| Phase
        Calc2 -.->|指定| Phase
        Audio_Range -->|保证| Integrator
    end

    subgraph Alternative[替代实现]
        Direct["VCO方法:<br/>压控振荡器<br/>电压控制频率"]
        Phase_Mod["相位调制:<br/>先PM后微分<br/>数学等价"]
        Complex["复数乘法:<br/>e^jφ × e^(jωct)<br/>更灵活"]

        Direct -.->|模拟| Phase
        Phase_Mod -.->|数字| Phase
        Complex -.->|数字| Phase
    end

    FM_Mod_GRC -.->|参数| Sensitivity
    FM_Mod_GRC -.->|方法| Alternative

    style Integrator fill:#bbdefb
    style Phase fill:#c8e6c9
    style Complex fill:#e1f5fe

图表讲解:GNU Radio中实现FM调制器有几种方法。经典方法是使用相位调制——对音频信号积分(相位是频率的积分),然后将相位调制到载波上:s(t) = cos(ω_ct + k∫m(τ)dτ)。这需要三个模块:积分器(累加相位)、载波源(生成cos(ω_ct))和相位调制(组合)。更现代的方法是使用复数乘法:s(t) = e^jφ(t) × e^(jω_ct) = e^j(ω_ct + φ(t)),其中φ(t)是调制相位。GNU Radio的FM Mod模块(或Frequency Mod模块)实现了这种调制。关键参数是灵敏度或频偏,它控制音频信号引起的频率变化量。对于FM广播,频偏通常设为75kHz(最大频偏),音频输入应该归一化到±1范围。


四、调相(PM)与数字调制入门

PM是FM的近亲,数字调制是现代通信的基础。

4.1 PM与FM的关系

PM和FM密切相关但有所不同。

flowchart TD
    subgraph PM_FM[PM与FM的关系]
        direction TB
        PM_Def["PM:<br/>相位随m(t)变化<br/>φ = k·m(t)"]
        FM_Def["FM:<br/>频率随m(t)变化<br/>f = f_c + k·m(t)"]
        Relation["关系:<br/>频率是相位的导数<br/>f = (1/2π)dφ/dt"]
        Integral["积分关系:<br/>PM是FM的积分<br/>FM是PM的微分"]
    end

    subgraph PM_Wave[PM信号波形]
        Input["信息:<br/>方波<br/>两个电平"]
        PM_Out["PM信号:<br/>相位突变<br/>频移突变"]
        Const_Amp["幅度:<br/>恒定<br/>包络平滑"]
        Detect["检测:<br/>需要鉴相器<br/>检测相位变化"]

        Input -->|调制| PM_Out
        PM_Out --> Const_Amp
        PM_Out --> Detect
    end

    subgraph FM_Wave[FM信号波形对比]
        Input2["信息:<br/>方波<br/>两个电平"]
        FM_Out["FM信号:<br/>频率突变<br/>瞬时频移"]
        Const_Amp2["幅度:<br/>恒定<br/>包络平滑"]
        Detect2["检测:<br/>鉴频器<br/>检测频率变化"]

        Input2 -->|调制| FM_Out
        FM_Out --> Const_Amp2
        FM_Out --> Detect2
    end

    PM_FM -.->|等效| Integral
    PM_Wave -.->|对比| FM_Wave

    style PM_Def fill:#fff9c4
    style FM_Def fill:#c8e6c9
    style PM_Out fill:#ffcdd2

图表讲解:PM和FM本质上是相关的,因为频率是相位的导数(f = (1/2π)dφ/dt)。如果信息信号是方波,PM会在方波的上升沿和下降沿产生瞬间的相位跳变,这对应于频率的瞬时变化(瞬时频率)。FM也会在方波的跳变处产生频率跳变,但方式略有不同。PM和FM信号的包络都是恒定的(幅度不变),这是它们与AM的共同点。由于这种相似性,PM和FM在某些应用中可以互换——先用PM调制,然后通过微分得到FM,或者用FM解调后积分恢复PM。在实际应用中,PM用于某些数字调制方案(如PSK),而FM用于模拟广播。

4.2 数字调制基础

数字调制使用离散的符号而不是连续波形。

flowchart TD
    subgraph Digital_Mod[数字调制基础]
        direction TB
        Data["数字数据:<br/>比特流<br/>01011010..."]
        Symbol["符号:<br/>k个比特<br/>一组数据"]
        Mod_Map["调制映射:<br/>符号到波形<br/>字典"]
        Waveform["波形:<br/>不同符号<br/>不同波形"]
    end

    subgraph Basic_Digital[基本数字调制]
        ASK["ASK:<br/>幅度键控<br/>幅度变化"]
        FSK["FSK:<br/>频率键控<br/>频率变化"]
        PSK["PSK:<br/>相位键控<br/>相位变化"]
        QAM["QAM:<br/>正交幅度调制<br/>幅度+相位"]

        ASK -.->|最简单| Digital_Mod
        FSK -.->|常用| Digital_Mod
        PSK -.->|高效| Digital_Mod
        QAM -.->|密集| Digital_Mod
    end

    subgraph Efficiency[频谱效率对比]
        E1["BPSK(1bit/symbol):<br/>1 bit/s/Hz<br/>最低"]
        E2["QPSK(2bit/symbol):<br/>2 bit/s/Hz<br/>2倍"]
        E3["16QAM(4bit/symbol):<br/>4 bit/s/Hz<br/>4倍"]
        E4["1024QAM(10bit/symbol):<br/>10 bit/s/Hz<br/>10倍"]

        E1 -->|基准| ASK
        E2 -->|2倍| PSK
        E3 -->|4倍| QAM
        E4 -->|高阶| QAM
    end

    Digital_Mod -.->|分类| Basic_Digital
    Basic_Digital -.->|性能| Efficiency

    style Data fill:#bbdefb
    style ASK fill:#fff9c4
    style PSK fill:#c8e6c9
    style QAM fill:#a5d6a7

图表讲解:数字调制首先将数据比特流分成k个一组,每组称为一个符号。每个符号映射到一个特定的波形,波形的差异(幅度、频率、相位或组合)携带信息。ASK(幅度键控)是最简单的数字调制,用不同的幅度表示0和1(如高电平=1,低电平=0)。FSK(频率键控)用不同的频率表示0和1。PSK(相位键控)用不同的相位表示0和1(如0°和180°)。QAM(正交幅度调制)同时改变幅度和相位,可以表示更多状态(如16QAM用16个不同点,每个代表4比特)。数字调制的优势是可以实现更高的频谱效率——在相同带宽下传输更多数据。BPSK(1bit/symbol)有1 bit/s/Hz的频谱效率,16QAM(4bit/symbol)有4 bit/s/Hz的频谱效率。

4.3 常用数字调制方式

几种数字调制各有特点。

flowchart TD
    subgraph ASK_Detail[ASK详解]
        ASK_Type["OOK(开关键控):<br/>0=无信号<br/>1=有信号"]
        ASK_Pro["优点:<br/>简单<br/>容易实现"]
        ASK_Con["缺点:<br/>抗干扰差<br/>噪声敏感"]

        ASK_Type -->|主要| ASK_Pro
        ASK_Pro -->|但| ASK_Con
    end

    subgraph FSK_Detail[FSK详解]
        FSK_Type["二进制FSK:<br/>f1=1比特<br/>f2=0比特"]
        FSK_Pro["优点:<br/>恒定包络<br/>抗干扰好"]
        FSK_Con["缺点:<br/>带宽较大<br/>比ASK复杂"]
        GFSK["高斯FSK:<br/>平滑过渡<br/>减少带宽"]

        FSK_Type -->|发展| GFSK
    end

    subgraph PSK_Detail[PSK详解]
        PSK_Type["BPSK:<br/>0=0°, 1=180°<br/>两个相位"]
        QPSK["QPSK:<br/>4个相位<br/>2bit/symbol"]
        PSK_Pro["优点:<br/>恒定包络<br/>功率效率高"]
        PSK_Con["缺点:<br/>需要相干<br/>复杂"]

        PSK_Type -->|扩展| QPSK
        PSK_Pro -->|但| PSK_Con
    end

    ASK_Detail -.->|简单| Digital_Mod
    FSK_Detail -.->|平衡| Digital_Mod
    PSK_Detail -.->|高效| Digital_Mod

    style ASK_Pro fill:#c8e6c9
    style FSK_Pro fill:#c8e6c9
    style PSK_Pro fill:#c8e6c9

图表讲解:ASK是最简单的数字调制,开关键控(OOK)用有/无载波表示1/0。优点是极简,缺点是抗干扰能力差——任何幅度噪声都会造成误码。FSK用两个频率表示0/1,例如频率f1表示1,f2表示0。FSK有恒定包络,抗干扰能力比ASK好。GFSK(高斯FSK)在频率跳变时使用平滑过渡,减少带宽,是蓝牙等应用的标准。PSK用不同相位表示符号,BPSK用0°和180°,QPSK用4个相隔90°的相位。PSK的巨大优势是恒定包络(所有符号能量相同)和功率效率(在相同误码率下需要更小SNR)。缺点是需要相干解调(需要载波相位参考),实现复杂。QPSK的频谱效率是BPSK的两倍,在相同带宽下传输两倍数据。


五、FM发射机设计

现在让我们构建一个完整的FM发射机。

5.1 FM发射机架构

发射机与接收机是镜像对称的过程。

flowchart TD
    subgraph FM_Transmitter[FM发射机架构]
        direction TB
        AudioIn["音频输入<br/>Audio Source<br/>麦克风或文件"]
        PreEmp["预加重<br/>提升高频<br/>~75μs"]
        ResampleIn["重采样<br/>音频到RF<br/>速率匹配"]
        Modulator["FM调制器<br/>频率或相位<br/>生成已调波"]
        Interp["插值器<br/>上采样<br/>提高采样率"]
        FilterOut["滤波<br/>去除镜像<br/>净化频谱"]
        RF_Out["RF输出<br/>硬件接口<br/>SDR发射"]
    end

    subgraph Signal_Path[信号路径]
        S1["原始:<br/>48kHz<br/>Float"]
        S2["重采样:<br/>1MHz<br/>Float"]
        S3["调制:<br/>1MHz<br/>Complex<br/>中心频率"]
        S4["插值:<br/>10MHz<br/>Complex"]
        S5["滤波后:<br/>10MHz<br/>Complex<br/>清洁"]

        S1 --> S2 --> S3 --> S4 --> S5
    end

    subgraph Parameters[关键参数]
        P1["音频速率:<br/>48kHz标准<br/>可调"]
        P2["RF采样率:<br/>匹配硬件<br/>如10MHz"]
        P3["中心频率:<br/>例如100MHz<br/>FM频段"]
        P4["频偏:<br/>例如75kHz<br/>FM标准"]
        P5["输出功率:<br/>法律法规<br/>通常mW级"]

        P1 -->|设置| AudioIn
        P2 -->|硬件| RF_Out
        P3 -->|调谐| Modulator
        P4 -->|参数| Modulator
        P5 -->|限制| RF_Out
    end

    FM_Transmitter -.->|数据流| Signal_Path
    FM_Transmitter -.->|配置| Parameters

    style PreEmp fill:#fff9c4
    style Modulator fill:#bbdefb
    style RF_Out fill:#c8e6c9

图表讲解:FM发射机架构从音频输入开始,经过几个处理阶段生成RF输出。音频输入通常来自麦克风或文件,采样率48kHz。预加重模块提升高频成分(75μs时间常数),补偿接收端的去加重,改善高频SNR。重采样将音频采样率提高到RF采样率(如从48kHz到1MHz或10MHz)。FM调制器将音频信息调制到载波上,产生复数IQ信号。插值器进一步提高采样率(如从1MHz到10MHz),以匹配硬件的采样率或实现更宽的带宽。滤波器去除插值产生的镜像频率,净化频谱。最后RF输出将信号送到SDR硬件的DAC,转换为模拟信号并通过天线发射。关键参数需要根据硬件能力和应用需求设置——采样率必须匹配硬件,中心频率必须在硬件支持的范围内,输出功率必须遵守法律法规。

5.2 预加重实现

预加重提升高频以改善SNR。

flowchart TD
    subgraph PreEmp_Process[预加重处理]
        direction TB
        AudioIn3["音频输入<br/>平坦频谱"]
        Filter["滤波器:<br/>+6dB/oct<br/>或类似"]
        AudioOut["音频输出:<br/>高频提升<br/>预加重"]

        AudioIn3 --> Filter --> AudioOut
    end

    subgraph Filter_Type[滤波器类型]
        Type1["单极点:<br/>简单<br/>1个极点"]
        Type2["多极点:<br/>精确<br/>多个极点"]
        Type3["数字实现:<br/>IIR/FIR<br/>高精度"]

        Type1 -->|简单| Filter
        Type2 -->|精确| Filter
        Type3 -->|灵活| Filter
    end

    subgraph Response[频率响应]
        Low["低频:<br/>增益=1<br/>0dB"]
        High["高频:<br/>增益>1<br/>+6dB/oct"]
        Corner["拐角:<br/>频率点<br/>可调整"]

        Low -->|起始| Freq_Response[频率响应特性]
        High -->|增加| Freq_Response
        Corner -.->|定义| Type1
    end

    subgraph Constant[时间常数]
        US["美国:<br/>75μs<br/>FM标准"]
        EU["欧洲:<br/>50μs<br/>FM标准"]
        Calc["计算:<br/>τ = RC<br/>R和C决定"]

        US -->|标准| Freq_Response
        EU -->|标准| Freq_Response
        Calc -.->|设计| Filter
    end

    PreEmp_Process -.->|使用| Filter_Type
    Filter_Type -.->|响应| Response
    Response -.->|标准| Constant

    style AudioOut fill:#c8e6c9
    style High fill:#bbdefb
    style US fill:#fff9c4

图表讲解:预加重滤波器提升高频成分,补偿接收端的去加重。典型的预加重曲线是+6dB每倍频程(octave)——频率每翻倍,增益增加6dB。这意味着100Hz到200Hz增益增加6dB,200Hz到400Hz再增加6dB,依此类推。这种提升可以改善高频SNR,因为高频成分通常较弱,更容易被噪声影响。预加重的时间常数(75μs或50μs)决定了从哪个频率开始提升。在数字域,预加重可以通过IIR滤波器或FIR滤波器实现。IIR滤波器效率高,但可能引入相位失真;FIR滤波器精确但计算量大。对于SDR发射机,FIR滤波器通常足够。预加重和去加重必须匹配——如果发射端使用75μs预加重,接收端必须使用75μs去加重,否则频率响应会不正确,声音会不自然。


六、完整的FM发射系统

现在让我们构建一个可工作的FM发射系统。

6.1 完整发射机流程图

这是完整的FM发射机GRC流程图。

flowchart TD
    subgraph FM_Trans_Complete[完整FM发射机]
        direction TB

        subgraph Variables_Tx[变量定义]
            samp_rate_tx[Variable: samp_rate = 10e6]
            center_freq_tx[Variable: center_freq = 100e6]
            audio_rate_tx[Variable: audio_rate = 48e3]
            freq_dev_tx[Variable: freq_dev = 75e3]
        end

        subgraph Source_Tx[音频源]
            wav_src["Wav File Source 或 Audio Source<br/>提供音频"]
        end

        subgraph Process_Tx[信号处理]
            preemp["Preemphasis<br/>预加重滤波"]
            resamp_in["Resampler<br/>48k → samp_rate"]
            modulator["FM Mod<br/>FM调制器"]
            interp["Rational Resampler<br/>插值到硬件速率"]
            lpf_out["Low Pass Filter<br/>净化频谱"]
        end

        subgraph Hardware_Tx[硬件输出]
            sink_tx["UHD Sink 或 osmocom Sink<br/>输出到SDR"]
        end

        wav_src --> preemp
        preemp --> resamp_in
        resamp_in --> modulator
        modulator --> interp
        interp --> lpf_out
        lpf_out --> sink_tx

        samp_rate_tx -.->|控制| lpf_out
        samp_rate_tx -.->|硬件| sink_tx
        center_freq_tx -.->|硬件| sink_tx
        freq_dev_tx -.->|调制| modulator
        audio_rate_tx -.->|源| wav_src
    end

    subgraph Test_Setup[测试设置]
        Loopback["环路back测试:<br/>发射→接收<br/>验证功能"]
        File_Tx["文件记录:<br/>保存到文件<br/>离线分析"]
        Monitor["监视:<br/>频谱/时域<br/>观察信号"]

        Loopback -.->|验证| sink_tx
        File_Tx -.->|调试| sink_tx
        Monitor -.->|观察| sink_tx
    end

    FM_Trans_Complete -.->|需要| Test_Setup

    style wav_src fill:#bbdefb
    style modulator fill:#fff9c4
    style sink_tx fill:#c8e6c9

图表讲解:完整的FM发射机包含音频源、信号处理链路和硬件输出。音频源可以是Wav File Source(播放预录制的音频文件)或Audio Source(麦克风实时输入)。预加重滤波器提升高频成分。重采样器将音频采样率(48kHz)提高到系统采样率(如10MHz)。FM Mod模块执行频率调制,产生FM信号。Rational Resampler插值到硬件支持的采样率(可能更高,如20MHz)。低通滤波器去除插值镜像频率,净化频谱。硬件Sink(UHD Sink用于USRP,osmocom Sink用于HackRF/RTL-SDR)将IQ数据送到SDR硬件,DAC将其转换为模拟信号并发射。测试设置包括环路back(输出连接到接收机,验证功能)、文件记录(保存到文件供离线分析)和监视(频谱/时域显示,观察发射信号)。

6.2 发射机测试方法

验证发射机功能需要系统化的测试方法。

flowchart TD
    subgraph Test_Methods[发射机测试方法]
        direction TB
        Monitor["频谱监视:<br/>QT GUI Freq Sink<br/>观察发射频谱"]
        Waterfall["瀑布图:<br/>QT GUI Waterfall<br/>频谱历史"]
        Scope["时域显示:<br/>QT GUI Time Sink<br/>观察波形"]
        Audio_Back["音频环路:<br/>接收端接收<br/>验证功能"]
    end

    subgraph Verify[验证清单]
        V1["参数检查:<br/>采样率正确<br/>频率在范围内"]
        V2["频谱干净:<br/>无镜像<br/>无泄漏"]
        V3["功率合适:<br/>不超限<br/>不浪费"]
        V4["功能正常:<br/>环路back<br/>音频可听"]

        V1 -->|确认| Monitor
        V2 -->|观察| Monitor
        V3 -->|检查| Monitor
        V4 -->|测试| Audio_Back
    end

    subgraph Problems[常见问题排查]
        Prob1["问题1:<br/>镜像频率<br/>插值滤波不足"]
        Prob2["问题2:<br/>频谱泄漏<br/>带宽太大"]
        Prob3["问题3:<br/>功率不足<br/>增益太低"]
        Prob4["问题4:<br/>过调制<br/>频偏太大"]

        Prob1 -.->|解决| lpf_out
        Prob2 -.->|调整| modulator
        Prob3 -.->|增加| sink_tx
        Prob4 -.->|降低| freq_dev_tx
    end

    Test_Methods -.->|用于| Verify
    Verify -.->|发现| Problems
    Problems -.->|修复| Test_Methods

    style Monitor fill:#c8e6c9
    style V4 fill:#a5d6a7
    style Prob1 fill:#ffcdd2
    style Prob4 fill:#ffcdd2

图表讲解:测试发射机需要多种工具协同。频谱监视(QT GUI Frequency Sink)显示发射信号的频谱,应该看到中心频率处的峰值,带宽约200kHz,没有其他杂散频率。瀑布图显示频谱随时间的变化,可以观察发射的稳定性。时域显示(QT GUI Time Sink)显示信号的时域波形,可以检查幅度是否稳定、是否有削波。音频环路back是最直接的验证方法——将发射机输出连接到接收机输入(可以是同一个SDR设备或另一个SDR),如果接收机能够正确解调出音频,说明发射机工作正常。验证清单包括:参数检查(采样率、频率范围正确)、频谱干净(无镜像频率和泄漏)、功率合适(不超限也不太弱)、功能正常(环路back可听)。常见问题包括镜像频率(插值滤波不足)、频谱泄漏(带宽太大)、功率不足(增益太低)或过调制(频偏太大)。


七、法律与安全注意事项

发射无线电信号受到法律和安全约束。

7.1 法律框架

无线电发射需要遵守相关法律法规。

flowchart TD
 subgraph Legal_Legal[法律框架]
        direction TB
        Lic["许可要求:<br/>大多数国家<br/>需要许可"]
        Freq["频率分配:<br/>频谱是国家资源<br/>分配给不同服务"]
        Power["功率限制:<br/>最大EIRP<br/>通常mW级"]
        Content["内容限制:<br/>禁止某些内容<br/>如干扰救援"]
        Id["标识要求:<br/>电台识别<br/>定期发射"]
    end

    subgraph ISM_Legal[ISM频段法律]
        ISM1["ISM许可:<br/>特定频段<br/>免许可"]
        ISM2["功率限制:<br/>低功率<br/>通常是mW级"]
        ISM3["容忍干扰:<br/>必须接受<br/>现有干扰"]
        ISM4["不保护:<br/>不受保护<br/>不能抱怨干扰"]

        ISM1 -->|特权| Legal_Legal
        ISM2 -->|约束| Legal_Legal
        ISM3 -->|条件| Legal_Legal
        ISM4 -->|风险| Legal_Legal
    end

    subgraph Exceptions[例外情况]
        Ex1["微功率:<br/>极低功率<br/>通常免许可<br/>如RC玩具"]
        Ex2["实验室:<br/>屏蔽环境<br/>实验测试<br/>可能需要许可"]
        Ex3["业余:<br/>业余无线电<br/>需考试<br/>专用频段"]

        Ex1 -->|低功率| Legal_Legal
        Ex2 -->|教育| Legal_Legal
        Ex3 -->|认证| Legal_Legal
    end

    Legal_Legal -.->|分类| ISM_Legal
    Legal_Legal -.->|特殊情况| Exceptions

    style Lic fill:#ffcdd2
    style ISM1 fill:#c8e6c9
    style Ex1 fill:#a5d6a7

图表讲解:大多数国家要求无线电发射需要许可,这是为了避免干扰和混乱。频率是国家的战略资源,被分配给不同服务(广播、移动、航空、业余等),你不能在未分配的频率发射。功率限制非常重要——EIRP(有效全向辐射功率)通常限制在毫瓦到瓦级,取决于频段和应用。内容限制禁止发射某些内容,如干扰救援通信的虚假信号、非法内容等。电台标识要求你必须定期发射识别码(如呼号),以便识别。ISM频段(如2.4GHz)有特殊规则——你可以免许可使用,但功率必须很低(通常<100mW),且必须容忍干扰,也不受保护。微功率设备(如RC玩具)通常免许可,因为功率极低(<10mW),干扰范围很小。实验室测试可能需要许可,即使功率很低。业余无线电需要通过考试获得许可,但有专用频段。

7.2 安全注意事项

SDR发射操作需要注意安全。

flowchart TD
    subgraph Safety[安全注意事项]
        direction TB
        Power["电源:<br/>高功率RF<br/>大电流"]
        Heat["热量:<br/>PA产生<br/>可能很热"]
        Ant["天线:<br/>高电压<br/>或同轴"]
        Leakage["泄漏:<br/>辐射<br/>RF能量"]
    end

    subgraph Specific[具体风险]
        S1["电源安全:<br/>高电流<br/>火灾风险"]
        S2["PA过热:<br/>功率放大器<br/>可能烧毁"]
        S3["天线辐射:<br/>发射时<br/>远离天线"]
        S4["干扰:<br/>其他设备<br/>可能受影响"]

        S1 -->|危险| Power
        S2 -->|热| Power
        S3 -->|辐射| Ant
        S4 -->|影响| Leakage
    end

    subgraph Best_Practices[最佳实践]
        B1["低功率:<br/>从最低<br/>开始测试"]
        B2["监视:<br/>使用频谱<br/>观察输出"]
        B3["距离:<br/>远离天线<br/>避免暴露"]
        B4["时间:<br/>短时间<br/>避免长时间"]
        B5["环境:<br/>空旷环境<br/>避免人群"]

        B1 -->|安全| Specific
        B2 -->|观察| Specific
        B3 -->|防护| Specific
        B4 -->|限制| Specific
        B5 -->|选择| Specific
    end

    Safety -.->|风险| Specific
    Specific -.->|缓解| Best_Practices

    style S1 fill:#ef5350
    style S2 fill:#ef5350
    style B1 fill:#a5d6a7
    style B3 fill:#a5d6a7

图表讲解:SDR发射涉及几个安全风险。电源安全问题——高功率RF放大器可能需要大电流,存在火灾风险,使用合适的电源和线缆很重要。PA过热——功率放大器会产生大量热量,需要散热,长时间高功率工作可能烧毁PA或SDR设备。天线辐射——发射时天线会辐射RF能量,对人体有潜在影响,虽然低功率(如mW级)通常认为是安全的,但仍应避免接触。干扰——发射可能会干扰其他电子设备(电脑、无线网络等),这是合法使用的问题。最佳实践是从最低功率开始测试,使用频谱监视器观察输出,远离天线避免暴露,限制发射时间,选择空旷环境避免干扰他人。大多数业余和实验性质的发射使用mW级功率,风险很小,但仍需注意这些基本安全原则。


八、发射系统优化

优化发射系统可以改善性能和合规性。

8.1 线性度与失真

保持信号线性对于发射质量很重要。

flowchart TD
    subgraph Linearity[线性度与失真]
        direction TB
        Linear["线性区:<br/>输入输出<br/>正比关系"]
        Sat["饱和区:<br/>输入过大<br/>输出受限"]
        Cutoff["截止区:<br/>输入过小<br/>无法驱动"]
    end

    subgraph Distortion[失真类型]
        D1["幅度失真:<br/>AM过调制<br/>削波"]
        D2["频率失真:<br/>FM非线性<br/>频率偏移"]
        D3["相位失真:<br/>相位非线性<br/>PM问题"]
        D4["互调失真:<br/>多信号<br/>新频率成分"]

        D1 -->|典型| Dist_Summary[失真问题]
        D2 -->|常见| Dist_Summary
        D3 -->|高级| Dist_Summary
        D4 -->|多频| Dist_Summary
    end

    subgraph Prevention[预防措施]
        P1["限幅器:<br/>限制最大幅度<br/>防止过调制"]
        P2["滤波:<br/>带限信号<br/>去除带外"]
        P3["PA线性:<br/>线性PA<br/>避免失真"]
        P4["背载隔离:<br/>隔离器<br/>防止耦合"]

        P1 -->|控制| Dist_Summary
        P2 -->|净化| Dist_Summary
        P3 -->|选择| Dist_Summary
        P4 -->|隔离| Dist_Summary
    end

    Linearity -.->|避免| Dist_Summary
    Dist_Summary -.->|解决| Prevention

    style Linear fill:#c8e6c9
    style Sat fill:#ffcdd2
    style Cutoff fill:#ffcdd2
    style D1 fill:#ffcdd2
    style P1 fill:#a5d6a7

图表讲解:所有放大器都有线性区、饱和区和截止区。在线性区,输出与输入成正比;在饱和区,输入过大导致输出被限制,产生削波失真;在截止区,输入太小无法驱动器件。AM发射机的过调制就是饱和的例子——音频峰值超过载波幅度,载波被削波。FM发射机的非线性(如VCO的频率调制响应不完美)会产生频率失真。互调失真是最麻烦的——当两个或更多信号通过非线性器件时,会产生输入频率的各种和差组合(如f1+f2, 2f1-f2等),可能落在其他频段,造成干扰。预防措施包括:限幅器限制最大幅度防止过调制,带通滤波器确保信号在指定频带内,选择线性功率放大器(或使用预失真),使用隔离器防止信号之间的耦合。保持信号线性是发射机设计的关键。

8.2 邻道泄漏与频谱纯度

发射信号的频谱必须干净。

flowchart TD
    subgraph Spurity[频谱纯度要求]
        direction TB
        Main_Lobe["主瓣:<br/>目标频谱<br/>应该在此"]
        Side_Lobe["旁瓣:<br/>泄漏<br/>应该抑制"]
        Harmonics["谐波:<br/>整数倍频<br/>应该很小"]
        Spur["杂散:<br/>杂散频率<br/>应该极低"]
    end

    subgraph Causes[泄漏来源]
        C1["数字时钟:<br/>采样时钟<br/>谐波"]
        C2["电源开关:<br/>电源噪声<br/>低频"]
        C3["混频器泄漏:<br/>LO泄漏<br/>需要抑制"]
        C4["非线性:<br/>器件非线性<br/>产生谐波"]

        C1 -->|来源| Harmonics
        C2 -->|来源| Side_Lobe
        C3 -->|来源| Spur
        C4 -->|来源| Harmonics
    end

    subgraph Solutions[抑制方法]
        S1["滤波:<br/>低通滤波<br/>去除高频"]
        S2["平衡:<br/>平衡调制器<br/>抑制载波"]
        S3["屏蔽:<br/>屏蔽<br/>减少泄漏"]
        S4["匹配:<br/>阻抗匹配<br/>减少反射"]

        C1 -->|方法| S1
        C3 -->|方法| S2
        C4 -->|方法| S3
        S4 -->|方法| S4
    end

    Spurity -.->|来源| Causes
    Causes -.->|解决方案| Solutions

    style Main_Lobe fill:#c8e6c9
    style Side_Lobe fill:#ffcdd2
    style Harmonics fill:#ffcdd2
    style Spur fill:#ffcdd2
    style S1 fill:#a5d6a7

图表讲解:发射信号的频谱应该集中在目标频段,其他频率分量(泄漏)应该尽可能低。主要的泄漏来源包括:数字采样时钟的谐波(如10MHz采样时钟会在10MHz、20MHz、30MHz…产生谐波)、电源开关噪声(通常在低频)、混频器本地振荡泄漏(LO泄漏)、以及器件非线性产生的谐波。抑制这些泄漏的方法包括:低通滤波器滤除高频谐波、平衡调制器抑制载波分量、屏蔽减少电磁泄漏、阻抗匹配减少反射。频谱纯度不仅影响相邻频道,还可能违反法规——大多数国家对带外泄漏有严格要求。在SDR发射机中,正确设置插值滤波器和重采样滤波器对净化频谱很重要,插值滤波器的衰减应该足够大(如60-80dB),以确保镜像频率被充分抑制。

8.3 发射功率优化

功率优化涉及合规和效率。

flowchart TD
    subgraph Power_Opt[功率优化]
        direction TB
        Min["最小:<br/>刚好够<br/>SNR满足"]
        Max["最大:<br/>法律限制<br/>不能超过"]
        Optimal["最优:<br/>安全余量<br/>低于限制2-3dB"]
    end

    subgraph Calc[功率计算]
        P1["EIRP计算:<br/>输出功率<br/>+天线增益"]
        P2["路径损耗:<br/>自由空间<br/>衰减公式"]
        P3["接收机灵敏度:<br/>最小可检测<br/>信号强度"]

        P1 -->|预算| Max
        P2 -->|考虑| Min
        P3 -->|需求| Min
    end

    subgraph Adjustment[功率调整]
        Up["增加:<br/>如果太弱<br/>增加增益"]
        Down["减少:<br/>如果太强<br/>降低增益"]
        Measure["测量:<br/>频谱分析<br/>实际功率"]

        Up -->|操作| Power_Opt
        Down -->|操作| Power_Opt
        Measure -.->|验证| Power_Opt
    end

    subgraph Spec[法规限制]
        Reg1["FCC(美国):<br/>不同频段<br/>不同限制"]
        Reg2["CE(欧洲):<br/>ETSI标准<br/>详细规范"]
        Reg3["ITU:<br/>国际建议<br/>参考标准"]

        Reg1 -.->|遵守| Max
        Reg2 -.->|遵守| Max
        Reg3 -.->|参考| Max
    end

    Power_Opt -.->|计算| Calc
    Calc -.->|法规| Spec
    Power_Opt -.->|操作| Adjustment

    style Min fill:#c8e6c9
    style Optimal fill:#a5d6a7
    style Reg1 fill:#e1f5fe

图表讲解:发射功率优化需要在满足需求和遵守法规之间平衡。最小功率是刚好够用——让接收机获得足够的SNR即可。最大功率是法规限制——不同国家和频段有不同的限制(如FCC、ETSI标准)。最优功率是在法律限制以下2-3dB,提供安全余量。计算EIRP(有效全向辐射功率)需要考虑输出功率和天线增益——高增益天线可以等效增加EIRP。自由空间路径损耗公式可以估算距离与功率的关系。调整功率时,使用频谱分析仪测量实际功率。对于SDR实验,建议从最低功率开始,逐步增加,直到达到满意效果或接近法律限制。遵守法规不仅避免法律问题,也是负责任的操作——过度发射可能干扰关键服务(如航空、应急通信)。


九、核心概念总结

概念定义关键要点应用
基带信号原始信息信号低频、携带信息调制输入
调制信息加载到载波AM/FM/PM频谱搬移
调制指数调制深度AM: μ, FM: β控制失真
过调制调制过度μ > 1,AM失真必须避免
频偏FM频率变化Δf_max = β·f_maxFM质量
ASK幅度键控简单但抗干扰差低速数据
FSK频率键控恒定包络蓝牙等
PSK相位键控高效率高性能
EIRP有效辐射功率功率+天线增益法规限制
预加重高频提升+6dB/oct改善SNR

常见问题解答

Q1:为什么AM发射机的效率那么低?有没有办法提高?

:AM发射机的效率低是AM调制方式的根本特性,无法完全消除,但可以改善。

标准AM的效率问题在于载波。在100%调制(μ=1)时,信号总功率的2/3浪费在不传输信息的载波上,只有1/3用于传输信息(两个边带)。这意味着即使发射机消耗100W功率,只有约33W真正携带信息,其他67W只是”加热”天线。

最直接的改善方法是使用抑制载波AM(DSB-LC或DSB-SC),完全去除载波,只发送两个边带。这可以将效率提高到50%,但仍有一半冗余(上下边带携带相同信息)。

更高效的是单边带(SSB),只发送一个边带(上或下),效率可以接近100%(忽略边带滤波器的轻微损耗)。SSB需要复杂的同步载波恢复(Coherent Detection),增加接收机复杂度。

另一种方法是使用兼容单边带(CSSB),发送载波和一个边带,让简单的包络检波器可以解调(如普通AM接收机),同时部分改善效率。或者使用立体声编码,在载波中携带差信号,提高功率利用率。

这些方法都有代价:抑制载波需要同步解调(SSB),或者影响兼容性(SSB)。对于广播应用,传统AM的简单性和兼容性仍然有价值,效率的改善被接收机成本和复杂度抵消。


Q2:我的FM发射机频谱上有一些奇怪的尖峰,是什么原因?

:这些尖峰很可能是杂散频率或谐波,需要定位来源并抑制。

首先确认尖峰的频率和规律。如果尖峰在采样率的整数倍位置(如10MHz采样时钟在10MHz、20MHz、30MHz有尖峰),很可能是数字时钟泄漏,来自SDR硬件的ADC/DAC时钟或FPGA时钟。解决方法是确保采样率时钟倍频的频率分量被充分衰减——插值滤波器需要有足够的衰减(如60-80dB)。

如果尖峰在电源频率的谐波(50/60Hz及其倍频),可能是电源开关噪声耦合到RF路径。解决方法包括改善电源滤波、使用线性电源、或者在RF输入端添加高通滤波器阻断低频。

如果尖峰在LO泄漏频率(本地振荡频率),说明混频器隔离度不够。这可能是硬件问题,但也可以通过更仔细的频率规划避免——选择LO频率使其泄漏不会落在目标频段内。

如果尖峰看似随机分布,可能是器件非线性产生的互调产物——当多个强信号同时存在时,非线性器件会产生f1±f2等组合频率。这通常需要降低输入功率或改善线性度。

如果尖峰与发射频率有某种关系(如整数倍),可能是谐波——发射机PA的非线性产生的。解决方法是改善PA线性度,或增加输出滤波器抑制谐波。

在GNU Radio中,可以添加QT GUI Frequency Sink观察发射频谱,识别尖峰位置和强度,然后针对性地处理。


Q3:我可以发射多强的FM信号而不违法吗?

:这取决于你的位置和使用的频段,不同地区有不同的规定。

在美国(FCC),不同频段有不同的功率限制。例如,在FM广播频段(88-108MHz),最大允许功率根据天线高度和类别(A、B、C、D)从几十瓦到几千瓦不等。在ISM频段(如2.4GHz Wi-Fi),Part 15设备(数字传输)最大允许1W,但Part 18(固定点)和Part 22(蜂窝)等其他服务有不同限制。

在欧洲(ETSI),类似的规则适用,但具体数值可能不同。每个国家都有频谱管理机构,制定当地的功率限制。

关键是,你不能假设”我的发射机功率很低就一定合法”。即使只有100mW,如果你在错误的频段或使用错误的调制方式,也可能是非法的。而且,即使技术上是合法的,你可能需要许可(业余无线电需要考试,商业广播需要执照)。

最佳实践是:

  1. 查阅当地法规(FCC/ETSI/当地机构)
  2. 使用已分配的业余或实验频段
  3. 从最低功率开始,逐步增加,找到最小足够功率
  4. 使用频谱分析仪确保带外发射足够低
  5. 不要在航空、应急或保护频段测试

如有疑问,咨询当地的业余无线电俱乐部或监管机构。


Q4:如何验证我的SDR发射机是否工作正确?

:系统化的测试验证是确保发射机正确工作的关键。

最直接的方法是环路back测试——将发射机输出连接到接收机输入(如果只有一个SDR设备,可以使用衰减器或环路back模块)。如果接收机能够正确解调出你发射的音频,说明整个链路正常工作。

如果硬件环路back不可行,可以使用文件记录和回放方法:

  1. 将发射机输出记录到文件(使用File Sink)
  2. 将文件作为接收机输入(使用File Source)
  3. 比较发射的原始音频和接收的音频

这种方法可以隔离问题——如果解调音频与原始音频匹配良好,发射机和接收机都是正确的。如果有差异,问题可能在发射端(调制、插值、滤波)或接收端(解调、滤波)。

频谱分析也是重要验证手段。在发射机输出端添加QT GUI Frequency Sink,观察发射频谱。应该看到中心频率处的干净峰值,带宽约200kHz(FM),没有明显的杂散尖峰。瀑布图可以显示频谱的稳定性——稳定的发射应该有稳定的瀑布。

时域观察也有帮助。使用QT GUI Time Sink观察已调信号的时域波形。对于FM信号,幅度应该是恒定的(圆/椭圆形状,取决于IQ信号特性),不应该有削波或失真。

最后,你可以使用第二个SDR(或一个真实收音机)接收信号,主观评估音质。如果声音清晰、无失真、无噪声,发射机工作良好。


Q5:SDR发射机能达到和专业设备一样的性能吗?

:这取决于应用场景和性能指标,在某些方面可以接近,在其他方面有差距。

对于业余和实验用途,SDR发射机可以达到相当不错的性能。现代SDR设备(如Ettus USRP、LimeSDR)的相位噪声和频率稳定度已经接近专业设备,能够实现高质量的数字调制。对于许多应用(如LTE、Wi-Fi、卫星通信),SDR发射机可以产生与专业设备非常相似的信号。

对于广播级应用,SDR发射机可能存在差距。专业广播发射机经过精心优化,具有极高的线性度、极低的失真、精密的功率控制,可以7×24小时稳定运行。SDR发射机更通用、灵活,但可能在特定指标(如相位噪声、长期稳定性)上不如专业设备。

SDR发射机的一大优势是灵活性和可重构性。专业广播发射机通常功能固定,而SDR发射机可以通过软件完全重新配置——一个时刻发射FM,下一个时刻发射LTE,只需修改代码。这对于研发、测试和多用途设备非常有价值。

另一个考虑是成本。专业发射机可能非常昂贵(数万到数十万美元),而SDR发射机(如HackRF约$300)+计算机足够强大,可以胜任大多数业余和中级专业应用。

总结:对于学习、实验、业余应用,SDR发射机完全足够。对于商业广播或电信级应用,专业发射机仍然是首选。对于研发和测试,SDR发射机可能是更好的选择。


总结

本文深入探讨了调制技术的原理与实现,并完成了从接收到发射的完整学习之旅。我们学习了:

  1. 基带信号:调制的基础,理解为什么要调制
  2. AM深度解析:频谱结构、调制指数、过调制问题
  3. FM深度解析:频谱特性、窄带vs宽带、调制器实现
  4. PM与数字调制:PM与FM关系、ASK/FSK/PSK/QAM基本原理
  5. FM发射机设计:完整架构、预加重、插值滤波
  6. 发射系统优化:线性度、频谱纯度、功率优化
  7. 法律与安全:法规要求、安全注意事项

通过这7篇文章的学习,你已经从一个SDR初学者成长为具备完整收发能力的SDR工程师。你不仅掌握了理论知识,还具备了实际构建和优化SDR系统的能力。从接收AM/FM广播到构建完整收发系统,从理解电磁波到设计发射机,你已经掌握了SDR的核心技术。

学习回顾与展望

让我们回顾整个学习旅程:

第1篇:无线电系统与信号基础
→ 理解无线电系统模型、信号与载波

第2篇:计算机信号处理与GNU Radio
→ 掌握采样定理、ADC/DAC、GRC编程

第3篇:构建AM接收机
→ 实现第一个完整的接收系统

第4篇:信号处理核心技术
→ 掌握FFT、增益、滤波器设计

第5篇:接收机工作原理与FM收音机
→ 深入理解接收机架构,实现FM接收

第6篇:频谱划分、带宽、噪声、SDR硬件与IQ采样
→ 理解硬件原理,准备实战

第7篇:调制技术与发射系统
→ 完成收发闭环,成为SDR工程师

祝贺你完成了整个SDR学习系列!现在你可以:

  • 设计和构建完整的SDR收发系统
  • 理解各种调制方式的原理与实现
  • 优化接收和发射性能
  • 遵守法规并注意安全
  • 继续深入学习更高级的SDR技术

SDR是一个快速发展的领域,从5G到6G,从认知无线电到AI赋能,新的技术和应用不断涌现。保持学习和实践,你将在这个激动人心的领域中发现更多可能性。

感谢与祝福

感谢你跟随这个学习旅程!SDR的世界广阔而精彩,从接收广播到分析卫星信号,从学习调制到理解通信原理,每一步都是宝贵的积累。

愿你在SDR的探索中收获知识和乐趣,在实践中获得成就感,在无线电波的世界里找到自己的兴趣方向。无论是业余无线电、通信工程、信号处理还是安全研究,SDR都将为你打开新的大门。

祝你继续探索、继续学习、继续创造!

—— 软件定义无线电实战入门系列 完 ——