# adi.FMComms2.Tx <!-- <div class="sysobj_h1">adi.FMComms2.Tx</div> --> <!-- <div class="sysobj_top_desc"> Receive data from Analog Devices AD9361 transceiver </div> --> <!-- <div class="sysobj_desc_title">Description</div> --> <div class="sysobj_desc_txt"> <span> The adi.FMComms2.Tx System object is a signal source that can <br> send complex data to the FMComms2.<br> <br> tx = adi.FMComms2.Tx;<br> tx = adi.FMComms2.Tx('uri','ip:192.168.2.1');<br> <br> <a href="https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/EVAL-AD-FMCOMMS2.html">Product Page</a><br> <br> </span> </div> <div class="sysobj_desc_title">Creation</div> The class can be instantiated in the following way with and without property name value pairs. ```matlab dev = adi.FMComms2.Tx dev = adi.FMComms2.Tx(Name, Value) ``` <div class="sysobj_desc_title">Properties</div> <div class="sysobj_desc_txt"> <span> Unless otherwise indicated, properties are non-tunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them. <br><br> If a property is tunable, you can change its value at any time. <br><br> For more information on changing property values, see <a href="https://www.mathworks.com/help/matlab/matlab_prog/system-design-in-matlab-using-system-objects.html">System Design in MATLAB Using System Objects.</a> </span> </div> <br> :::{dropdown} CenterFrequency RF center frequency, specified in Hz as a scalar. The default is 2.4e9. This property is tunable. ::: :::{dropdown} SamplingRate Baseband sampling rate in Hz, specified as a scalar from 65105 to 61.44e6 samples per second. ::: :::{dropdown} RFBandwidth RF Bandwidth of front-end analog filter in Hz, specified as a scalar from 200 kHz to 56 MHz. ::: :::{dropdown} AttenuationChannel0 Attentuation specified as a scalar from -89.75 to 0 dB with a resolution of 0.25 dB. ::: :::{dropdown} AttenuationChannel1 Attentuation specified as a scalar from -89.75 to 0 dB with a resolution of 0.25 dB. ::: :::{dropdown} RFPortSelect 'A' 'B' ::: :::{dropdown} SamplesPerFrame Number of samples per frame, specified as an even positive integer from 2 to 16,777,216. Using values less than 3660 can yield poor performance. ::: :::{dropdown} EnableCustomFilter Enable use of custom filter file to set SamplingRate, RFBandwidth, and FIR in datapaths ::: :::{dropdown} CustomFilterFileName Path to custom filter file created from filter wizard ::: :::{dropdown} EnabledChannels Indexs of channels to be enabled. Input should be a [1xN] vector with the indexes of channels to be enabled. Order is irrelevant ::: :::{dropdown} uri Hostname or IP address of remote libIIO device ::: :::{dropdown} enIO If true, connects to libIIO device during simulation ::: :::{dropdown} DataSource Data source, specified as one of the following: 'DMA' — Specify the host as the source of the data. 'DDS' — Specify the DDS on the radio hardware as the source of the data. In this case, each channel has two additive tones. ::: :::{dropdown} DDSFrequencies Frequencies values in Hz of the DDS tone generators. For complex data devices the input is a [2xN] matrix where N is the available channels on the board. For complex data devices this is at most max(EnabledChannels)*2. For non-complex data devices this is at most max(EnabledChannels). If N < this upper limit, other DDSs are not set. ::: :::{dropdown} DDSScales Scale of DDS tones in range [0,1]. For complex data devices the input is a [2xN] matrix where N is the available channels on the board. For complex data devices this is at most max(EnabledChannels)*2. For non-complex data devices this is at most max(EnabledChannels). If N < this upper limit, other DDSs are not set. ::: :::{dropdown} DDSPhases Phases of DDS tones in range [0,360000]. For complex data devices the input is a [2xN] matrix where N is the available channels on the board. For complex data devices this is at most max(EnabledChannels)*2. For non-complex data devices this is at most max(EnabledChannels). If N < this upper limit, other DDSs are not set. ::: :::{dropdown} EnableCyclicBuffers Enable Cyclic Buffers, configures transmit buffers to be cyclic, which makes them continuously repeat ::: <br> <div class="sysobj_desc_title">Example Usage</div> ```matlab %% Configure device tx = adi.FMComms2.Tx; tx.uri = 'ip:analog.local'; tx.CenterFrequency = 1e9; tx.DataSource = 'DMA'; tx.EnableCyclicBuffers = true; tx.EnabledChannels = 1; %% Generate tone amplitude = 2^15; frequency = 0.12e6; swv1 = dsp.SineWave(amplitude, frequency); swv1.ComplexOutput = true; swv1.SamplesPerFrame = 2^14; swv1.SampleRate = tx.SamplingRate; y = swv1(); % Send tx(y); ```