| General > General Technical Chat |
| Maximum slew rate typically found in music/voice |
| << < (9/14) > >> |
| David Hess:
--- Quote from: TimFox on September 20, 2023, 02:23:50 pm ---Of course, no one seriously recommends the 741 for modern audio, since there are reasonably-priced devices with roughly 10x the slew rate. TL071/2/4: 8 V/us min, 16 V/us typ NE5532: 9 V/us typ --- End quote --- Signetics designed a number of high slew rate bipolar parts at that time, but just a couple the NE series survived. Designers who were desperate used the LM318 but it relies on emitter degeneration so has high noise. National had the still popular LM833 at 5 min and 7 typ V/us ; I never understood how they achieved that and low noise but suspect the published schematics are simplified and do not show how the transconductance was reduced. Motorola had a bunch of high slew rate 741 replacements which are still available. I suspect the JFET parts were the most common 741 replacements for audio because their low input bias current and current noise allows higher impedance networks. |
| TimFox:
I went looking for the seminal article by W G Jung et al. in 1979 about slew-induced distortion, and found this in a free location: https://web.archive.org/web/20190303175101/http://pdfs.semanticscholar.org/cdbd/3ffcb276aabaf6cccd9b6bf067ee665c82d9.pdf Before the 5534 series came out, there were some good high slew-rate products from Harris (later Intersil), that I believe used dielectric isolation or some such construction technique. e.g. https://pdf1.alldatasheet.com/datasheet-pdf/view/66679/INTERSIL/HA-2505.html |
| Nominal Animal:
--- Quote from: newbrain on September 19, 2023, 02:10:45 pm ---The theory says that any band limited signal can be reconstructed perfectly, and that include its phase; any reasonably implemented sampling system (CD) is able to reproduce the phase shift with inaudible accuracy. --- End quote --- 1. Shannon-Nyquist only applies exactly if you have infinite precision, i.e. exact discrete samples. Quantizing the samples limits the accuracy. Discretized quantized signal is limited in both bandwidth and phase resolution, and is limited in the resolution at which it can represent the wave packet arrival time. 2. Human time-domain signal arrival time discrimination between each ear is not exactly a phase shift; the ear does not work like that. You do need to model it as the arrival of a wave packet to understand exactly how it occurs. Specifically, it requires the leading edge of the incoming wave packet to be sufficiently steep and sufficiently high maximum amplitude; in a Fourier transform, this is not a single-frequency event. You can easily simulate this, if you actually wanted to. Just generate a suitably shaped pulse as I described earlier at a higher sample rate. Generate several variants, delaying each by a one additional leading zero sample, then pad with lots of zeros to a suitable size. Decimate to CD audio sample rate and quantize to 16 bit samples, then resample back to original sample rate, and compare the initial and final waveforms. For example, using the aforementioned waveform using \$f = 3675\text{ Hz}\$ at 176400 samples per second (4x CD audio rate), with four variants; containing one, two, and three leading zero samples compared to the first (corresponding to 5.7µs, 11.3µs, and 17µs delays), using Python 3 and SciPy: --- Code: ---import scipy import scipy.signal from math import sin, pi from sys import stdout, stderr # Original discrete waveform wave = [] for i in range(0, 12001): x = i / 12000.0 wave.append( (1.0 - x)*(1.0 - x)*sin(500.0 * pi * x) ) # Construct four samples, each delayed by one sample orig1 = scipy.array(([0]*36000) + wave + ([0]*47999), dtype=scipy.float64) orig2 = scipy.array(([0]*36001) + wave + ([0]*47998), dtype=scipy.float64) orig3 = scipy.array(([0]*36002) + wave + ([0]*47997), dtype=scipy.float64) orig4 = scipy.array(([0]*36003) + wave + ([0]*47996), dtype=scipy.float64) # Resample by 1/4 audio1 = scipy.signal.resample(orig1, 24000) audio2 = scipy.signal.resample(orig2, 24000) audio3 = scipy.signal.resample(orig3, 24000) audio4 = scipy.signal.resample(orig4, 24000) # Quantize to 16 bit precision (but no clipping) for i in range(0, 24000): audio1[i] = round(32768.0 * audio1[i]) / 32768.0 audio2[i] = round(32768.0 * audio2[i]) / 32768.0 audio3[i] = round(32768.0 * audio3[i]) / 32768.0 audio4[i] = round(32768.0 * audio4[i]) / 32768.0 audio1 = scipy.array(audio1, dtype=scipy.float64) audio2 = scipy.array(audio2, dtype=scipy.float64) audio3 = scipy.array(audio3, dtype=scipy.float64) audio4 = scipy.array(audio4, dtype=scipy.float64) # Resample back to original rate result1 = scipy.signal.resample(audio1, 96000) result2 = scipy.signal.resample(audio2, 96000) result3 = scipy.signal.resample(audio3, 96000) result4 = scipy.signal.resample(audio4, 96000) for i in range(0, 96000): stdout.write("%5d %9.6f %9.6f %9.6f %9.6f %9.6f %9.6f %9.6f %9.6f\n" % (i, orig1[i], result1[i], orig2[i], result2[i], orig3[i], result3[i], orig4[i], result4[i])) --- End code --- Note that scipy.signal.resample() uses the Fourier method, i.e. it is the mathematically correct resampling method. Since it assumes the signal is periodic, we pad it with large number of zeroes before and after. Each output line contains the sample index, and original and final sample amplitudes (-1 to +1) for each of the four waveforms. Observe the first wavelength prior to the pulse, and two full 3675 Hz wavelengths at the beginning of the pulse (at sample 36001/36002/36003/36004), i.e. samples 36050 - 36099: --- Code: --- Original Delay +1 Delay +2 Delay +3 Index Initial Final Initial Final Initial Final Initial Final 35950 0.000000 -0.001446 0.000000 -0.001074 0.000000 -0.000089 0.000000 0.000918 35951 0.000000 -0.000985 0.000000 -0.001470 0.000000 -0.001077 0.000000 -0.000077 35952 0.000000 0.000092 0.000000 -0.001007 0.000000 -0.001465 0.000000 -0.001068 35953 0.000000 0.001165 0.000000 0.000072 0.000000 -0.000994 0.000000 -0.001463 35954 0.000000 0.001591 0.000000 0.001147 0.000000 0.000090 0.000000 -0.001000 35955 0.000000 0.001085 0.000000 0.001573 0.000000 0.001165 0.000000 0.000081 35956 0.000000 -0.000092 0.000000 0.001068 0.000000 0.001587 0.000000 0.001160 35957 0.000000 -0.001265 0.000000 -0.000108 0.000000 0.001075 0.000000 0.001593 35958 0.000000 -0.001730 0.000000 -0.001281 0.000000 -0.000106 0.000000 0.001094 35959 0.000000 -0.001173 0.000000 -0.001746 0.000000 -0.001279 0.000000 -0.000078 35960 0.000000 0.000122 0.000000 -0.001190 0.000000 -0.001740 0.000000 -0.001251 35961 0.000000 0.001415 0.000000 0.000102 0.000000 -0.001176 0.000000 -0.001721 35962 0.000000 0.001929 0.000000 0.001391 0.000000 0.000123 0.000000 -0.001171 35963 0.000000 0.001313 0.000000 0.001900 0.000000 0.001415 0.000000 0.000116 35964 0.000000 -0.000122 0.000000 0.001282 0.000000 0.001923 0.000000 0.001404 35965 0.000000 -0.001556 0.000000 -0.000151 0.000000 0.001300 0.000000 0.001917 35966 0.000000 -0.002122 0.000000 -0.001579 0.000000 -0.000140 0.000000 0.001304 35967 0.000000 -0.001428 0.000000 -0.002137 0.000000 -0.001574 0.000000 -0.000126 35968 0.000000 0.000183 0.000000 -0.001434 0.000000 -0.002136 0.000000 -0.001556 35969 0.000000 0.001793 0.000000 0.000182 0.000000 -0.001437 0.000000 -0.002124 35970 0.000000 0.002424 0.000000 0.001792 0.000000 0.000177 0.000000 -0.001436 35971 0.000000 0.001627 0.000000 0.002419 0.000000 0.001785 0.000000 0.000167 35972 0.000000 -0.000214 0.000000 0.001617 0.000000 0.002411 0.000000 0.001770 35973 0.000000 -0.002052 0.000000 -0.000225 0.000000 0.001608 0.000000 0.002400 35974 0.000000 -0.002767 0.000000 -0.002061 0.000000 -0.000235 0.000000 0.001610 35975 0.000000 -0.001835 0.000000 -0.002770 0.000000 -0.002070 0.000000 -0.000219 35976 0.000000 0.000305 0.000000 -0.001831 0.000000 -0.002777 0.000000 -0.002045 35977 0.000000 0.002442 0.000000 0.000315 0.000000 -0.001836 0.000000 -0.002752 35978 0.000000 0.003260 0.000000 0.002453 0.000000 0.000311 0.000000 -0.001819 35979 0.000000 0.002134 0.000000 0.003269 0.000000 0.002450 0.000000 0.000315 35980 0.000000 -0.000427 0.000000 0.002136 0.000000 0.003265 0.000000 0.002441 35981 0.000000 -0.002981 0.000000 -0.000432 0.000000 0.002135 0.000000 0.003251 35982 0.000000 -0.003938 0.000000 -0.002992 0.000000 -0.000430 0.000000 0.002120 35983 0.000000 -0.002519 0.000000 -0.003952 0.000000 -0.002984 0.000000 -0.000441 35984 0.000000 0.000671 0.000000 -0.002533 0.000000 -0.003937 0.000000 -0.002991 35985 0.000000 0.003848 0.000000 0.000658 0.000000 -0.002512 0.000000 -0.003943 35986 0.000000 0.004997 0.000000 0.003835 0.000000 0.000681 0.000000 -0.002521 35987 0.000000 0.003091 0.000000 0.004986 0.000000 0.003858 0.000000 0.000669 35988 0.000000 -0.001129 0.000000 0.003082 0.000000 0.005005 0.000000 0.003845 35989 0.000000 -0.005328 0.000000 -0.001133 0.000000 0.003096 0.000000 0.004996 35990 0.000000 -0.006761 0.000000 -0.005326 0.000000 -0.001123 0.000000 0.003095 35991 0.000000 -0.003919 0.000000 -0.006752 0.000000 -0.005317 0.000000 -0.001118 35992 0.000000 0.002258 0.000000 -0.003906 0.000000 -0.006744 0.000000 -0.005310 35993 0.000000 0.008398 0.000000 0.002270 0.000000 -0.003898 0.000000 -0.006741 35994 0.000000 0.010195 0.000000 0.008405 0.000000 0.002277 0.000000 -0.003903 35995 0.000000 0.004890 0.000000 0.010194 0.000000 0.008408 0.000000 0.002265 35996 0.000000 -0.006378 0.000000 0.004883 0.000000 0.010193 0.000000 0.008392 35997 0.000000 -0.017539 0.000000 -0.006386 0.000000 0.004876 0.000000 0.010180 35998 0.000000 -0.018608 0.000000 -0.017542 0.000000 -0.006398 0.000000 0.004871 35999 0.000000 0.001413 0.000000 -0.018599 0.000000 -0.017557 0.000000 -0.006394 36000 0.000000 0.050781 0.000000 0.001434 0.000000 -0.018616 0.000000 -0.017548 36001 0.130504 0.131896 0.000000 0.050812 0.000000 0.001418 0.000000 -0.018608 36002 0.258733 0.240106 0.130504 0.131929 0.000000 0.050794 0.000000 0.001419 36003 0.382492 0.364944 0.258733 0.240133 0.130504 0.131910 0.000000 0.050787 36004 0.499667 0.493286 0.382492 0.364960 0.258733 0.240112 0.130504 0.131897 36005 0.608254 0.613143 0.499667 0.493290 0.382492 0.364939 0.258733 0.240100 36006 0.706400 0.716591 0.608254 0.613137 0.499667 0.493273 0.382492 0.364931 36007 0.792428 0.800821 0.706400 0.716581 0.608254 0.613128 0.499667 0.493271 36008 0.864871 0.867126 0.792428 0.800812 0.706400 0.716583 0.608254 0.613129 36009 0.922494 0.918578 0.864871 0.867121 0.792428 0.800824 0.706400 0.716581 36010 0.964317 0.957566 0.922494 0.918576 0.864871 0.867140 0.792428 0.800815 36011 0.989628 0.984315 0.964317 0.957565 0.922494 0.918597 0.864871 0.867125 36012 0.998001 0.996887 0.989628 0.984314 0.964317 0.957581 0.922494 0.918579 36013 0.989298 0.992400 0.998001 0.996885 0.989628 0.984320 0.964317 0.957568 36014 0.963673 0.968675 0.989298 0.992397 0.998001 0.996881 0.989628 0.984318 36015 0.921571 0.925416 0.963673 0.968672 0.989298 0.992386 0.998001 0.996890 36016 0.863718 0.864380 0.921571 0.925415 0.963673 0.968658 0.989298 0.992401 36017 0.791107 0.788576 0.863718 0.864382 0.921571 0.925404 0.963673 0.968674 36018 0.704987 0.701035 0.791107 0.788582 0.863718 0.864377 0.921571 0.925413 36019 0.606835 0.603840 0.704987 0.701044 0.791107 0.788583 0.863718 0.864376 36020 0.498335 0.497894 0.606835 0.603851 0.704987 0.701050 0.791107 0.788574 36021 0.381345 0.383468 0.498335 0.497908 0.606835 0.603858 0.704987 0.701038 36022 0.257871 0.261123 0.381345 0.383484 0.498335 0.497914 0.606835 0.603849 36023 0.130026 0.132465 0.257871 0.261138 0.381345 0.383487 0.498335 0.497909 36024 0.000000 0.000305 0.130026 0.132477 0.257871 0.261139 0.381345 0.383484 36025 -0.129983 -0.131816 0.000000 0.000312 0.130026 0.132477 0.257871 0.261134 36026 -0.257699 -0.260466 -0.129983 -0.131815 0.000000 0.000313 0.130026 0.132465 36027 -0.380963 -0.383020 -0.257699 -0.260470 -0.129983 -0.131813 0.000000 0.000294 36028 -0.497669 -0.497894 -0.380963 -0.383026 -0.257699 -0.260468 -0.129983 -0.131836 36029 -0.605823 -0.604212 -0.497669 -0.497899 -0.380963 -0.383026 -0.257699 -0.260488 36030 -0.703576 -0.701168 -0.605823 -0.604212 -0.497669 -0.497901 -0.380963 -0.383038 36031 -0.789260 -0.787480 -0.703576 -0.701165 -0.605823 -0.604218 -0.497669 -0.497906 36032 -0.861413 -0.861237 -0.789260 -0.787476 -0.703576 -0.701172 -0.605823 -0.604218 36033 -0.918805 -0.920235 -0.861413 -0.861236 -0.789260 -0.787481 -0.703576 -0.701173 36034 -0.960460 -0.962583 -0.918805 -0.920241 -0.861413 -0.861236 -0.789260 -0.787490 36035 -0.985670 -0.987229 -0.960460 -0.962595 -0.918805 -0.920235 -0.861413 -0.861254 36036 -0.994009 -0.994141 -0.985670 -0.987244 -0.960460 -0.962585 -0.918805 -0.920258 36037 -0.985340 -0.984042 -0.994009 -0.994152 -0.985670 -0.987235 -0.960460 -0.962604 36038 -0.959818 -0.957904 -0.985340 -0.984047 -0.994009 -0.994149 -0.985670 -0.987244 36039 -0.917884 -0.916478 -0.959818 -0.957903 -0.985340 -0.984053 -0.994009 -0.994145 36040 -0.860262 -0.860138 -0.917884 -0.916473 -0.959818 -0.957916 -0.985340 -0.984039 36041 -0.787941 -0.789103 -0.860262 -0.860137 -0.917884 -0.916491 -0.959818 -0.957900 36042 -0.702166 -0.703879 -0.787941 -0.789111 -0.860262 -0.860152 -0.917884 -0.916481 36043 -0.604406 -0.605658 -0.702166 -0.703897 -0.787941 -0.789116 -0.860262 -0.860151 36044 -0.496340 -0.496429 -0.604406 -0.605682 -0.702166 -0.703888 -0.787941 -0.789124 36045 -0.379819 -0.378746 -0.496340 -0.496452 -0.604406 -0.605660 -0.702166 -0.703899 36046 -0.256839 -0.255274 -0.379819 -0.378759 -0.496340 -0.496422 -0.604406 -0.605667 36047 -0.129506 -0.128374 -0.256839 -0.255271 -0.379819 -0.378729 -0.496340 -0.496422 36048 -0.000000 0.000061 -0.129506 -0.128357 -0.256839 -0.255249 -0.379819 -0.378723 36049 0.129462 0.128455 -0.000000 0.000085 -0.129506 -0.128347 -0.256839 -0.255243 36050 0.256667 0.255207 0.129462 0.128478 -0.000000 0.000084 -0.129506 -0.128347 36051 0.379438 0.378378 0.256667 0.255224 0.129462 0.128472 -0.000000 0.000073 36052 0.495676 0.495605 0.379438 0.378387 0.256667 0.255219 0.129462 0.128448 36053 0.603396 0.604311 0.495676 0.495612 0.379438 0.378389 0.256667 0.255188 36054 0.700757 0.702087 0.603396 0.604321 0.495676 0.495621 0.379438 0.378355 36055 0.786098 0.787055 0.700757 0.702105 0.603396 0.604334 0.495676 0.495590 36056 0.857961 0.858002 0.786098 0.787079 0.700757 0.702118 0.603396 0.604309 36057 0.915124 0.914252 0.857961 0.858025 0.786098 0.787086 0.700757 0.702097 36058 0.956611 0.955360 0.915124 0.914266 0.857961 0.858025 0.786098 0.787068 36059 0.981720 0.980823 0.956611 0.955358 0.915124 0.914261 0.857961 0.858008 36060 0.990025 0.989990 0.981720 0.980804 0.956611 0.955353 0.915124 0.914246 36061 0.981391 0.982211 0.990025 0.989961 0.981720 0.980806 0.956611 0.955342 36062 0.955970 0.957145 0.981391 0.982181 0.990025 0.989973 0.981720 0.980801 36063 0.914204 0.915044 0.955970 0.957125 0.981391 0.982204 0.990025 0.989974 36064 0.856812 0.856842 0.914204 0.915039 0.955970 0.957153 0.981391 0.982208 36065 0.784782 0.784007 0.856812 0.856850 0.914204 0.915065 0.955970 0.957158 36066 0.699350 0.698242 0.784782 0.784022 0.856812 0.856866 0.914204 0.915067 36067 0.601983 0.601191 0.699350 0.698255 0.784782 0.784024 0.856812 0.856867 36068 0.494349 0.494324 0.601983 0.601196 0.699350 0.698242 0.784782 0.784027 36069 0.378295 0.379030 0.494349 0.494319 0.601983 0.601174 0.699350 0.698253 36070 0.255808 0.256860 0.378295 0.379019 0.494349 0.494294 0.601983 0.601194 36071 0.128986 0.129740 0.255808 0.256848 0.378295 0.378998 0.494349 0.494322 36072 0.000000 0.000031 0.128986 0.129730 0.255808 0.256836 0.378295 0.379028 36073 -0.128943 -0.129632 0.000000 0.000024 0.128986 0.129729 0.255808 0.256859 36074 -0.255637 -0.256627 -0.128943 -0.129637 0.000000 0.000032 0.128986 0.129739 36075 -0.377915 -0.378625 -0.255637 -0.256632 -0.128943 -0.129625 0.000000 0.000027 36076 -0.493687 -0.493713 -0.377915 -0.378632 -0.255637 -0.256622 -0.128943 -0.129639 36077 -0.600974 -0.600319 -0.493687 -0.493719 -0.377915 -0.378628 -0.255637 -0.256635 36078 -0.697944 -0.697004 -0.600974 -0.600321 -0.493687 -0.493724 -0.377915 -0.378630 36079 -0.782942 -0.782268 -0.697944 -0.696999 -0.600974 -0.600336 -0.493687 -0.493713 36080 -0.854517 -0.854492 -0.782942 -0.782257 -0.697944 -0.697021 -0.600974 -0.600311 36081 -0.911449 -0.912073 -0.854517 -0.854479 -0.782942 -0.782282 -0.697944 -0.696992 36082 -0.952770 -0.953668 -0.911449 -0.912063 -0.854517 -0.854503 -0.782942 -0.782257 36083 -0.977777 -0.978426 -0.952770 -0.953662 -0.911449 -0.912081 -0.854517 -0.854488 36084 -0.986049 -0.986084 -0.977777 -0.978424 -0.952770 -0.953674 -0.911449 -0.912079 36085 -0.977449 -0.976871 -0.986049 -0.986081 -0.977777 -0.978432 -0.952770 -0.953680 36086 -0.952131 -0.951297 -0.977449 -0.976862 -0.986049 -0.986089 -0.977777 -0.978439 36087 -0.910532 -0.909939 -0.952131 -0.951277 -0.977449 -0.976873 -0.986049 -0.986091 36088 -0.853370 -0.853363 -0.910532 -0.909912 -0.952131 -0.951294 -0.977449 -0.976868 36089 -0.781629 -0.782204 -0.853370 -0.853337 -0.910532 -0.909932 -0.952131 -0.951283 36090 -0.696540 -0.697354 -0.781629 -0.782188 -0.853370 -0.853356 -0.910532 -0.909921 36091 -0.599564 -0.600140 -0.696540 -0.697355 -0.781629 -0.782200 -0.853370 -0.853348 36092 -0.492363 -0.492371 -0.599564 -0.600159 -0.696540 -0.697357 -0.781629 -0.782196 36093 -0.376775 -0.376217 -0.492363 -0.492399 -0.599564 -0.600150 -0.696540 -0.697354 36094 -0.254780 -0.253986 -0.376775 -0.376245 -0.492363 -0.492386 -0.599564 -0.600146 36095 -0.128468 -0.127896 -0.254780 -0.254004 -0.376775 -0.376233 -0.492363 -0.492377 36096 -0.000000 0.000031 -0.128468 -0.127899 -0.254780 -0.253998 -0.376775 -0.376221 36097 0.128425 0.127915 -0.000000 0.000037 -0.128468 -0.127901 -0.254780 -0.253988 36098 0.254609 0.253873 0.128425 0.127922 -0.000000 0.000030 -0.128468 -0.127899 36099 0.376395 0.375873 0.254609 0.253871 0.128425 0.127917 -0.000000 0.000022 --- End code --- The 0° and 180° phases are correctly positioned, but the very first half wave – that which triggers the stereocilia, and humans being able to discriminate down to 10µs differences in the triggering time of same frequency bands between ears – is deformed. There is also quite a lot of quantization noise, and a spurious pre-pulse wave with significant amplitude (0.005, with quantization units of at 0.000030 or so). Essentially, the pulse leading edge is "smeared". If you examine the full output of the above Python script, you'll see that after the first wave or so, the output wave tracks very closely to the initial signal. The error or difference between initial and final signals are concentrated around the beginning of the wave packet, and this is what affects the signal arrival time difference discrimination in human hearing. |
| T3sl4co1l:
--- Quote from: Nominal Animal on September 20, 2023, 11:22:52 pm --- --- Quote from: newbrain on September 19, 2023, 02:10:45 pm ---The theory says that any band limited signal can be reconstructed perfectly, and that include its phase; any reasonably implemented sampling system (CD) is able to reproduce the phase shift with inaudible accuracy. --- End quote --- 1. Shannon-Nyquist only applies exactly if you have infinite precision, i.e. exact discrete samples. Quantizing the samples limits the accuracy. Discretized quantized signal is limited in both bandwidth and phase resolution, and is limited in the resolution at which it can represent the wave packet arrival time. --- End quote --- Sure, but suppose we have a quadrature sampled signal, i.e. 4 samples per cycle, so that Nyquist is happy enough. If the signal is a sine wave, then the samples are A sin(wt + ph), A sin(wt + ph + pi/2), etc. Depending on ph, either one pair of samples, or the other, is close to zero (ph ~ pi n / 2), and thus d(sample)/dph is large (~A) and the others are near +/-A and d(sample)/dph ~ 0; or both are similar (ph ~ pi (2n + 1) / 4) and all four slopes are comparable (d(sample)/dph ~ +/- A sqrt(2) / 2 in each slot). In either case, we have a total of two samples' worth at full gain, and thus somewhere on the order of 0.5-1 LSB of phase resolution, depending on how you want to count it (assuming A is ~full scale). I'm not sure what the complaint is here--? There might be complications due to mixing of frequencies, and practical signal chains, but those are issues of any practical signal chain, and if we had ideal brick wall filters, the above analysis can be approached arbitrarily (indeed it doesn't need to be quadrature, it could be, er, trisature so to speak, or anything strictly less than Nyquist condition if we don't mind that quantization noise becomes a larger fraction of phase noise for some samples; but that too doesn't really matter since we'd then be considering arbitrarily long windows of samples, as is necessary to resolve a signal arbitrarily close to Fs/2, and then phase is still perfectly recoverable in the presence of quantization noise; the N=4 case above is simply where it's evident within a ~minimum of samples). So in a real system with modest oversampling and whatever quantization level dictating overall bandwidth, things come through just fine. Mind, I'm not interested in getting into psychoacoustics here, and probably neither was the OP. At the very least, such a topic shouldn't be taken as a given, and must be explained and justified. For what little I know of it, it's my understanding the ear is particularly well tuned to correlations of specific kinds, like impulsive sounds (edges, short wavelets of many frequencies), and to -- given some assumptions about the expected spectrum of familiar sounds -- the comb-filtering effect of delays between ears, diffraction around the head, and reflection/diffraction within the (external) ear shape itself; and by extension, the effect of ambient (room or object) reflections. Which, I believe, the ears give a little front-back discrimination for applicable sounds, obviously mostly left-right, and very little up-down; which makes sense for a species expected to have evolved on a grassland to forest edge environment. Tim |
| gf:
--- Quote from: Nominal Animal on September 20, 2023, 11:22:52 pm ---You can easily simulate this, if you actually wanted to. Just generate a suitably shaped pulse as I described earlier at a higher sample rate. Generate several variants, delaying each by a one additional leading zero sample, then pad with lots of zeros to a suitable size. Decimate to CD audio sample rate and quantize to 16 bit samples, then resample back to original sample rate, and compare the initial and final waveforms. --- End quote --- I think the main problem is that the the original signal violates the sampling theorem. It does contain frequency contents >= 12kHz. Then the reconstructed signal is not supposed to be equal to the original one. However, when I compare the tabulated Delay+1 and Delay+2 values (with one sample offset), the differences seem to be in the order of magnitude expected with 16-bit quantization. --- Quote ---If you examine the full output of the above Python script, you'll see that after the first wave or so, the output wave tracks very closely to the initial signal. --- End quote --- I think this is mainly the difference between the original signal and the band-limited original signal (filtered with a zero-phase brickwall filter). If the original signal was already band-limited to < 12kHz per se, then I think you would not see such a big difference. |
| Navigation |
| Message Index |
| Next page |
| Previous page |