Документация Engee
Notebook

Системы DSB‑SC

В рамках данного примера была разработана имитационная модель в среде Engee, реализующая двухполосную модуляцию с подавленной несущей (DSB-SC, Double-Sideband Suppressed-Carrier). Основная цель моделирования — наглядно продемонстрировать процесс формирования DSB-SC сигнала. Особое внимание уделено влиянию параметров фильтра нижних частот (ФНЧ) в тракте демодулятора на точность воспроизведения сигнала.

Двухполосная модуляция с подавленной несущей — это вид аналоговой амплитудной модуляции, при котором несущее колебание полностью подавляется, а передаются только две боковые полосы, симметричные относительно частоты несущей. Математически DSB-SC сигнал описывается как произведение модулирующего сигнала на гармоническую несущую:

Такое построение позволяет значительно повысить энергоэффективность передатчика по сравнению с классической АМ: вся мощность расходуется на передачу полезной информации, а не на излучение несущего колебания, не содержащего данных. DSB-SC широко применяется в системах стереофонического радиовещания, спутниковой и радиорелейной связи, а также в измерительной технике.

Демодуляция DSB-SC сигнала возможна только методом синхронного детектирования, который предполагает перемножение принятого сигнала с опорным колебанием, идентичным несущей по частоте и фазе. В результате перемножения формируются две составляющие:

image.png

Модель построена в среде Engee и включает следующие функциональные блоки:

  • Генератор синусоидального сигнала — имитирует передаваемое сообщение.
  • Zero-Order Hold — обеспечивает квантование сигнала по времени.
  • DSBSC AM Modulator Passband — осуществляет модуляцию путем перемножения входного сигнала на несущее колебание с частотой 300 Гц и начальной фазой 0 рад.
  • Сумматор и источник шума — к модулированному сигналу добавляется белый гауссовский шум для имитации воздействия реальной среды передачи.
  • DSBSC AM Demodulator Passband — выполняет синхронное детектирование (перемножение с несущей 300 Гц) и последующую фильтрацию. Параметры встроенного ФНЧ: метод проектирования Баттерворта, порядок 8, частота среза 40 Гц.
  • Блок вычисления ошибки (сумматор) — рассчитывает разность между исходным дискретным сигналом (с выхода Zero-Order Hold) и выходом демодулятора.
In [ ]:
function run_model( name_model)
    Path = (@__DIR__) * "/" * name_model * ".engee"
    if name_model in [m.name for m in engee.get_all_models()] 
        model = engee.open( name_model ) 
        model_output = engee.run( model, verbose=true ); 
    else
        model = engee.load( Path, force=true ) 
        model_output = engee.run( model, verbose=true );
        engee.close( name_model, force=true );
    end
    sleep(0.1)
    return model_output
end
run_model("DSB-SC")
Building...
Progress 0%
Progress 5%
Progress 10%
Progress 15%
Progress 21%
Progress 26%
Progress 31%
Progress 37%
Progress 42%
Progress 47%
Progress 52%
Progress 57%
Progress 63%
Progress 68%
Progress 73%
Progress 78%
Progress 84%
Progress 89%
Progress 94%
Progress 100%
Progress 100%
Out[0]:
SimulationResult(
    run_id => 2,
    "DSBSC AM Modulator Passband-1.1" => WorkspaceArray{Float64}("DSB-SC/DSBSC AM Modulator Passband-1.1")
,
    "Zero-Order Hold.1" => WorkspaceArray{Float64}("DSB-SC/Zero-Order Hold.1")
,
    "DSBSC AM Demodulator Passband.1" => WorkspaceArray{Float64}("DSB-SC/DSBSC AM Demodulator Passband.1")
,
    "Add-1.1" => WorkspaceArray{Float64}("DSB-SC/Add-1.1")

)
In [ ]:
Input = collect(simout["DSB-SC/Zero-Order Hold.1"]).value
Modulator = collect(simout["DSB-SC/DSBSC AM Modulator Passband-1.1"]).value
Demodulator = collect(simout["DSB-SC/DSBSC AM Demodulator Passband.1"]).value
Error = collect(simout["DSB-SC/Add-1.1"]).value
t = collect(simout["DSB-SC/Add-1.1"]).time
Out[0]:
150001-element Vector{Float64}:
  0.0
  0.0001
  0.0002
  0.0003
  0.0004
  0.0005
  0.0006
  0.0007
  0.0008
  0.0009
  0.001
  0.0011
  0.0012
  ⋮
 14.9989
 14.999
 14.9991
 14.9992
 14.9993
 14.9994
 14.9995
 14.9996
 14.9997
 14.9998
 14.9999
 15.0
In [ ]:
gr(fmt=:png, size=(800, 400), titlefont=font(12), guidefont=font(10), legendfont=font(9))

p1 = plot(t, Input, 
          label="Исходный сигнал", 
          linewidth=1.5, 
          color=:blue)
plot!(t, Demodulator, 
      label="Демодулированный сигнал", 
      linewidth=1.5, 
      color=:red, 
      linestyle=:dash)
plot!(p1, title="Сравнение исходного и демодулированного сигналов",
          xlabel="Время, с", 
          ylabel="Амплитуда", 
          legend=:topright)

p2 = plot(t, Error, 
          label="Ошибка декодирования", 
          linewidth=1.0, 
          color=:black)
plot!(p2, title="Ошибка декодирования (разность сигналов)",
          xlabel="Время, с", 
          ylabel="Амплитуда ошибки", 
          legend=:topright)

p3 = plot(t, Modulator, 
          label="Модулированный сигнал (DSB-SC)", 
          linewidth=0.8, 
          color=:green)

plot!(p3, title="Сигнал на выходе DSB-SC модулятора",
          xlabel="Время, с", 
          ylabel="Амплитуда", 
          legend=:topright)

final_plot = plot(p1, p2, p3, layout=(3, 1), size=(800, 1000))
Out[0]:
No description has been provided for this image

Анализ построенных графиков выявил следующие эффекты:

  1. На первом графике («Сравнение исходного и демодулированного сигналов») видно, что исходный сигнал представляет собой чистую синусоиду частотой 1 Гц. Демодулированный сигнал в целом точно повторяет форму исходного сообщения, однако наблюдается наличие высокочастотных пульсаций (около 600 Гц), наложенных на основную синусоиду.
  2. На втором графике («Ошибка декодирования») отчетливо видно, что разность сигналов также содержит высокочастотные пульсации и не стремится к абсолютному нулю, что свидетельствует о наличии остаточных искажений.

Таким образом, общая огибающая сигнала сохраняется, но присутствие паразитных колебаний препятствует достижению нулевой ошибки. Это объясняется совокупностью следующих факторов:

  • Фазовые искажения и групповая задержка фильтра.
  • Переходные процессы фильтра.

Вывод

Разработанная имитационная модель успешно демонстрирует физические принципы DSB-SC модуляции и синхронного детектирования. Экспериментально подтверждено, что качество восстановления сигнала критически зависит от параметров ФНЧ в демодуляторе. Полученные результаты наглядно иллюстрируют инженерный компромисс при проектировании реальных систем связи: баланс между сложностью фильтра, его фазовыми искажениями и требуемым качеством демодуляции.