|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> I read that back in 1997. (Yes, that's how old it is.) I had trouble
> understanding it back then, and having reread it a few times since then, I
> still have trouble comprehending it.
>
> I think essentially wavelets are just too complicated to understand. So
> I'll stick with my original approach...
I don't claim to be anything like an expert on wavelets, but for someone who
apparently knows about fourier transforms it goes like this (roughly):
If you do a normal FT on a signal, you get a nice graph of amplitude against
frequency.
If you have a longer signal (eg a song) then you can split it up into chunks
and do FT on each chunk. You then get a nice 3D graph of how amplitude
against frequency changes over time.
The problem is that the shorter you make the chunks, the less accurate the
frequency information is. The longer you make the chunks, the less accurate
the time information is and the (more accurate) frequencies get blurred
together over time.
What wavelets do is allow you to use a different chunk size for different
frequencies. In a song you probably want a small chunk size for high
frequencies (the absolute frequency is not so important, just the timing),
and a large chunk size for low frequencies.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott wrote:
> If you do a normal FT on a signal, you get a nice graph of amplitude
> against frequency.
But, sadly, only for a sationary siganl.
The problem, essentially, is that standard Fourier theory lets you look
at a signal purely in the time domain, or purely in the frequency domain
- but humans perceive sounds in *both* domains simultaneously.
> If you have a longer signal (eg a song) then you can split it up into
> chunks and do FT on each chunk. You then get a nice 3D graph of how
> amplitude against frequency changes over time.
>
> The problem is that the shorter you make the chunks, the less accurate
> the frequency information is. The longer you make the chunks, the less
> accurate the time information is and the (more accurate) frequencies get
> blurred together over time.
Or rather, the problem is that if the chunk bounderiess don't line up
nicely with wave cycles, you get spurious high-frequency components
being reported that don't actually exist in the original signal.
> What wavelets do is allow you to use a different chunk size for
> different frequencies. In a song you probably want a small chunk size
> for high frequencies (the absolute frequency is not so important, just
> the timing), and a large chunk size for low frequencies.
Yeah. I get all that. I just don't understand how the maths works.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Or rather, the problem is that if the chunk bounderiess don't line up
> nicely with wave cycles, you get spurious high-frequency components being
> reported that don't actually exist in the original signal.
Use a non-rectangular window function?
>> What wavelets do is allow you to use a different chunk size for different
>> frequencies. In a song you probably want a small chunk size for high
>> frequencies (the absolute frequency is not so important, just the
>> timing), and a large chunk size for low frequencies.
>
> Yeah. I get all that. I just don't understand how the maths works.
Maybe you should get a real book? I have no idea if it is valid or not, but
you could start off by doing repeated FTs with different chunk sizes for
different frequencies...
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
scott wrote:
>> Or rather, the problem is that if the chunk bounderiess don't line up
>> nicely with wave cycles, you get spurious high-frequency components
>> being reported that don't actually exist in the original signal.
>
> Use a non-rectangular window function?
Mmm, that's equivilent to a convolution in the frequency domain. ;-)
>>> What wavelets do is allow you to use a different chunk size for
>>> different frequencies. In a song you probably want a small chunk
>>> size for high frequencies (the absolute frequency is not so
>>> important, just the timing), and a large chunk size for low frequencies.
>>
>> Yeah. I get all that. I just don't understand how the maths works.
>
> Maybe you should get a real book?
Possibly, yes...
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
>> This isn't quite true over the reals, even assuming you're only
>> looking for functions with a given period. For example the function
>> which is zero everywhere except being 1 at a single point will
>> generate the same Fourier representation as the constant zero function
>> since it will have the same integrals.
>
> O RLY?
>
> My DSP textbook says the Fourier transform of the delta function yields
> an amplitude of 1 for all frequencies. (Whereas the Fourier transform of
> a zero signal would be a zero signal.)
Both your book and Kevin are correct. He was not talking about the
delta function (which never has a value of 1).
--
ASCII stupid question... get a stupid ANSI!
/\ /\ /\ /
/ \/ \ u e e n / \/ a w a z
>>>>>>mue### [at] nawazorg<<<<<<
anl
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Invisible wrote:
> O RLY?
>
> My DSP textbook says the Fourier transform of the delta function yields
> an amplitude of 1 for all frequencies. (Whereas the Fourier transform of
> a zero signal would be a zero signal.)
>
As has been mentioned, a function which is zero everywhere except for
f(0)=1 is not what is meant by a delta function in this context. The
critical property of the delta function which your book is talking about
is that it has an integral of 1 over any interval containing the
`spike', whereas the function I described has an integral of zero
everywhere.
There's another argument that can lead you to the same conclusion that
you can't approximate any function over the reals with a Fourier
transform, and that's to note that the cardinality of the number of
possible Fourier representations is smaller than the cardinality of the
number of possible functions on the reals, so there have to be some
functions that you can't represent.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Kevin Wampler wrote:
> There's another argument that can lead you to the same conclusion that
> you can't approximate any function over the reals with a Fourier
> transform, and that's to note that the cardinality of the number of
> possible Fourier representations is smaller than the cardinality of the
> number of possible functions on the reals, so there have to be some
> functions that you can't represent.
Sure. For example, you might have a partial function that isn't defined
at certain points.
None of this really interests me that much, because in the specific
instance I'm looking at [processing digital audio and video] there
aren't any such functions to worry about.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Orchid XP v7 wrote:
> Sure. For example, you might have a partial function that isn't defined
> at certain points.
Even if you restrict yourself to functions which are defined everywhere
and are periodic with some given period the argument still applies. For
example, consider a really nasty function, like one which has a value of
one at all rational points and zero everywhere else.
> None of this really interests me that much, because in the specific
> instance I'm looking at [processing digital audio and video] there
> aren't any such functions to worry about.
Agreed. I hope that you find some interesting things with the audio and
video processing stuff! Is your goal to find some techniques which
improve on current methods or to fiddle around with some of the current
methods and understand them on a deeper level?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
>>> [We casually overlook the fact that JPEG doesn't work in the RGB colour
>>> space, it works in some weird custom space to better accomodate the
>>> peculiarities of the human eye.
>>
>> It's not a "custom space". It's the YCbCr color space, which has been
>> used in television and video for like 50 years.
>
> OK, I rephrase: It looks pretty exotic to me. ;-)
Essentially the entire JPEG compression happens after an image
is split into grayscale channels though. The color space conversion
isn't used to increase compression.
The way I understand (wavelet?) compression, like that
in JPEG2000, is that it takes a somewhat recursive approach.
I think this part involves the wavelets... (digital wavelets being
somewhat different from analog wavelets with all the
complicated math)
The algorithm goes something like this...
1. Load the image to be compressed to memory
2. Produce an image that is the difference between
the current pixel and an average of the last few...
with a few small variations, like you can't use the pixel
above the current pixel on the top line, but you can elsewhere.
For most images this is similar to edge-detect, the resulting
image is mostly black, so highly compressible.
3. Save the difference image
4. Produce an image that is the error between the image constructed
in step 2 (when reconstructed) and the image in memory
5. replace the image in memory with the error image
6. reduce the size of the image in memory, resize,
by some fixed ratio
7. if the image in memory is larger than some size then repeat steps 2-7
8. perform some standardish compression on the saved images and
produce a file.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Essentially the entire JPEG compression happens after an image
> is split into grayscale channels though. The color space conversion
> isn't used to increase compression.
Yes it is. Usually, in the new colour space, two of the channels are scaled
by 50% as a first step that vastly decreases the file size. You would never
be able to get this much compression with RGB without the result looking
much worse.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |