>I wondered a few times what a higher "entropy" estimate for a higher >frequency would mean according to this - I think it means that a >higher frequency signal needs a higher bandwidth channel to transmit, >as you need a transmission rate of 2*F to transmit a periodic square >wave of frequency F. Hence, for a higher frequency square wave, a >higher bandwidth is needed.
Right, this is an artifact of the approximation you're doing. The model doesn't explicitly understand periodicity, but instead only looks for transitions, so the more transitions per second (higher frequency) the more it has to do. The ideal estimator/transmission system for a periodic signal would figure out that the signal is periodic and what the period/duty cycle and amplitude are, and then simply transmit these 4 (finite) pieces of data. Then the receiver can use those to generate an infinitely long signal. So the entropy rate is zero (<finite data>/<infinite output> = 0). Your model will never get to a zero entropy rate because it doesn't "understand" the concept of periodicity, and so has to keep sending more data forever, despite the fact that there are no more "surprises" in the signal after you've seen one period. >Using a longer analysis window (a higher-order estimate) would give a better estimate >of the entropy of periodic waveforms. Note that a single period of analysis memory is enough to do this, provided you can assume periodicity. >Windowing artifacts: unless the analysis window length is an exact >multiple of the period length, the truncated edges of the analysis >window will give some artifacts, making the entropy estimate nonzero >(similar to DFT windowing artifacts). You only need the analysis window length to be greater than the period. Then you can do a search over possible shifts of the analysis window compared to the current frame, and you will find an exact match. >Quantization artifacts: unless the period cycle is an integer >number, each cycle will be slightly different due to various >quantization artifacts. Unless your algorithm models that, it will >make the entropy estimate nonzero. You can use fractional delay filters for this. This is standard stuff in speech coding for working out the parameters of the periodic part of a speech signal - every cell phone call anybody has made in the past couple of decades has done this in real time. You may need oversampling to preserve the bandwidth if you want a "perfect" match though. >Computational limit: I can increase the estimate precision for >periodic square waves to around 0.000001-0.001 (within 0.1% error), >but then the algorithm becomes really slow. An infinite long analysis >window would need infinite computation. For periodic waveforms you don't need infinite length, just more than one period - and a suitable approach to estimation that is built around periodicity. What you need very long windows for is estimating the entropy rate of non-periodic signals that still have significant dependencies across samples. Consider a Hidden Markov Model or a dynamic random process for example. You can think of a general entropy rate estimator as some (possibly quite sophisticated, nonlinear) signal predictor, where the resulting prediction error is then assumed to be Gaussian white noise. You then get your entropy estimate simply by estimating the power in the prediction error. If the signal in question is well modeled by the estimator, the assumption of a Gaussian white noise prediction error will be accurate and the resulting entropy rate estimate will be quite good. If not, the prediction error will have some different statistics (including dependencies across time) and treating it as iid Gaussian noise will introduce error into the entropy estimate. Specifically, the estimate will be too high, since iid Gaussian noise is the max entropy signal (for a given rms power). This overestimation corresponds directly to the failure of the signal predictor to handle the dependencies in the signal. >Uncertainity: how do you know that the output of some black-box >process is truly deterministic? Answer: you can't know. You can only >measure 'observed' probabilities, so the 'measured' entropy never >reaches zero in a finite amount of time. Right, any statistical estimator needs to be considered in terms of its asymptotic behavior, and associated convergence rate. The results for the first few observations are likely to be quite poor. For dealing with general signals you have to forego the goal of estimating the "true" underlying entropy, and instead select an estimation algorithm that has suitable practical properties (complexity, memory, latency) and with as much generality as possible (which goal is in tension with the practical requirements). The hope is that the algorithm is sufficiently general to give good performance on the class of signals that you have to deal with in practice - and also not too poor when applied to the class of signals that it isn't able to model exactly. Note that for any finite estimation algorithm/signal model, you can always easily cook up a class of random signals that it can't model well. So the engineering questions are things like "what class of signals do we really care about" and "how robust do we need to be to signals that don't fit in that box?" In the present thread, we have an estimator that doesn't grok the feature of "periodicity" and so it shows issues when applied to periodic signals. >(Do you really need an infinite long sinc kernel to reconstruct your >digital samples? Typically there's a filter that is "good enough" and >computable.) That's not a very good analogy. The error due to finite reconstruction filters decreases steadily and predictably with longer and longer filters, so you can always in principle choose a finite length filter for any desired level of accuracy. But for any finite memory entropy estimator, there are always classes of signals for which it performs arbitrarily badly. So you can't put an upper bound on the error simply by choosing a sufficiently long memory - instead you are growing the class of signals that it can model adequately, without necessarily improving performance on signals outside of that class. One thing worth mentioning, in light of that, is that the "true" entropy rate may not be of much practical interest, in cases where there is no practical way to build machinery that would estimate/utilize it. Similarly, it's common in practice for some applications to use compression schemes that are known to be quite poor (in the rate/distortion or entropy sense) because constraints on power consumption/memory/latency are more pressing than constraints on transmission bandwidth. E On Wed, Jul 15, 2015 at 12:17 AM, Peter S <peter.schoffhau...@gmail.com> wrote: > On 14/07/2015, Mads Dyrholm <dyrholm.m...@gmail.com> wrote: > > Well, I was thinking about this as well. How about a 1bit square wave > then? > > - > > > > Your bitflip counter would not be sensitive to duty cycle. > > The simpler bit counter would be. > > > > I don't see why "entropy" should change with duty cycle since I am just > > turning one synthesizer knob. > > For 1-bit periodic square waves, this simple metric approximates the > frequency of the signal. By changing the duty cycle, the frequency > doesn't change, so this metric doesn't change. > > I wondered a few times what a higher "entropy" estimate for a higher > frequency would mean according to this - I think it means that a > higher frequency signal needs a higher bandwidth channel to transmit, > as you need a transmission rate of 2*F to transmit a periodic square > wave of frequency F. Hence, for a higher frequency square wave, a > higher bandwidth is needed. The simple bitflip metric tells you how > many times you need to transmit the state to transmit the signal > fully, as it counts the 'state transitions' (which correlates with the > frequency in case of 1-bit periodic square waves). > > As Ethan pointed out, square waves are highly deterministic, so both > metrics will give a poor estimate of entropy (or entropy rate) in > cases of periodic waveforms. In case of an 1-bit square wave, counting > 0/1 transitions estimates the frequency, and counting ones/zeros > estimates the duty cycle (giving 1 for 50% duty cycle, and 0 for 0% or > 100% duty cycle). > > So in case of an 1-bit periodic square wave, these two metrics will > estimate the frequency and duty cycle, respectively. > > A first-order estimate (counting the bits) is a very poor estimate of > entropy, as it has no notion of correlation, hence it cannot > distinguish between white noise and square wave with 50% duty cycle, > one of which is fully deterministic, the other being fully random. A > second-order estimate (analyzing bit pairs) is only slightly better, > but it can already differentiate between the two when the frequency of > the square wave is low enough. Hence, simplest possible estimate that > analyzes correlation (but still a poor estimate). Using a longer > analysis window (a higher-order estimate) would give a better estimate > of the entropy of periodic waveforms. > > -P > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, > dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp > -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp