MATLAB-модель к третьей (практической) главе дипломной работы. Сквозной вычислительный эксперимент проходит сигнал от формирования речи до излучения звука: источник → полосовая фильтрация → кодек G.711 → сеть передачи → радиоканал с замираниями → аварийный контроллер → аудиотракт и резервное питание. Каждая секция строит график и печатает в консоль числовые показатели, которые переносятся в текст главы (рисунки 5–8, значения SNR, SPL, времени реакции и т. д.).
| Компонент | Назначение |
|---|---|
| MATLAB R2018b+ | среда моделирования и визуализации |
| Signal Processing Toolbox (опционально) | проектирование фильтра Баттерворта (butter) |
| Базовый MATLAB | FFT, генерация сигналов, графики, конечный автомат |
Signal Processing Toolbox не обязателен: при его отсутствии полосовая фильтрация автоматически выполняется через FFT-реализацию (
local_fft_bandpassв bp_filter.m), поэтому модель запускается на «голом» MATLAB.
MATLAB_Part3/
├── README.md
└── модели/
├── glava3_model.m — главный скрипт: 8 секций моделирования (рис. 5–8)
├── bp_filter.m — полосовой фильтр 300–3400 Гц (Баттерворт / FFT)
├── g711_encode.m — кодер G.711 μ-law (8 бит, 64 кбит/с)
├── g711_decode.m — декодер G.711 μ-law
├── alarm_fsm.m — конечный автомат аварийного контроллера
└── test_glava3.m — модульные тесты (фильтр, кодек, автомат, формулы)
Скрипт glava3_model.m разбит на 8 секций:
- Общие параметры — частота дискретизации 8 кГц, речевая полоса 300–3400 Гц.
- Источник сигнала (рис. 5) — синтез речеподобного сигнала с гармониками, формантами и огибающей.
- Фильтрация (рис. 6) — полосовая фильтрация и сравнение спектров до/после.
- Кодек G.711 — μ-law кодирование/декодирование, оценка SNR квантования и MOS.
- Сеть передачи — модель задержки, джиттера и потерь пакетов с маскированием.
- Радиоканал (рис. 7) — расчёт уровня приёма по бюджету линии и замирания.
- Аварийный контроллер (рис. 8) — конечный автомат (IDLE → ALARM → EVACUATION / TEST / FAULT) и проверка времени реакции < 1 с.
- Аудиотракт и питание — усиление и ограничение, расчёт SPL, резервирование питания с переключением на аккумулятор.
cd модели
% Полный эксперимент со всеми графиками и выводом показателей
glava3_model
% Проверка корректности отдельных блоков
test_glava3 % → 'ALL TESTS PASSED'test_glava3.m проверяет ключевые блоки независимо от основного скрипта:
test_bp_filter— внутриполосный тон проходит, внеполосные подавляются;test_g711— тип кодаuint8и достаточный SNR восстановления;test_alarm_fsm— корректные переходы состояний автомата;test_formulas— контрольные расчёты (бюджет линии, SPL, время реакции).