I was wondering if anyone has tried converting PCM signals to delta-sigma and vice-versa in PD? Are there any examples of how one would do that?
To be clear, I don't need it to be realtime as such; what I'd like to do is be able to copy the PCM values of one array as a delta-sigma version in another.
Any ideas or pointers?
Thanks,
biquad~ 0 0 1 -1 0
then to convert back,
biquad~ 1 0 1 0 0
(this may differ by a DC offset fromt eh original).
cheers Miller
On Sat, Nov 23, 2019 at 04:29:32PM +0000, Martin Dupras wrote:
I was wondering if anyone has tried converting PCM signals to delta-sigma and vice-versa in PD? Are there any examples of how one would do that?
To be clear, I don't need it to be realtime as such; what I'd like to do is be able to copy the PCM values of one array as a delta-sigma version in another.
Any ideas or pointers?
Thanks,
- martin
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Thanks Miller!
I don't particularly understand the math behind biquad filters, so might you be able to elaborate on how that works? Am I right in understanding that the first yields the first derivative of the signal?
That's not quite what I'm trying to do; I think perhaps I need to explain myself better.
Here's what I'm trying to do.
As I understand it, to convert a PCM signal into a (say) 1-bit sigma delta equivalent, you'd upsample it by some power of 2 (say 32), low-pass filter it, and then quantize to 1 bit whether the signal goes up or down. So what I'd like to do is store the resulting delta signal numerically in an array of the same size, but where each index is storing, instead of a single 32-bit value, the 32-bit numerical equivalent of the sequence of 0s and 1s that happens in the space of 1 sample.
Any idea how I would go about this?
Many thanks!
On Sat, 23 Nov 2019 at 17:07, Miller Puckette msp@ucsd.edu wrote:
biquad~ 0 0 1 -1 0
then to convert back,
biquad~ 1 0 1 0 0
(this may differ by a DC offset fromt eh original).
cheers Miller
On Sat, Nov 23, 2019 at 04:29:32PM +0000, Martin Dupras wrote:
I was wondering if anyone has tried converting PCM signals to delta-sigma and vice-versa in PD? Are there any examples of how one would do that?
To be clear, I don't need it to be realtime as such; what I'd like to do is be able to copy the PCM values of one array as a delta-sigma version in another.
Any ideas or pointers?
Thanks,
- martin
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi, Martin.
A first-order digital delta-sigma modulator would be a difference followed by an integrator and a quantiser in a feedback loop. The difference is between the input (multi-bit) and the output (1-bit); the integrator is a unit-gain, 1-sample feedback loop, so [rpole~ 1]. Particularly, I'm talking about a bipolar DDSM where the quantiser gives 1 for signals >= 0, -1 otherwise.
http://dariosanfilippo.tumblr.com You can convert a 1-bit signal into a multi-bit one by averaging the impulses. For that, you can use a low-pass filter that would also remove the shaped noise introduced by the quantisation. The cutoff of the filter gives you the bandwidth of the resulting signal; the resolution of the coefficients of the low-pass filter determines the sample depth resolution.
I am not aware of designs where a low-pass is used before quantisation.
In PD, it would be something like this:
[image: image.png]
Cheers, Dario
On Sat, 23 Nov 2019 at 19:35, Martin Dupras martindupras@gmail.com wrote:
Thanks Miller!
I don't particularly understand the math behind biquad filters, so might you be able to elaborate on how that works? Am I right in understanding that the first yields the first derivative of the signal?
That's not quite what I'm trying to do; I think perhaps I need to explain myself better.
Here's what I'm trying to do.
As I understand it, to convert a PCM signal into a (say) 1-bit sigma delta equivalent, you'd upsample it by some power of 2 (say 32), low-pass filter it, and then quantize to 1 bit whether the signal goes up or down. So what I'd like to do is store the resulting delta signal numerically in an array of the same size, but where each index is storing, instead of a single 32-bit value, the 32-bit numerical equivalent of the sequence of 0s and 1s that happens in the space of 1 sample.
Any idea how I would go about this?
Many thanks!
- martin
On Sat, 23 Nov 2019 at 17:07, Miller Puckette msp@ucsd.edu wrote:
biquad~ 0 0 1 -1 0
then to convert back,
biquad~ 1 0 1 0 0
(this may differ by a DC offset fromt eh original).
cheers Miller
On Sat, Nov 23, 2019 at 04:29:32PM +0000, Martin Dupras wrote:
I was wondering if anyone has tried converting PCM signals to delta-sigma and vice-versa in PD? Are there any examples of how one would do that?
To be clear, I don't need it to be realtime as such; what I'd like to do is be able to copy the PCM values of one array as a delta-sigma version in another.
Any ideas or pointers?
Thanks,
- martin
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->
https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list