This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
resources:eval:user-guides:ad-fmcomms2-ebz:software:datafiles [03 Oct 2013 00:07] – [MSK] Di Pu | resources:eval:user-guides:ad-fmcomms2-ebz:software:datafiles [27 Jan 2021 22:20] (current) – use wp> interwiki links Robin Getz | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | In this section, we provide the reference data files of several frequently used digital baseband modulation schemes and their corresponding Simulink models. With these data files, you are ready to transmit them using FMComms2 and test your board. By changing the given Simulink models, you can easily generate your own data files. | + | <WRAP round important 65%> |
+ | This is work in progress, and is not yet 100% complete. | ||
+ | </ | ||
+ | |||
+ | In this section, we provide the reference data files of several frequently used digital baseband modulation schemes and their corresponding Simulink models. With these data files, you are ready to transmit them using the AD9361 found on the FMComms2 | ||
<WRAP round info 65%> | <WRAP round info 65%> | ||
In order to run the models on this page, your MATLAB license needs to include the following components: | In order to run the models on this page, your MATLAB license needs to include the following components: | ||
- | * MATLAB | + | * MATLAB |
- | * Simulink | + | * Simulink |
- | * Communications System Toolbox | + | * Communications System Toolbox |
- | * DSP System Toolbox | + | * DSP System Toolbox |
</ | </ | ||
+ | |||
+ | ===== Data transfer ===== | ||
+ | |||
+ | Once files have been created by MATLAB/ | ||
+ | |||
===== QPSK ===== | ===== QPSK ===== | ||
Line 15: | Line 24: | ||
PSK is one type of the phase modulation (PM) schemes. In this section, two flavors of QPSK data are generated, one with raised cosine pulse shaping filters, and the other one without. | PSK is one type of the phase modulation (PM) schemes. In this section, two flavors of QPSK data are generated, one with raised cosine pulse shaping filters, and the other one without. | ||
- | Since we would like to transmit the QPSK at a sample rate of 20M Symbols/s with AD-FMCOMMS2, the sample time specified in " | + | Since we would like to transmit the QPSK at a sample rate of 20M Symbols/s with AD9361, the sample time specified in " |
==== QPSK without Pulse Shaping ==== | ==== QPSK without Pulse Shaping ==== | ||
Line 34: | Line 43: | ||
=== Data === | === Data === | ||
+ | <WRAP round info 65%> | ||
+ | Once the transmitted signals are in workspace, we use the following two lines to write them to a text file: | ||
+ | |||
+ | <code matlab> | ||
+ | newdata = [I1 Q1 I2 Q2]; | ||
+ | |||
+ | dlmwrite(' | ||
+ | </ | ||
+ | |||
+ | You open this text file and manually add the word " | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
<WRAP round download 80%> | <WRAP round download 80%> | ||
You can download the generated data from below: | You can download the generated data from below: | ||
Line 54: | Line 77: | ||
=== Model === | === Model === | ||
- | The figure below shows a QPSK transmission model with the pulse shaping filters. Since pulse shaping filters are often distributed as a matched pair between transmitter and receiver, we use the filter shape of ‘Square root’(([[http:// | + | The figure below shows a QPSK transmission model with the pulse shaping filters. Since pulse shaping filters are often distributed as a matched pair between transmitter and receiver, we use the filter shape of ‘Square root’(([[wp>Root-raised-cosine_filter|Root-raised-cosine filter]])). |
{{QPSKwithfilter.png? | {{QPSKwithfilter.png? | ||
Line 61: | Line 84: | ||
You can download the Simulink model from below: | You can download the Simulink model from below: | ||
* {{qpskwithfilt_model.zip}} | * {{qpskwithfilt_model.zip}} | ||
+ | The data rate is defined in the parameter '' | ||
</ | </ | ||
Line 82: | Line 106: | ||
<WRAP round download 80%> | <WRAP round download 80%> | ||
You can download the generated data from below: | You can download the generated data from below: | ||
- | * {{qpskwithfilt_data.zip}} | + | * {{qpskwithfilt_txt.zip}} |
+ | The data rate is 30.72 MSPS. | ||
It is in the same format as the data in previous section. | It is in the same format as the data in previous section. | ||
+ | </ | ||
+ | |||
+ | ==== Data Verification ==== | ||
+ | |||
+ | Before you look at the IIO Oscilloscope (([[/ | ||
+ | |||
+ | {{iiosetting_new.png? | ||
+ | |||
+ | <WRAP round info 80%> | ||
+ | The DCXO setting can be different from board to board. You are suggested to find a proper setting using signal generator and spectrum analyzer in the lab. | ||
+ | </ | ||
+ | |||
+ | Since there is no match filter on AD9361 receive path, the data obtained from AD9361 receiver side does not show the constellation of QPSK clearly. Therefore, by simply looking at the ADI IIO Oscilloscope, | ||
+ | |||
+ | {{qpsk_osc_new.png? | ||
+ | |||
+ | However, with the '' | ||
+ | |||
+ | {{savedata.png? | ||
+ | |||
+ | |||
+ | |||
+ | Given the received data, we can now proceed to the Simulink receiver model to verify the data. After you launch MATLAB and the receiver model '' | ||
+ | In this model, the data rate is the same as the generated data rate (30.72 MSPS), and the receive filter is the match of the transmit filter. When looking at the IIO scope, we found the constellation of the received signal from the AD9361 shows a rotation compared to the transmitted signal, so a '' | ||
+ | |||
+ | {{qpsk_waveform_verify_new.png? | ||
+ | |||
+ | |||
+ | <WRAP round download 80%> | ||
+ | You can download the saved mat data file from below: | ||
+ | * {{qpskwithfilt_mat.zip}} | ||
+ | |||
+ | You can download the receiver model from below: | ||
+ | * {{qpsk_receiver_new.zip}} | ||
+ | |||
+ | Make sure you load the mat data file in the workspace first. Otherwise, the model will not run. | ||
+ | |||
+ | The data rate is defined in the parameter '' | ||
+ | </ | ||
+ | |||
+ | <WRAP tip 80%> | ||
+ | A few tips for verification, | ||
+ | * Make the data rate consistent in data generation and receiver. | ||
+ | * Set the IIO parameters properly, such as ADC and DAC sample rate. | ||
+ | * Compensate for the phase offset occurred in AD9361. | ||
</ | </ | ||
Line 99: | Line 169: | ||
<WRAP round download 80%> | <WRAP round download 80%> | ||
You can download the Simulink model from below: | You can download the Simulink model from below: | ||
- | * {{qam16_model.zip}} | + | * {{qam16_model.zip}} |
+ | The data rate is defined in the parameter '' | ||
</ | </ | ||
Line 106: | Line 177: | ||
<WRAP round download 80%> | <WRAP round download 80%> | ||
You can download the generated 16-QAM data from below: | You can download the generated 16-QAM data from below: | ||
- | * {{qam16_data.zip}} | + | * {{qam16_20Mdata.zip}} |
- | It is in the same format as the data in previous sections. | + | It is in the same format as the data in previous sections |
+ | </ | ||
+ | |||
+ | ==== Data Verification ==== | ||
+ | |||
+ | Since there is no match filter on AD9361 receive path, the data obtained from AD9361 receiver side does not show a clear constellation of 16-QAM. Actually, since the order of 16-QAM is higher than that of QPSK in the previous section, the constellation here is even more noisy compared to QPSK, as shown in the figure below. | ||
+ | |||
+ | {{qam16.png? | ||
+ | |||
+ | However, with the '' | ||
+ | |||
+ | <WRAP round download 80%> | ||
+ | You can download the saved mat data file from below: | ||
+ | * {{qam16_20.zip}} | ||
+ | </ | ||
+ | |||
+ | |||
+ | Given the received data, we can now proceed to the Simulink receiver model to verify the data. After you launch MATLAB and the receiver model '' | ||
+ | |||
+ | {{qam16_verified.png? | ||
+ | |||
+ | <WRAP round download 80%> | ||
+ | You can download the receiver model from below: | ||
+ | * {{qam16_receiver.zip}} | ||
+ | The data rate is defined in the parameter '' | ||
</ | </ | ||
===== MSK ===== | ===== MSK ===== | ||
- | MSK stands for minimum shift keying. It is one type of the continuous phase modulation (CPM) schemes (([[http:// | + | MSK stands for minimum shift keying. It is one type of the continuous phase modulation (CPM) schemes (([[wp>Minimum-shift_keying|Minimum-shift keying]])). In this section, we use "MSK Modulator Baseband" |
==== Model ==== | ==== Model ==== | ||
Line 123: | Line 218: | ||
You can download the Simulink model from below: | You can download the Simulink model from below: | ||
* {{msk_model.zip}} | * {{msk_model.zip}} | ||
+ | The data rate is defined in the parameter '' | ||
</ | </ | ||
Line 130: | Line 226: | ||
<WRAP round download 80%> | <WRAP round download 80%> | ||
You can download the generated MSK data from below: | You can download the generated MSK data from below: | ||
- | * {{msk_data.zip}} | + | * {{msk_20mdata.zip}} |
- | It is in the same format as the data in previous sections. | + | It is in the same format as the data in previous sections |
</ | </ | ||
+ | ==== Data Verification ==== | ||
+ | Since there is no match filter on AD9361 receive path, the data obtained from AD9361 receiver side does not show a clear constellation of MSK signals, as shown in the figure below. However, it matches the "Rx Without Receive Filter" | ||
+ | {{msk_osc.png? | ||
+ | |||
+ | With the '' | ||
+ | |||
+ | <WRAP round download 80%> | ||
+ | You can download the saved mat data file from below: | ||
+ | * {{msk_20.zip}} | ||
+ | </ | ||
+ | |||
+ | Given the received data, we can now proceed to the Simulink receiver model to verify the data. After you launch MATLAB and the receiver model '' | ||
+ | |||
+ | {{msk_receiver.png? | ||
+ | |||
+ | <WRAP round download 80%> | ||
+ | You can download the receiver model from below: | ||
+ | * {{msk_receiver.zip}} | ||
+ | The data rate is defined in the parameter '' | ||
+ | </ | ||
===== LTE ===== | ===== LTE ===== | ||
Line 150: | Line 266: | ||
The figure below shows a LTE example according to the specifications developed by the Third Generation Partnership Project (3GPP). It highlights only the downlink physical channel (PDSCH) processing. | The figure below shows a LTE example according to the specifications developed by the Third Generation Partnership Project (3GPP). It highlights only the downlink physical channel (PDSCH) processing. | ||
- | Since LTE is a sophisticated standard, you are encouraged to read the Help Document of this example and its related references to get more information (([[http:// | + | Since LTE is a sophisticated standard, you are encouraged to read the Help Document of this example and its related references to get more information (([[mw>help/ |
{{LTE.png? | {{LTE.png? | ||
- | After you run the model, the transmitted data named " | + | After you run the model, the transmitted data named " |
<WRAP round download 80%> | <WRAP round download 80%> | ||
Line 161: | Line 277: | ||
</ | </ | ||
- | When the data is transmitted and received by real-world hardware, like FMComms2, it is difficult to observe the clear constellation without proper synchronization techniques. However, even with the basic settings, you are still expected to observe the transmit and receive spectrum, which is similar to the following: | + | When the data is transmitted and received by real-world hardware, like AD9361 |
{{LTEspectrum.png}} | {{LTEspectrum.png}} |