From 1c2346ee314637fe345106f03f7277e6b95d0b64 Mon Sep 17 00:00:00 2001 From: Frank Reiser Date: Fri, 2 Feb 2024 11:55:17 -0500 Subject: [PATCH 1/2] Grammatical README Changes More README changes to come. Locking these in. --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 95ee34c..a9cdddd 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Care must be exercised to ensure that the dynamic rate variable does not cross the nyquist point over the course of usage. If this is allowed to occur, positive frequency rolls over to negative and, in decelerating cases, negative frequency becomes positive. Otherwise, it is immune from domain range limits since it does not track, or care about, "cycles". Angular velocity may be monitored via the -`getOmegaBar` operation, which returns the mean average velocity between the next two samples delivered. +`getOmegaBar` operation, which returns the mean average velocity between the next two samples, next up for delivery. Acceleration may be halted or otherwise modified via the `modifyAccel` operation. ## Details @@ -40,17 +40,17 @@ This tone generator performs this re-normalization every other sample. This was a simple and inexpensive linear approximation is all that is required to maintain stability. Regarding the "state data", this tone generator was designed to generate a single chirp per instance. -An instance is constructed with an initial acceleration, omega zero and a phase angle (phi). +An instance is constructed with an initial acceleration, an omega zero, and a phase angle (phi). When an initial number of samples are requested from an instance, they are delivered from the starting phase angle at an accelerating radians per sample, rate. Subsequent sample requests, are delivered in phase (continuous) with the previous samples delivered. An instance -may be "reset" however, to produce a different chirp. Resetting re-initializes all "state data" +may be "reset" however, to produce a different chirp. Resetting re-initializes all state data as if the object were just constructed. The amount of state data maintained is fairly small. # Example Data Characteristics Here, we present some example data created with the 'streamChirpingPhasor' utility program included with the project. We generated 1024 samples with an acceleration of pi/16384 radians per sample squared, -with an omega zero of of zero and a starting phase of zero. +with an omega zero of zero, and a starting phase (phi) of zero. This data is plotted below: Figure 1 - Example Chirping Phasor Sample Series Data From 3c93ddfff9592e97e888b9ceb86ea831e8d43ab2 Mon Sep 17 00:00:00 2001 From: Frank Reiser Date: Fri, 2 Feb 2024 14:49:15 -0500 Subject: [PATCH 2/2] Fixed up Figure 1 Figure 1 actually had a rate of pi/8192 rads per second squared, not the documented pi/16384. Also, there were other issues with the figure that were merely annoying. --- README.md | 4 +- graphics/PlotNotes.txt | 4 +- graphics/figure1.svg | 2338 ++++++++++++++++++++-------------------- 3 files changed, 1173 insertions(+), 1173 deletions(-) diff --git a/README.md b/README.md index a9cdddd..f9d10fe 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,8 @@ Figure 1 - Example Chirping Phasor Sample Series Data ![Figure 1](graphics/figure1.svg) From the figure, we can see a linearly increasing frequency. The data is complex in nature. If you only -need the imaginary value, that can be extracted. The real value is calculated simultaneously for free -and may be useful for compensating for, or for creating doppler shifts with complex signal data. +need the 'real' or 'imaginary' value, either can be extracted. They are calculated simultaneously for the +price of one. For DSP applications, you most likely would require both. # Interface Compatibility This component has been tested to be interface-able with C++20 compiles. Note that the compiled library code diff --git a/graphics/PlotNotes.txt b/graphics/PlotNotes.txt index a5545d8..f93c0c6 100644 --- a/graphics/PlotNotes.txt +++ b/graphics/PlotNotes.txt @@ -18,7 +18,7 @@ gnuplot set term svg size 520, 360 font "Helvetica,12" background rgb "grey90" set output 'figure1.svg' set xrange [0:1023] -set yrange [-1.5:1.5] +set yrange [-1.5:1.6] set xtics 128 set ytics 0.5 set grid xtics @@ -29,4 +29,4 @@ set title "ChirpingPhasor accel=pi/16384, omega0=0.0, phi=0.0" set title "ChirpingPhasor accel=pi/16384 rads/sample^2, omega0=0.0, phi=0.0" # This is one long line, not two lines. Output goes directly to the file 'figure1.svg'. -plot 'chirpingPhasorB32.in' binary format="%uint%float%float" using 1:3 with lines title "imag(n)", 'chirpingPhasorB32.in' binary format="%uint%float%float" using 1:2 with dots title "real(n)" +plot 'chirpingPhasorB32.in' binary format="%uint%float%float" using 1:2 with lines title "real(n)", 'chirpingPhasorB32.in' binary format="%uint%float%float" using 1:3 with dots title "imag(n)" diff --git a/graphics/figure1.svg b/graphics/figure1.svg index 82ecc34..c1915d9 100644 --- a/graphics/figure1.svg +++ b/graphics/figure1.svg @@ -59,11 +59,11 @@ - + - + -1 @@ -72,11 +72,11 @@ - + - + -0.5 @@ -85,11 +85,11 @@ - + - + 0 @@ -98,11 +98,11 @@ - + - + 0.5 @@ -111,11 +111,11 @@ - + - + 1 @@ -124,11 +124,11 @@ - + - + 1.5 @@ -263,2197 +263,2197 @@ ChirpingPhasor accel=pi/16384 rads/sample2, omega0=0.0, phi=0.0 - imag(n) + real(n) - imag(n) + real(n) - + - real(n) + imag(n) - real(n) + imag(n) - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +