This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
resources:tools-software:sharc-audio-module:baremetal:matlab_volume_control [19 Aug 2019 22:11] Chad Wentworth [Generating C Code with Matlab Coder] |
resources:tools-software:sharc-audio-module:baremetal:matlab_volume_control [19 Aug 2019 22:26] Chad Wentworth |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | =====Using a Matlab Volume Control Function in the Framework===== | + | =====Using a MATLAB Volume Control Function in the Framework===== |
- | Matlab gives users the ability to create powerful audio algorithms. This tutorial gives an overview of how to create a simple volume control function and then add it to the baremetal framework. | + | MATLAB gives users the ability to create powerful audio algorithms. This tutorial gives an overview of how to create a simple volume control function and then add it to the baremetal framework. |
<WRAP round 60% important> | <WRAP round 60% important> | ||
- | All Matlab work was using version R2018b | + | All MATLAB work was using version R2018b |
</WRAP> | </WRAP> | ||
- | ====Creating a Function in Matlab==== | + | ====Creating a Function in MATLAB==== |
From the **Home** tab choose **New::Function** and then overwrite all template contents with the following: | From the **Home** tab choose **New::Function** and then overwrite all template contents with the following: | ||
<code>function audio_out = volume_control( audio_in, vol_ctrl_factor ) | <code>function audio_out = volume_control( audio_in, vol_ctrl_factor ) | ||
Line 18: | Line 18: | ||
This function takes an input audio channel, multiplies it by vol_ctrl_factor and stores the result in the output audio channel. It simply changes the volume. Notice that we don't use a for loop because MATLAB has built in implicit expansion for scalar * vector multiplication. The file name should match the function name so name the file volume_control. | This function takes an input audio channel, multiplies it by vol_ctrl_factor and stores the result in the output audio channel. It simply changes the volume. Notice that we don't use a for loop because MATLAB has built in implicit expansion for scalar * vector multiplication. The file name should match the function name so name the file volume_control. | ||
- | ====Testing the Newly Created Function in Matlab==== | + | ====Testing the Newly Created Function in MATLAB==== |
- | In order for Matlab Coder to know what the input variable types are and to verify the function is working properly, a test script needs to be created. From the **Home** tab choose **New::Script** and copy the following contents into the window: | + | In order for MATLAB Coder to know what the input variable types are and to verify the function is working properly, a test script needs to be created. From the **Home** tab choose **New::Script** and copy the following contents into the window: |
<code>AUDIO_BLOCK_SIZE = int32(32); | <code>AUDIO_BLOCK_SIZE = int32(32); | ||
Line 31: | Line 31: | ||
- | ====Generating C Code with Matlab Coder==== | + | ====Generating C Code with MATLAB Coder==== |
<WRAP round 60% important> | <WRAP round 60% important> | ||
Line 54: | Line 54: | ||
- Now the code can be generated | - Now the code can be generated | ||
- **Build type** should be set to **Source Code** | - **Build type** should be set to **Source Code** | ||
- | - **Language** should be **C plus plus** | + | - **Language** should be **C plus plus*** |
- Change **Hardware Board** to **None - Select device below** | - Change **Hardware Board** to **None - Select device below** | ||
- **Device vendor** should be **Analog Devices** | - **Device vendor** should be **Analog Devices** |