Речь по IP (VoIP) в Simulink

Этот пример иллюстрирует, что использование UDP Отправляет, и UDP Получают блоки, чтобы передать аудиоданные по сети.

Пользовательский дейтаграммный протокол (UDP)

Пользовательский дейтаграммный протокол (UDP) является частью комплекта межсетевого протокола (IP). UDP обеспечивает эффективную передачу данных, но не гарантирует надежности, порядка данных или целостности данных. Эти характеристики делают UDP подходящим для передачи потокового аудио и видеоданных, но не для двоичных файлов и аналогичных ситуаций, где потеря данных недопустима.

Исследование примера

Можно запустить этот пример полностью в одной системе. Однако, чтобы продемонстрировать UDP в сети, лучше запускать пример на двух сетевых компьютерах. Если второму компьютеру установили программное обеспечение Simulink, можно запустить пример на нем непосредственно. В противном случае используйте Simulink® Coder™, чтобы сгенерировать независимый исполняемый файл, который может работать на втором компьютере.

Во-первых, запустите и dspUDPEcho модель и dspUDPVoip модель на одиночном компьютере. Модели передают аудиоданные друг другу через localhost порт, 127.0.0.1.

dspUDPVoip модель передает аудиоданные к dspUDPEcho. dspUDPEcho модель повторяет данные назад к dspUDPVoip, который выводит сигнал на ваших динамиках.

Если у вас есть микрофон, можно использовать Ручной Переключатель в dspUDPVoip модели, чтобы передать живое аудио вместо синусоиды.

Запустив модели на одиночном компьютере, скопируйте dspUDPEcho во второй компьютер. В обеих моделях обновитесь, IP-адрес в UDP Отправляют от 127.0.0.1 до IP-адреса противоположного компьютера. Когда вы запускаете обе модели, они передают звуковые сигналы друг другу по сети.

% Open both models and run simultaneously
open_system('dspUDPEcho');
open_system('dspUDPVoip');
set_param('dspUDPEcho', 'SimulationCommand', 'Start');
set_param('dspUDPVoip', 'SimulationCommand', 'Start');

% Let the models run for five seconds
pause(5);

% Stop the simulation
set_param('dspUDPVoip', 'SimulationCommand', 'Stop');
set_param('dspUDPEcho', 'SimulationCommand', 'Stop');

Закройте модели

bdclose dspUDPEcho
bdclose dspUDPVoip

Отладка вашего сетевого подключения

Если вы не можете передать сигнал по сети, проверяйте следующие элементы:

  • То, что ваш брандмауэр не блокирует номера портов IP, вы используете. В случае необходимости консультируйтесь со своим системным администратором или документацией по операционной системе.

  • То, что вы используете свободный номер порта IP. Один не использование другим приложением.

  • То, что операционная система не ограничивает номер порта привилегированным пользователем. Например, Linux обычно ограничивает порты ниже 1024 для использования пользователем root.

В случае необходимости консультируйтесь со своим системным администратором или операционной системой для получения дополнительной информации.

Ссылки

Статья в Википедии о UDP

Postel, J., Пользовательский Дейтаграммный Протокол, https://tools.ietf.org/html/rfc768

Доступные версии в качестве примера

Аудио Передатчик и Получатель: dspUDPVoip

Подсистема Эха UDP: dspUDPEcho