Main Content

networkTrafficVideoConference

Video conference application traffic pattern generator

    Description

    The networkTrafficVideoConference object specifies the configuration parameters to generate a video conference application traffic pattern based on the IEEE® 802.11ax™ Evaluation Methodology.

    You can use the video conference application traffic pattern in 5G and WLAN (requires WLAN Toolbox™) system-level simulations to accurately model real-world data traffic.

    Creation

    Description

    example

    cfgVideo = networkTrafficVideoConference creates a default video application traffic pattern object.

    example

    cfgVideo = networkTrafficVideoConference(Name,Value) sets Properties using one or more name-value pair arguments. Enclose each property name in quotes. For example, 'HasJitter',false specifies that the video application pattern does not model jitter.

    Properties

    expand all

    Time interval between two consecutive video frames, specified as a positive integer. This value is expressed in milliseconds.

    Data Types: double

    Option to set source for video frame size, specified as one of these values.

    • 'WeibullDistribution' — Use the video frame size value calculated by the Weibull probability distribution function.

    • 'FixedSize' — Use the video frame size value specified by the FixedFrameSize property.

    Data Types: char | string

    Size of the video frame, specified as an integer in the range [1, 15,000]. This value is expressed in bytes. The video frame can be segmented into multiple network packets based on this value.

    Dependencies

    To enable this property, set the FrameSizeMethod property to 'FixedSize'.

    Data Types: double

    Scale parameter for the Weibull distribution to calculate the video frame size, specified as a scalar in the range (0, 54,210].

    Dependencies

    To enable this property, set the FrameSizeMethod property to 'WeibullDistribution'.

    Data Types: double

    Shape parameter for the Weibull distribution to calculate the video frame size, specified as a scalar in the range (0, 1].

    Dependencies

    To enable this property, set the FrameSizeMethod property to 'WeibullDistribution'.

    Data Types: double

    Flag to indicate whether to model network jitter, specified as a logical 1 (true) or 0 (false). The object applies jitter between the segmented packets. If you set this property to 1 (true), the object models jitter using the Gamma probability distribution function.

    Data Types: logical

    Shape parameter for the Gamma distribution to calculate network jitter, specified as a scalar in the range (0, 5].

    Dependencies

    To enable this property, set the HasJitter property to 1 (true).

    Data Types: double

    Scale parameter for the Gamma distribution to calculate network jitter, specified as a scalar in the range (0, 10].

    Dependencies

    To enable this property, set the HasJitter property to 1 (true).

    Data Types: double

    Protocol overheads in network traffic, specified as an integer in the range [0, 60]. To add layer 3, layer 4, and application protocol overheads in network traffic, enable this property. This value is expressed in bytes.

    Data Types: double

    Flag to indicate whether to generate a video packet with payload, specified as a logical 1 (true) or 0 (false). To generate a video packet with payload, set this property to 1 (true). If you set this property to 0 (false), the generate object function generates no application data packet.

    Data Types: logical

    Application data to be added in the video packet, specified as a column vector of integers in the range [0, 255].

    • If the size of the application data is greater than the packet size, the object truncates the application data.

    • If the size of the application data is less than the packet size, the object appends zeros.

    Dependencies

    To enable this property, set the GeneratePacket property to 1 (true).

    Data Types: double

    Object Functions

    expand all

    generateGenerate next FTP, On-Off, VoIP, or video conference application traffic packet

    Examples

    collapse all

    Create a default video application traffic pattern object.

    cfgVideo = networkTrafficVideoConference
    cfgVideo = 
      networkTrafficVideoConference with properties:
    
           FrameInterval: 40
         FrameSizeMethod: 'WeibullDistribution'
            WeibullScale: 6950
            WeibullShape: 0.8099
               HasJitter: 0
        ProtocolOverhead: 28
          GeneratePacket: 0
    
    

    Generate a video application traffic pattern.

    [dt,packetSize] = generate(cfgVideo);

    Create a video application traffic pattern object to generate a video data packet. Specify the frame interval in milliseconds.

    cfgVideo = networkTrafficVideoConference('GeneratePacket',true);
    cfgVideo.FrameInterval = 60;

    Generate a video application traffic pattern and data packet.

    [dt,packetSize,packet] = generate(cfgVideo);

    Create a video application traffic pattern object to generate a video frame of size 400 bytes.

    cfgVideo = networkTrafficVideoConference('FrameSizeMethod','FixedSize','FixedFrameSize',400);

    Specify the elapsed time in milliseconds.

    elapsedTime = 10;

    After every elapsed time value, invoke the video application traffic pattern object to generate five video data packets.

    for i = 1:5
        while true
            [dt,packetSize] = generate(cfgVideo,elapsedTime);
            if packetSize
                fprintf('Video data packet %d generated\n',i);
                break;
            end
        end
    end
    Video data packet 1 generated
    Video data packet 2 generated
    Video data packet 3 generated
    Video data packet 4 generated
    Video data packet 5 generated
    

    Create a default video application traffic pattern object.

    cfgVideo = networkTrafficVideoConference;

    Generate a video application traffic pattern with 100 video packets.

    for packetCount = 1:100
        [dt(packetCount),packetSize(packetCount)] = generate(cfgVideo);
    end

    Visualize the video packet sizes.

    stem(packetSize);
    title('Packet Size Versus Packet Number');
    xlabel('Packet Number');
    ylabel('Packet Size in Bytes');

    Figure contains an axes. The axes with title Packet Size Versus Packet Number contains an object of type stem.

    Visualize the video packet intervals.

    figure;
    stem(dt);
    title('dt Versus Packet Number');
    xlabel('Packet Number');
    ylabel('dt in Milliseconds');

    Figure contains an axes. The axes with title dt Versus Packet Number contains an object of type stem.

    References

    [1] IEEE 802.11-14/0571r12. "11ax Evaluation Methodology." IEEE P802.11. Wireless LANs. https://www.ieee.org.

    Extended Capabilities

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    Introduced in R2021a