Re: [music-dsp] Sampling theory "best" explanation

2017-08-28 Thread Remy Muller
I second Sampo about giving some more hints about Hilbert spaces, 
shift-invariance, Riesz representation theorem... etc


Correct me if you said it somewhere and I didn't saw it, but an 
important /implicit/ assumption in your explanation is that you are 
talking about "uniform bandlimited sampling".


Personnally, my biggest enlighting moment regarding sampling where when 
I read these 2 articles:


"Sampling—50 Years After Shannon"
http://bigwww.epfl.ch/publications/unser0001.pdf

and

"Sampling Moments and Reconstructing Signals of Finite Rate of 
Innovation: Shannon Meets Strang–Fix"

https://infoscience.epfl.ch/record/104246/files/DragottiVB07.pdf

I wish I had discovered them much earlier during my signal processing 
classes.


Talking about generalized sampling, may seem abstract and beyond what 
you are trying to explain. However, in my personal experience, sampling 
seen through the lense of approximation theory as 'just a projection' 
onto a signal subspace made everything clearer by giving more perspective:


 * The choice of basis functions and norms is wide. The sinc function
   being just one of them and not a causal realizable one (infinite
   temporal support).
 * Analysis and synthesis functions don't have to be the same (cf
   wavelets bi-orthogonal filterbanks)
 * Perfect reconstruction is possible without requiring bandlimitedness!
 * The key concept is 'consistent sampling': /one seeks a signal
   approximation that is such that it would yield exactly the same
   measurements if it was reinjected into the system/.
 * All that is required is a "finite rate of innovation" (in the
   statistical sense).
 * Finite support kernels are easier to deal with in real-life because
   they can be realized (FIR) (reminder: time-limited <=> non-bandlimited)
 * Using the L2 norm is convenient because we can reason about best
   approximations in the least-squares sense and solve the projection
   problem using Linear Algebra using the standard L2 inner product.
 * Shift-invariance is even nicer since it enables /efficient/ signal
   processing.
 * Using sparser norms like the L1 norm enables sparse sampling and the
   whole field of compressed sensing. But it comes at a price: we have
   to use iterative projections to get there.

All of this is beyond your original purpose, but from a pedagocial 
viewpoint, I wish these 2 articles were systematically cited in a 
"Further Reading" section at the end of any explanation regarding the 
sampling theorem(s).


At least the wikipedia page cites the first article and has a section 
about non-uniform and sub-nyquist sampling but it's easy to miss the big 
picture for a newcomer.


Here's a condensed presentation by Michael Unser for those who would 
like to have a quick historical overview:

http://bigwww.epfl.ch/tutorials/unser0906.pdf


On 27/08/17 08:20, Sampo Syreeni wrote:

On 2017-08-25, Nigel Redmon wrote:


http://www.earlevel.com/main/tag/sampling-theory-series/?order=asc


Personally I'd make it much simpler at the top. Just tell them 
sampling is what it is: taking an instantaneous value of a signal at 
regular intervals. Then tell them that is all it takes to reconstruct 
the waveform under the assumption of bandlimitation -- a high-falutin 
term for "doesn't change too fast between your samples".


Even a simpleton can grasp that idea.

Then if somebody wants to go into the nitty-gritty of it, start 
talking about shift-invariant spaces, eigenfunctions, harmonical 
analysis, and the rest of the cool stuff.



___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] advice regarding USB oscilloscope

2017-03-08 Thread Remy Muller

hi,

AudioPrecision looks nice but it's way over my budget considering that 
it won't be used on a daily basis.


Looking at the specs, the QuantAsylum audio card only seems to have AC 
coupling (down to 1.6Hz) and their oscillosccope page is a bit short on 
details.


Hacking a soundcard as an oscilloscope could be very convenient since it 
benefits from all the standard audio softwares and can easily get beyong 
the 2/4 channels, but it's limited to AC coupling, unless there are 
soundcards that have DC coupled inputs? AFAIK most only provide DC outputs.
Furthermore having to do homemade matched probes and attenuators is not 
very 'plug and play'.


Since bitscope seems to only provide 8-bit ADC, Picoscope is thus very 
high on my list, in particular the 5000 series. I'm wondering whether 
their Arbitrary Waveform Generator option is really worth it though.


@Andrew I just found a python wrapper based on ctypes
https://github.com/colinoflynn/pico-python

Thanks for all the feedback!

On 08/03/17 12:16, Roshan Wijetunge wrote:
Depending on how cheap and improvised you want to go, and how handy 
you are with basic electronics, you can easily adapt your soundcard to 
work as an oscilloscope. There are a number of guides on the internet 
on how to do this, such as:


http://makezine.com/projects/sound-card-oscilloscope/

I have used the following variation with good results:

- Probe via resistor to mic input of mixer
- Mixer line out to line of USB soundcard
- Schwa Schope <http://www.stillwellaudio.com/plugins/schope/> plugin 
running in any DAW host (e.g. Reaper)


I used this setup as it utilised components I already had available, 
and it has proved very useful for debugging audio hardware, being able 
to trace signals through a circuit as well as biasing amplifier stages 
in pre-amps. Using the mixer gave me control over input signal range 
though clearly you have to be careful with gain staging so as not to 
introduce distortion to the signal.


I also improvised a signal generator using a Electro Harmonix Tube 
Zipper guitar effects pedal. It's an auto-wah type pedal, but you can 
set the resonance to maximum, sensitivity to zero and it generates a 
nice clean stable sine wave.


Best Regards
Roshan



On 8 March 2017 at 09:57, Andrew Simper <a...@cytomic.com 
<mailto:a...@cytomic.com>> wrote:


Picoscope make the cheapest 16-bit scopes around (USD 1000), the
16-bit stuff from Tektronix is a lot more expensive (USD 31000 -
that's right I didn't accidentally add an extra zero, it's x30 the
price). I would recommend using the Picoscope and use Python's easy c
bindings to call the Picoscope library functions to do what you want.

Cheers,

Andy

On 7 March 2017 at 22:59, Remy Muller <muller.r...@gmail.com
<mailto:muller.r...@gmail.com>> wrote:
> Hi,
>
> I'd like to invest into an USB oscilloscope.
>
> The main purpose is in analog data acquisition and
instrumentation. Since
> the main purpose is audio, bandwidth is not really an issue,
most models
> seem to provide 20MHz or much more and I'm mostly interested in
analog
> inputs, not logical ones.
>
> Ideally I'd like to have
>
>  - Mac, Windows and Linux support
>
> - 4 channels or more
>
> - 16-bit ADC
>
> - up to 20V
>
> - general purpose output generator*
>
> - a scripting API (python preferred)
>
> * I have been told that most oscilloscopes have either no or
limited output,
> and that I'd rather use a soundcard for generating dedicated
test audio
> signals, synchronizing the oscilloscope acquisition using the
soundcard's
> word-clock. However not having to deal with multiple drivers and
clock
> synchronization would be more than welcome.
>
> A friend of mine recommended using Picoscope which seems well
supported, has
> a strong user community but no official support for python AFAIK.
>
>
https://www.picotech.com/oscilloscope/5000/flexible-resolution-oscilloscope

<https://www.picotech.com/oscilloscope/5000/flexible-resolution-oscilloscope>
>
> I also found about bitscope http://www.bitscope.com which looks more
> oriented toward the casual hacker/maker, seems more open-ended
and has
> python support, much cheaper too.
>
> What about the traditional oscilloscope companies like
Tektronix, Rigol ?
>
> Has anyone experience with any of those? or any other reference to
> recommend?
>
>
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu <mailto:music-dsp@music.columbia.edu>
> https://lists.columbia.edu/mailman/listinfo/music-dsp

[music-dsp] advice regarding USB oscilloscope

2017-03-07 Thread Remy Muller

Hi,

I'd like to invest into an USB oscilloscope.

The main purpose is in analog data acquisition and instrumentation. 
Since the main purpose is audio, bandwidth is not really an issue, most 
models seem to provide 20MHz or much more and I'm mostly interested in 
analog inputs, not logical ones.


Ideally I'd like to have

 - Mac, Windows and Linux support

- 4 channels or more

- 16-bit ADC

- up to 20V

- general purpose output generator*

- a scripting API (python preferred)

* I have been told that most oscilloscopes have either no or limited 
output, and that I'd rather use a soundcard for generating dedicated 
test audio signals, synchronizing the oscilloscope acquisition using the 
soundcard's word-clock. However not having to deal with multiple drivers 
and clock synchronization would be more than welcome.


A friend of mine recommended using Picoscope which seems well supported, 
has a strong user community but no official support for python AFAIK.


https://www.picotech.com/oscilloscope/5000/flexible-resolution-oscilloscope

I also found about bitscope http://www.bitscope.com which looks more 
oriented toward the casual hacker/maker, seems more open-ended and has 
python support, much cheaper too.


What about the traditional oscilloscope companies like Tektronix, Rigol ?

Has anyone experience with any of those? or any other reference to 
recommend?



___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



Re: [music-dsp] Allpass filter

2016-12-07 Thread Remy Muller

sounds like a good candidate for Wiener deconvolution:

https://en.wikipedia.org/wiki/Wiener_deconvolution

On 07/12/16 13:10, Uli Brueggemann wrote:

Hi,

I'm searching a solution for an allpass filter calculation with 
following conditions:


There is a given pulse response p with a transfer function H. It is 
possible to derive a linear phase pulse response lp from the magnitude 
of H.


Now there is an equation
p * ap = lp  (* = convolution, ap = allpass)

Thus
ap = lp * p^-1


___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp