![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Another thing which irritates me is the definition of "having a life"
> these people have. Why is their definition more correct than other
> people's?
> Don't you "have a life" when you are happy with what you are doing? Why
> should someone be belittled as not "having a life" just because his
> interests are different?
Agreed too Warp, my girlfriend says how she used to laugh at people like me
at school and tell them to "get a life", but now she admits that actually
it's the other way round. She still says to me sometimes about me and my
work colleagues pretending to do important stuff the whole time which really
isn't, until I remind her that things like mobile phones will not invent
themselves, and actually it takes a *HUGE* number of people to get a product
like that onto the market.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Shay wrote:
> I study Sigma-delta data converters. Sigma-delta is a specific type of
> architecture that works well for 16 to 24-bit applications like audio. A
> data converter is a specific type of integrated circuit (IC) that
> converts analog signals to or from digital signals.
IIRC, this involves generating a pulse train from an analogue signal.
This train consists of negative and positive pulses in such a way that
if you average them together, you get the original signal. But actually
to make the converter, you send the pulses to a counter, which then
converts them into normal binary numbers.
(The pulse train itself has the desirable property that all the pulses
are "equal". In other words, unlike a binary signal that has a most
significant bit and a least significant bit, and you need to know which
bits those are, the pulse train doesn't require any such synchronisation.)
The DSP book I read had a whole chapter on A/D and D/A conversion.
Apparently A/D conversion actually works better if you deliberately add
a tiny amount of noise. (For the same reason that POV-Ray purposely adds
sampling jitter to the antialias pass.)
> The big areas of research in this field are (1) lower power and (2)
> migrating technologies.
Makes sense...
> In my opinon, data converter design is one the most difficult aspects of
> IC design. A good designer has to know analog circuits, digital
> circuits, signal-processing, and sensors/transducers. And as long as
> innovative designs are required, there will be good jobs for high
> quality engineers.
Heh. It's well beyond my field... ;-)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> IIRC, this involves generating a pulse train from an analogue signal.
> This train consists of negative and positive pulses in such a way that
> if you average them together, you get the original signal. But actually
> to make the converter, you send the pulses to a counter, which then
> converts them into normal binary numbers.
Sounds like PWM.
Fun stuff. A while back I was playing around with some DSP-type stuff.
What I found was interesting is that if you generate an ideal square
wave, them attempt to sweep it, you'll get audible artifacts, but if you
generate the square wave by adding sine waves at odd harmonics, and you
use a cycle of that generated wave to produce a sweep, it works nice and
smooth, as it should.
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike Raiford wrote:
> Sounds like PWM.
Strictly, that's what D/A and A/D converters do. ;-)
> Fun stuff. A while back I was playing around with some DSP-type stuff.
> What I found was interesting is that if you generate an ideal square
> wave, them attempt to sweep it, you'll get audible artifacts, but if you
> generate the square wave by adding sine waves at odd harmonics, and you
> use a cycle of that generated wave to produce a sweep, it works nice and
> smooth, as it should.
Somebody doesn't understand the Nyquist limit, and sinc filtering,
methinks...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Somebody doesn't understand the Nyquist limit, and sinc filtering,
> methinks...
I understand the Nyquist limit, but not sinc filtering.
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> Somebody doesn't understand the Nyquist limit, and sinc filtering,
>> methinks...
>
> I understand the Nyquist limit, but not sinc filtering.
OK, well suffice it to say that if you have an odd number of samples,
it's not possible to make half of them negative and half of them
positive. ;-)
If you manually sum sinewaves, it does the right thing automatically.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> OK, well suffice it to say that if you have an odd number of samples,
> it's not possible to make half of them negative and half of them
> positive. ;-)
>
> If you manually sum sinewaves, it does the right thing automatically.
Ahh, makes sense.
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> OK, well suffice it to say that if you have an odd number of samples,
>> it's not possible to make half of them negative and half of them
>> positive. ;-)
>>
>> If you manually sum sinewaves, it does the right thing automatically.
>
> Ahh, makes sense.
Yeah.
I don't know if you know this already, but... the sinc function is the
impulse response of a perfect lowpass filter - which would be the ideal
kind of antialias filter.
If you take a digital signal and just throw away some of the samples to
change the pitch, you get aliasing. (High frequencies become distorted
into lower ones.)
Sure, you take the average of several points instead of just using one
of those points. This is equivilent to applying a moving-average filter
to the signal before downsampling it. If you look at the frequency
response for such a filter, you'll see it doesn't actually remove high
frequencies especially efficiently.
If, on the other hand, you apply a (windowed) sinc filter first, this
*will* remove high frequences more efficiently. Then when you
downsample, there won't be any high frequencies to alias.
Trouble is, a "perfect" lowpass filter requires an infinite kernel -
which isn't computable. (But note that if you're manipulating equations
rather than numerical samples, the magic of integral calculus means it
usually *can* be computed!) That's why it must be a "windowed" sinc.
sinc 0 = 1
sinc x = (sin x) / x
(This is actual, valid Haskell source code, BTW.)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> sinc 0 = 1
> sinc x = (sin x) / x
>
> (This is actual, valid Haskell source code, BTW.)
That explains at least why sounds that have been slowed always seem to
get a bit electronic sounding.
The aliasing I was speaking of, btw was more on the lines of taking a
sweep, say from 440-3520hz you'll hear a "banding" artifact in the sweep
where if you use the sum of harmonics square wave, the banding doesn't
occur.
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike Raiford wrote:
> sweep, say from 440-3520hz you'll hear a "banding" artifact in the sweep
When I say banding, I mean it almost sounds like mach banding looks. (it
sounds like sudden jumps in frequency, instead of a smooth transition)
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |