Select View ->Library Browser ->Signal Processing Blockset ->Filtering->Adaptive Filters.
Highlight “Adaptive Filters”. Drag-and-drop the “LMS Filter” block onto the model.
Setting the lms filter parameters
The most critical variable in an LMS filter is the “Step size (mu)”.
If “mu” is too small, the filter has very fine resolution, but reacts too slowly to the audio signal.
If “mu” is too great, the filter reacts very quickly, but the error also remains large.
We will start with 0.005.
Adding a delay
From the “Signal Processing Blockset”, highlight “Signal Operations”. Drag-and-drop the “Delay” Since we are working with frames, the delay from “Discrete Components” library will not work! block onto the model.
Setting the delay parameters
Because we are working with frames of 64 samples, it is convenient configure the delay using frames. Double-click on the “Delay” block.
Change the “Delay units” to Frames.
Set the “Delay (frames)” to 1. This makes the delay 64 samples.
Adding a dip switch and led
So we can hear the difference without LMS denoising and with LMS noise reduction, we will use a DIP switch of the DSK6713.
Select View ->Library Browser ->Embedded Target for TI C6000 DSP. Highlight “DSK6713 Board Support”.
Drag-and-drop the “Switch” block onto the model. Also drag-and-drop the “LED” block onto the model.
Dip switch settings
The DIP switch needs to be configured. Double-click on the “Switch” block.
Select all the boxes and set “Data type” to Integer. The “Sample time” should also be set to “–1”.
Adding a constant, switch and relational operator
We now need to setup a way to switch between straight through without noise reduction and with LMS noise reduction.
Select View ->Library Browser ->Simulink. Highlight “Commonly Used Blocks”.
Drag-and-drop a “Constant” onto the model.
Drag-and-drop a “Switch” block onto the model.
Drag-and-drop a “Relational Operator” block onto the model.
Setting the constant value
The switch values lie between 0 and 15. We will use switch values 0 and 1. Double-click on the “Constant” block. Set the “Constant value” to 1 and the “Sample time” to “inf”.
Setting the constant data type
Click on the “Signal Data Types” tab. Set the “Output data type mode” to “int16”. This is compatible with the DAC on the DSK6713.
Setting the relational operator type
Double click on the “Relational Operator” block. Change the “Relational operator” to “==”. Click on the “Signal Data Types” tab.
Setting the relational operator data type
Set the “Output data type mode” to “Boolean”. Click on “OK”.
Joining the blocks
Move the blocks and join them as shown in the Figure below.
Returning to the parent system
From the Toolbar, select the “Up Arrow” icon. This returns you to the next higher level.
Building the model
Selecting real-time workshop
Select Tools ->Real-Time Workshop ->Build Model.
Frames displayed on model
When built, the single lines are replaced by double lines. This shows frames.
The completed model running on code composer studio
From the folders on the left, select the source code for the project.
Different settings on the dsk6713
Microphone straight through to loudspeakers
To check out the microphone and loudspeakers, set the DIP switches on the DSK6713 as follows:
The microphone is fed directly to the loudspeakers. There is no LMS noise reduction.
Switch position for lms noise reduction
To run the “LMS Noise Reduction” subsystem, set the DIP switch to 1.
Some things to try
You may wish to experiment with different settings. Here are some suggestions.
Experiment with lms filter settings
Change the value of “Step size (mu)” between 0.0001 and 0.5. This is the critical value.
Low values of mu give good resolution, but a slow reaction time.
High values of mu give less resolution, but faster reaction times.
Find the best value of mu for noise reduction on the TI DSK6713.
Experiment with lms filter settings
Try different value of “Filter Length”. What is the minimum value that will allow the filter to work correctly?
Change from lms filter to rls filter
Inside the “Adaptive Filters” are different LMS types. Which are suitable for LMS denoising and which are not?
Figure 40 –
MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.