yamamoto2002 Posted September 30, 2020 Share Posted September 30, 2020 On 9/27/2020 at 5:08 PM, PeterSt said: Although my filtering is named Arc Prediction, it doesn't need to predict the placement of the (new) samples because remember, it genuinely interpolates. All what happens is that around the original sample (in our case the Dirac Pulse) a predicted path towards the sample emerges as well as a predicted path after the sample. The original sample can be seen as sitting in the middle. Is it cubic Hermite spline interpolation ? Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
yamamoto2002 Posted November 3, 2020 Share Posted November 3, 2020 I created animated graph of a square wave, its wave front moving toward left. Black dot is sampled and quantized PCM value. Total 9 PCM samples are shown. Orange line is reconstructed analog signal. sw.mp4 Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
yamamoto2002 Posted November 4, 2020 Share Posted November 4, 2020 7to10.mp4 From the observation of zero-crossing timings between two adjacent sample point, when bit depth is increased by 1, number of possible zero crossing positions is increased more than 2x because distant sample point affects zero-crossing timing. And interval of possible zero crossing timings is not regular and it is somewhat unpredictable. When bit depth becomes ₀א, time resolution becomes ₁א ?🤔 Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
yamamoto2002 Posted November 4, 2020 Share Posted November 4, 2020 34 minutes ago, Speedskater said: Remember to low pass filter your square wave. It is properly low-pass filtered. Square wave generator does not generate ≧ Nyquist frequency component. Analog wave form reconstruction uses brick wall low pass filter Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
yamamoto2002 Posted November 5, 2020 Share Posted November 5, 2020 Thank you, now I understand a bit more about the following phrase you wrote in OP On 2/21/2020 at 4:56 AM, Don Hills said: Shannon and Nyquist showed that as long as you keep all components of the input signal below half the sampling frequency, you can reconstruct the original signal perfectly - not just in terms of amplitude, but in terms of temporal relationships too. They only addressed sampling, and assumed infinite resolution in amplitude. John Dyson 1 Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
yamamoto2002 Posted February 26, 2022 Share Posted February 26, 2022 On 11/5/2020 at 6:56 AM, Don Hills said: Yes. See the equation in the OP... ☺️ It seems the same idea is appeared on Lebesgue integration, fitted simple function series of countable cardinality to be a continuous function because 2^{ℵ0} = ℵ1 of vertical axis cardinality. Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
yamamoto2002 Posted May 6, 2022 Share Posted May 6, 2022 7 hours ago, Hifi Bob said: There’s a demo here https://github.com/plext/cdtr that’s easy to reproduce. They take a square-wave sampled at 1GHz, convert to Redbook then back again, and with saturation, the result is identical to the original. I tried it on an Ubuntu machine and it works. So 1 nano-second rather than 55 pico-seconds but impressive nevertheless. Thank you for sharing. Interesting experiment. I tested 1GHz signal test (1.0ns temporal resolution with 44.1kHz 16bit PCM) and it worked. 0.9GHz (1.11ns) and 1.1GHz (0.91ns) succeeded, while 1.2GHz (0.83ns) failed. This is rather the software test of sox than testing actual temporal resolution limit of PCM Also tried 2GHz (0.5ns) and sox crashed (as mentioned on Further Testing of the demo page), it seems lsx_save_samples function tried to read memory address 0 and got SEGV. It seems there are other problems to be fixed to run it correctly. Program terminated with signal SIGSEGV, Segmentation fault. #0 lrint32 (input=<error reading variable: Cannot access memory at address 0x0>) at effects_i_dsp.c:607 607 _ _ _ _ _ _ _ _ 0; (gdb) bt #0 lrint32 (input=<error reading variable: Cannot access memory at address 0x0>) at effects_i_dsp.c:607 #1 lsx_save_samples (dest=0x55cf341b2e70, src=0x0, n=n@entry=8192, clips=0x55cf34188948) at effects_i_dsp.c:607 #2 0x0000152389781c5b in flow (effp=<optimized out>, ibuf=0x55cf341aae60, obuf=<optimized out>, isamp=0x7ffe2f66fd10, osamp=0x7ffe2f66fd18) at rate.c:660 #3 0x000015238976bee1 in flow_effect (n=1, chain=0x55cf34187aa0) at effects.c:257 #4 sox_flow_effects (chain=<optimized out>, callback=0x55cf32c51760 <update_status>, client_data=0x0) at effects.c:449 #5 0x000055cf32c54462 in process () at sox.c:1780 #6 0x000055cf32c4f695 in main (argc=10, argv=0x7ffe2f6700c8) at sox.c:2988 (gdb) quit Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
yamamoto2002 Posted August 28, 2022 Share Posted August 28, 2022 On 5/8/2022 at 7:42 AM, danadam said: I did an impulse some time ago: https://imgur.com/a/KVFOJU1 imp.all.44.flac.zip 376.35 kB · 18 downloads Yeah, Nyquist-Shannon says the waveform peak timing can be positioned at any real value (any rational values and any irrational values with mathematically exact accuracy) when bit-depth is countable-infinite bit integer, time resolution of digital sampling can be increased up to cardinality of the continuum. Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now