Deutsch   English   Français   Italiano  
<1t4o1k1uo8qa244fcv7jr7dnljlvp72vmq@4ax.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: john larkin <jl@glen--canyon.com>
Newsgroups: sci.electronics.design,comp.dsp
Subject: Re: DDS question: why sine lookup?
Date: Wed, 07 May 2025 19:21:20 -0700
Organization: A noiseless patient Spider
Lines: 55
Message-ID: <1t4o1k1uo8qa244fcv7jr7dnljlvp72vmq@4ax.com>
References: <o3ak1k9ifikv6c1tmfnd89k6vfj4vigj37@4ax.com> <vvgcgp$16qbl$1@dont-email.me> <3uen1khfvdihaho4vv2hf9amb09vbg77tq@4ax.com> <681bfa8e$0$13$882e4bbb@reader.netnews.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 08 May 2025 04:21:24 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="df58159068a9fa4ebe83bc4e77c3ff62";
	logging-data="1587381"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/8tWqlKJweTQ41SKJkLRNv"
User-Agent: ForteAgent/8.00.32.1272
Cancel-Lock: sha1:x4rAWDx62PdRNB+ah4WXFJDRxsQ=
Bytes: 3433

On Wed, 7 May 2025 20:27:58 -0400, bitrex <user@example.net> wrote:

>On 5/7/2025 4:01 PM, john larkin wrote:
>> On Wed, 7 May 2025 20:32:41 +0100, Martin Brown
>> <'''newspam'''@nonad.co.uk> wrote:
>> 
>>> On 06/05/2025 16:48, john larkin wrote:
>>>> A DDS clock generator uses an NCO (a phase accumulator) and takes some
>>>> number of MSBs, maps through a sine lookup table, drives a DAC and a
>>>> lowpass filter and finally a comparator. The DAC output gets pretty
>>>> ratty near Nyquist, and the filter smooths out and interpolates the
>>>> steps and reduces jitter.
>>>>
>>>> But why do the sine lookup? Why not use the phase accumulator MSBs
>>>> directly and get a sawtooth, and filter that?
>>>
>>> A saw tooth wave has a huge step like discontinuity in it which looks
>>> very ugly in the frequency domain with strong harmonics. Strong sharp
>>> features in time domain are broad in frequency space and vice versa.
>>>
>>> If you wanted something a bit different then detecting the phase
>>> accumulator overflow and reversing the count sense to get a triangle
>>> wave might be an option (at half the frequency). Needs some very careful
>>> maths at the boundary flips to avoid introducing jitter.
>>>
>>>  From that triangle wave you can use HP's wizard diode shaping network
>>> trick to get a pretty good clean sine wave.
>> 
>> Yes, a triangle would be better than a sawtooth... fewer nasty
>> subharmonics. But we may as well stick with the classic boring sine
>> wave. The sine lookup is trivial in an FPGA.
>> 
>
>A band-limited square wave is pretty space & computation-efficient, you 
>just store the Gibbs phenomena portion of the wave to whatever harmonic 
>level you desire, play it back, and then sit there and wait during the 
>DC parts of the wave.
>
>If you then integrate a band-limited square wave you get a band-limited 
>triangle wave directly.

If I could make a square wave from the MSBs of the phase accumulator,
I might not need the DAC and filter and comparator.

Just using the MSB of the phase accumulator is the right frequency,
but it's very jitterey. 

So, is there a way to examine some number of MSBs and make an edge
with high time resolution, all digitally, all inside the FPGA? To even
1 clock resolution, preferably better?

There probably is.