Hi,
I'm currently working on a problem that involves developing a custom AEC algorithm using adaptive filtering techniques. As part of the project, I'm developing a framework in Matlab to evaluate different adaptive filtering techniques to see how they perform for our purposes. It would be great if I could bring the AWE modules related to AEC into Matlab to make comparison easier. Unfortunately, from my understanding of how the AWE architecture works, I do not believe this is possible (please correct me if I'm wrong). The AWE server is necessary to translate the scripting commands from Matlab to the target. For this reason I wouldn't be able get what I needed from the included .m/.p files. If I have misunderstood the software please let me know.
From the video lectures I saw that you could get the state data while the model is running. Suppose I did this for the variables related to adaptive filtering to track their evolution over time (i.e. the error signal or filter coefficients), would the overhead involved be so great that it would affect performance? Would a better approach be to write the different signals to a file sink and import them into Matlab for analysis? Are there other possibilities I'm not aware of?
Any suggestions anyone has would be greatly appreciated. I should mention that I have the pro version if that makes a difference in terms of what I have available to me as options.
Thanks,
Graham
10:18am
Hi Graham,
I'm not clear on what you are trying to accomplish when you say you'd like to bring the AEC modules into Matlab. Do you want to bring output data into Matlab? Please clarify what your goals are and we'll try to come up with a solution.
As for accessing state data, the overhead shouldn't affect performance since we access state info in a thread with lower priority than the audio processing thread. However, it is not possible to get strictly real-time access to the state data.
Steve
11:14am
Hi Steve,
As part of my development process I'm evaluating different adaptive filter methods (i.e. LMS, NLMS, RLS...) to see which one best suits my application. To do this I've created a framework in Matlab which allows me to select particular test signals and generates performance output on each algorithm. The output includes things like how the filter coefficients evolve over time, how accurately they model the system as well as at what point convergence was achieved (based on analyzing the error signal's behavior). It would be great if I could easily bring in DSP Concept's AWE module into Matlab and plug it into the framework (most likely with a bit of work to write a wrapper so it fits the API). Unfortunately I'm not sure if this is feasible based on my current understanding of the AWE architecture.
If this is not possible, how would you suggest I approach this problem?
Thanks,
Graham
10:31am
If you are using Audio Weaver's Matlab scripting API, you can process audio data one block at a time through the scripting interface. This will allow you to do the regression testing that you are describing. The approach is to process audio one block at a time. After each block is processed, you can reach in and examine the module's state variables.
The attached example shows how to load an AWD design using the Matlab scripts, build it on the target processor, and then pump data through it one block at a time.
10:35am
Thanks, I will give that a shot.