Next Article in Journal
A Remote-Sensing Method to Estimate Bulk Refractive Index of Suspended Particles from GOCI Satellite Measurements over Bohai Sea and Yellow Sea
Next Article in Special Issue
Frequency-Dependent Schroeder Allpass Filters
Previous Article in Journal
Wind-Load Response and Evacuation Efficiency Analysis of Marine Evacuation Inflatable Slide
Previous Article in Special Issue
Learning Low-Dimensional Embeddings of Audio Shingles for Cross-Version Retrieval of Classical Music
 
 
Article
Peer-Review Record

Antiderivative Antialiasing for Stateful Systems

Appl. Sci. 2020, 10(1), 20; https://doi.org/10.3390/app10010020
by Martin Holters
Reviewer 1: Anonymous
Reviewer 2: Anonymous
Reviewer 3: Anonymous
Appl. Sci. 2020, 10(1), 20; https://doi.org/10.3390/app10010020
Submission received: 21 November 2019 / Revised: 13 December 2019 / Accepted: 16 December 2019 / Published: 18 December 2019
(This article belongs to the Special Issue Digital Audio Effects)

Round 1

Reviewer 1 Report

I have some doubts about the following text at page 4 (lines 113-115)

"The unit delay in the feedback is replaced by a delay of 1.5 samples.  This is equivalent to reducing sampling by a factor of 1.5, so we can compensate by  designing our system with this reduced rate"

It is not clear to me why a delay of 1.5 samples is equivalent to reducing the sampling rate.  A delay of 1.5 samples of signal x could be implemented (using linear interpolation) as 0.5*(x(n-2)+x(n-1)).  Please clarify. Reducing the sampling rate could cause aliasing, if the original sampling rate had no margin.  Please elaborate about this.

Author Response

Points: I have some doubts about the following text at page 4 (lines 113-115)

"The unit delay in the feedback is replaced by a delay of 1.5 samples. This is equivalent to reducing sampling by a factor of 1.5, so we can compensate by designing our system with this reduced rate"

It is not clear to me why a delay of 1.5 samples is equivalent to reducing the sampling rate. A delay of 1.5 samples of signal x could be implemented (using linear interpolation) as 0.5*(x(n-2)+x(n-1)). Please clarify. Reducing the sampling rate could cause aliasing, if the original sampling rate had no margin. Please elaborate about this.

 

Responds: In the revised version to be uploaded soon, I have clarified the relationship as a delay of 1.5 samples corresponding to a delay of one sample at 2/3 of the sampling rate. Furthermore, I now explicitly state that the system is still operated at the original sampling rate, hopefully obviating any concerns of additional aliasing due to the reduced sampling rate. (The fact that the system will deviate from the original system for higher frequencies is discussed in detail later on.)

Reviewer 2 Report

I only have a couple of comments about the paper as follows:

Page 2: The author says that the extension to vector-valued output is straightforward but vector-valued input is not so simple. More explanation would help here, particularly for readers unused to the topic. What do you mean by vector-valued output? Do you mean that the system has several outputs (you allow this on page 3), or that the output is a combination of several previous outputs, so that the vector is in time samples? This is, I assume, the right interpretation.

Regarding vector-valued input, equation (2) has a vector valued input of dimension 2, so why is it that a higher dimension cannot be accommodated in a similar way, by defining a higher order interpolant over, say, three samples?

Page 3: Why in Eq. (6) & (7), or (10) and (11), do we need L+1 terms? Can a nonlinear system not be defined as, for example, the linear terms in (10) and a single nonlinear term? I have seen such models in other papers. Some papers describe the single nonlinearity as a sum of dictionary terms, as in “A Sparse Bayesian Approach to the Identification of Nonlinear State-Space Systems,” Wei Pan, Ye Yuan, Jorge Gonçalves, and Guy-Bart Stan, IEEE Trans on Automatic Control, Vol. 61, No. 1, January 2016. Is that the case here?

 

 

Author Response

Point 1: I only have a couple of comments about the paper as follows:

Page 2: The author says that the extension to vector-valued output is straightforward but vector-valued input is not so simple. More explanation would help here, particularly for readers unused to the topic. What do you mean by vector-valued output? Do you mean that the system has several outputs (you allow this on page 3), or that the output is a combination of several previous outputs, so that the vector is in time samples? This is, I assume, the right interpretation.

Respond 1: No, I actually just mean multiple outputs, combined into a vector for conciseness. In the revised version to be uploaded soon, I have extended the introductory paragraph to section 2.1. "The higher-dimensional case" to state this explicitly.

Point 2: Regarding vector-valued input, equation (2) has a vector valued input of dimension 2, so why is it that a higher dimension cannot be accommodated in a similar way, by defining a higher order interpolant over, say, three samples?

Respond 2: Admittedly, I'm not sure I completely understand the question, but presumably, it is just based on the misunderstanding of what vector-valued input is supposed to mean and doesn't apply anymore with that resolved.

Point 3: Page 3: Why in Eq. (6) & (7), or (10) and (11), do we need L+1 terms? Can a nonlinear system not be defined as, for example, the linear terms in (10) and a single nonlinear term?

Respond 3: It can, L=0 or L=1 are perfectly fine configurations. As noted in the second bullet point in that section, "Facilitating [arguments being scalars or vectors of low dimension] is the reason why we introduce multiple nonlinear functions instead of combining them into a single larger one with higher-dimensional input." I have rewritten that bullet point to emphasize that L=0 is valid, but decomposing the nonlinearity---if possible---such that the argument dimensions are reduced is advantageous.

Point 4: I have seen such models in other papers. Some papers describe the single nonlinearity as a sum of dictionary terms, as in “A Sparse Bayesian Approach to the Identification of Nonlinear State-Space Systems,” Wei Pan, Ye Yuan, Jorge Gonçalves, and Guy-Bart Stan, IEEE Trans on Automatic Control, Vol. 61, No. 1, January 2016. Is that the case here?

Respond 4: No. Or rather: not necessarily. If the system is obtained by measurements and system identification as proposed in that article, then sure, these dictionary terms could immediately be the functions to use. I was more thinking of systems that happen to have a structure of multiple nonlinearities in parallel, where it then makes sense to not lump them together. Anyway, I now state that "if the system’s nonlinearity can be decomposed into a sum of nonlinear functions with low-dimensional arguments, it should be", which subsumes these two special cases. And I have the feeling that more discussion of how such a decomposition could be obtained would distract from the main points of the article. (In fact, finding good approximate decompositions could be a research project on its own.)

Reviewer 3 Report

This paper deals with antialiasing reduction with nonlinear stateful systems. It slightly extends a previous work presented at DAFx, which in turn generalize the work from Parker et al. on continuous-time convolution for alias suppression in discrete-time nonlinear systems. The original work from Parker was limited to single-in single-out systems without memory. Here, using a state-space approach, a multi-in multi-out generalization with memory is derived and two examples are shown.

Despite being very similar to the DAFx paper, I think this work is a nice addition to the literature, as it provides a more extended discussion and I think it will stand as a very popular paper in the near future.

The math is sound and its validity is also proven by two examples. Julia source code is shared, which opens other researcher to verify and reproduce the work.

I think this paper will stand not only as a milestone paper but also as a didactic reference, thus, a bit more elaborate introduction could help future readers. In particular:

the dimensionality of the matrices should be reported. I also think the indices are not well chosen: if you use N, L, M (capital) for the size of the input vector, state vector and output vector, you should also use n, m, l (lowercase) for the indices. Why not adding a flow graph? I know it's not easy, as it must be replicated M times, but I think you can just draw one and layer other copies behind it in the dimension orthogonal to the screen.

Finally, some considerations related to the computational cost could be added, to quickly resume the flops parametrically with the dimensionality of the problem. Since this is a journal paper I would expect a bit more of introspection. There is still space for that I believe.

Author Response

Point 1: the dimensionality of the matrices should be reported.

Respond 1: I explicitly state the dimensions of all vectors and matrices in the revised version to be uploaded soon, with the exception of the W matrices in (12) and (13). This point is just a side note and they (or their sizes) do not appear anywhere else, so I don't think it makes much sense to introduce a variable for their dimensionality.

Point 2: I also think the indices are not well chosen: if you use N, L, M (capital) for the size of the input vector, state vector and output vector, you should also use n, m, l (lowercase) for the indices.

Respond 2: Yes, those were not well chosen indeed. As I use n for the time index, I now avoid N and instead use K with appropriate subscripts for all vector sizes. Also, I've changed m to l for f_x and p_x, as there are L of them, to make the connection clearer. Exception again for (12) and (13), where M=L (which I now clearly state) and with p_{x,m} = p_{y,m}, it doesn't make sense to change of any those m's to l.

Point 3: Why not adding a flow graph? I know it's not easy, as it must be replicated M times, but I think you can just draw one and layer other copies behind it in the dimension orthogonal to the screen.

Respond 3: I've added a block diagram for the system with the extra linear parts. I think it's reasonable readable with the proposed layering and may help getting an overview. It does take up quite a bit of space, though.

Point 4: Finally, some considerations related to the computational cost could be added, to quickly resume the flops parametrically with the dimensionality of the problem. Since this is a journal paper I would expect a bit more of introspection. There is still space for that I believe.

Respond 4: The exact number of flops is a big "it depends". Also, it's not quite clear how good they reflect the actual computational cost. Is it fair to treat both addition and division equally as one flop? How much impact do control flow and memory accesses have? However, I do agree that a discussion of the computational cost is justified, and added new section, which however only gives a qualitative analysis.

Round 2

Reviewer 1 Report

I am satisfied with the changes

Back to TopTop