Unifying the interface of virtual sensing and control
At the moment, the interface of the function(s) for control and virtual sensing are not the same.
Clarifying; the tonal control function gets the information required to calculate the optimal filters and the information required to calculate the control performance, including the evaluation error signals. The same process is split into two functions, namely obsFilt()
and obsFiltEst()
in the virtual sensing case. The first function calculates the optimal filter(s) and the second uses that information to perform the estimation, allowing a different set of virtual microphone signals to be provided.
Both the control and estimation processes have equivalent stages, in the fact that they both have one step that calculates the optimal filters and a stage where these filters are used to perform control/estimation possibly under different conditions (providing different error/virtula microphone signals).
I believe it would be beneficial to stick to one interface for both processes, i.e. either merge the two steps in one, as in the tonalAnc()
function or split them to different functions as in obsFilt()
and obsFiltEst
case. It may be better to think about the pros and cons of each case before reaching a conclusion.