Jonkman Microblog
  • Login
Show Navigation
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Notices by Don Romano (alt) (thor@noagendasocial.com), page 45

  1. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 17:58:48 EDT Don Romano (alt) Don Romano (alt)

    Math equations as you typically find them in texts are a lot like optimised code. Like optimised code, they evaluate faster. Like optimised code, they're less intuitive and pedagogical than a naive implementation.

    For example, the matrix for rotating a vector around the origin makes a lot more sense if you write it out as a set of three equations, one per axis, because that way, you can actually work out how the sines and cosines act on each other and the point as the rotation angles change.

    In conversation Wednesday, 17-Apr-2019 17:58:48 EDT from noagendasocial.com permalink
  2. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 17:57:33 EDT Don Romano (alt) Don Romano (alt)

    Math equations as you typically find them in texts are a lot like optimised code. Like optimised code, they evaluate faster. Like optimised code, they're less intuitive and pedagogical than a naive implementation.

    For example, the matrix for rotating a vector around the origin makes a lot more sense if you write it out as a set of three equations - one per axis - because you can actually work out how the sines and cosines act on each other and the point as the rotation angle changes that way.

    In conversation Wednesday, 17-Apr-2019 17:57:33 EDT from noagendasocial.com permalink
  3. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 17:49:28 EDT Don Romano (alt) Don Romano (alt)
    in reply to
    • bifpowell

    @bifpowell But thanks! It looks like I was on the right path, and it's encouraging to see that math people would've done it the same way.

    In conversation Wednesday, 17-Apr-2019 17:49:28 EDT from noagendasocial.com permalink
  4. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 17:48:46 EDT Don Romano (alt) Don Romano (alt)
    in reply to
    • bifpowell

    @bifpowell In my case, I would not want to simplify them like that because I want to add the phase vectors in a loop before I find the magnitude.

    In conversation Wednesday, 17-Apr-2019 17:48:46 EDT from noagendasocial.com permalink
  5. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 17:47:37 EDT Don Romano (alt) Don Romano (alt)
    • bifpowell

    @bifpowell Their first steps look like mine. They are using phase vectors for the sine waves and adding them. For the angle, they just take the atan2 of that phase vector. For the amplitude, it looks like they're simplifying it by removing the parentheses and using various substitutions.

    In conversation Wednesday, 17-Apr-2019 17:47:37 EDT from noagendasocial.com permalink
  6. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 17:02:14 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    5) Phasors are pretty awesome. FFT coefficients are also phasors. The output of an FFT is an array of phasors representing the amplitude and phase of sine waves at evenly spaced frequencies between DC and the Nyquist frequency. If you use a big FFT window and manipulate the phase angles while leaving the amplitudes intact, you can produce some really weird and wonderful audio smearing effects.

    In conversation Wednesday, 17-Apr-2019 17:02:14 EDT from noagendasocial.com permalink
  7. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 16:56:12 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    4) The purpose of this exercise is that I'm writing a simple microphone array simulator with the goal of producing polar patterns for whole arrays. I want to see what happens if you move microphones around or sum/subtract them in different ways, so I'm using ray-casting to each element from an orbiting source and naturally I need to know what happens to the amplitude as that's going on in order to render a polar pattern.

    In conversation Wednesday, 17-Apr-2019 16:56:12 EDT from noagendasocial.com permalink
  8. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 16:47:10 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    3) So, the answer to "What is the amplitude of two summed sine waves of equal periods but different amplitudes and phases?" would seem to boil down to something like:

    v₁ = A₁ cos(ϕ₁) + A₂ cos(ϕ₂),
    v₂ = A₁ sin(ϕ₁) + A₂ sin(ϕ₂)

    M₁₂ = √v₁² + v₂²

    Essentially tacking one phase vector of a sine wave onto the end of another and finding the distance from the origin.

    Does this sound right?

    In conversation Wednesday, 17-Apr-2019 16:47:10 EDT from noagendasocial.com permalink
  9. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 16:17:24 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    2) Now, if that's true, a rotation of the resulting phasor should behave as if the two phasors are rotating.

    Now, if that is true, the magnitude of this phasor should represent the maximum real magnitude of the summed waveforms, since it will hit that magnitude on the real plane whenever it intersects with the horizontal axis.

    In conversation Wednesday, 17-Apr-2019 16:17:24 EDT from noagendasocial.com permalink
  10. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 16:13:52 EDT Don Romano (alt) Don Romano (alt)

    1) The problem I'm trying to solve essentially looks like this animation:

    https://images.app.goo.gl/iNf1XwxHFLRrZkLu6

    Given two sine waves with the same frequency but different phases and amplitudes (here represented as phasors), what is the peak amplitude of their sum across a 360 degree cycle?

    If my understanding of phasors is right, summing the two phasors on the complex plane at a given instant should produce a phasor that represents the sum of the actual waveforms.

    In conversation Wednesday, 17-Apr-2019 16:13:52 EDT from noagendasocial.com permalink
  11. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 16:10:18 EDT Don Romano (alt) Don Romano (alt)

    The problem I'm essentially trying to solve looks like the animation below. Given two sine waves with the same frequency but different phases and amplitudes (here represented as phasors), what is the peak amplitude of their sum across a 360 degree rotation of the phasor.

    If my understanding of phasors is right, summing the two phasors on the complex plane at a given instant should produce a phasor that represents the sum of the actual waveforms.

    In conversation Wednesday, 17-Apr-2019 16:10:18 EDT from noagendasocial.com permalink
  12. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 15:55:37 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    Okay, so... Transforming each sine wave into a phasor (complex number representation) would let you sum each phasor to produce a new phasor, but that still only gives you an answer for a single instant in time.

    My gut feeling tells me that I might need some calculus to solve this.

    In conversation Wednesday, 17-Apr-2019 15:55:37 EDT from noagendasocial.com permalink
  13. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 15:37:27 EDT Don Romano (alt) Don Romano (alt)

    One of those questions that Google gives you 1000 irrelevant answers for: Given N summed sine waves, all of frequency X, with N different phase shifts and amplitudes, what is the resulting amplitude? Integrating them in discrete steps over time and finding the maximum seems like a clumsy way of doing it.

    I guess it would help to reword it to "find the new phase and amplitude given two summed sine waves" and then iterate over that.

    In conversation Wednesday, 17-Apr-2019 15:37:27 EDT from noagendasocial.com permalink
  14. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 15:35:01 EDT Don Romano (alt) Don Romano (alt)

    One of those questions that Google gives you 1000 irrelevant answers for: Given N summed sine waves, all of frequency X, with N different phase shifts and amplitudes, what is the resulting amplitude? Integrating them in discrete steps over time and finding the maximum seems like a clumsy way of doing it.

    In conversation Wednesday, 17-Apr-2019 15:35:01 EDT from noagendasocial.com permalink
  15. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 05:33:31 EDT Don Romano (alt) Don Romano (alt)

    Out taking a walk in my home town. When you live in these places, you take the scenic views for granted. Not so after you've lived in the city for a decade.

    In conversation Wednesday, 17-Apr-2019 05:33:31 EDT from noagendasocial.com permalink
  16. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 05:24:41 EDT Don Romano (alt) Don Romano (alt)

    ADAT Lightpipe would seem to be a useful interface for doing a bit of experimentation with MEMS microphones. Getting the signals into a DAW seems to offer the simplest way of experimenting with these microphones. There is a DAW named REAPER where you can write your own DSP algorithms in a built-in scripting language without needing to implement a full VST/AU plugin.

    In conversation Wednesday, 17-Apr-2019 05:24:41 EDT from noagendasocial.com permalink
  17. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 04:49:08 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    5) A further implication of this is that you shouldn't ever let two microphones in the same acoustic environment (say, a pair of overhead mics) be on each side of an ADAT Lightpipe, because there will be a constant delay there, and you will get a skewed stereo image and comb filtering between the channels.

    In conversation Wednesday, 17-Apr-2019 04:49:08 EDT from noagendasocial.com permalink
  18. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 04:46:24 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    4) The ultimate implication of this is that an ADAT Lightpipe recording device can never have a delay of less than two or three samples. The ADC induces a one-sample delay and a further one-sample delay is induced because time is needed to assemble and transmit a ADAT Lightpipe packet. With a playback device on the other end, a further two-sample delay is induced because the packet must be decoded, both by the device and the playback DAC itself.

    In conversation Wednesday, 17-Apr-2019 04:46:24 EDT from noagendasocial.com permalink
  19. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 04:42:04 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    3) I guess the source of my confusion was that of instantaneous samples. A device attempting to play back a serial PCM signal can't actually instantaneously output the sample at the word clock, because the clock edge merely indicates the beginning of the transmission of a sample, not the beginning of reproduction. With resistor-ladder ADCs and DACs and a parallel bus, you *could* instantaneously reproduce the sample, and there would be no delay.

    In conversation Wednesday, 17-Apr-2019 04:42:04 EDT from noagendasocial.com permalink
  20. Don Romano (alt) (thor@noagendasocial.com)'s status on Wednesday, 17-Apr-2019 04:38:47 EDT Don Romano (alt) Don Romano (alt)
    in reply to

    2) I'm guessing that what your typical ADC does is integrate the PDM signal until the next word clock edge comes along, at which point it places the sum in a shift register and begins to clock it out.

    For an ADAT slave device with ADCs that output a PDM signal, I suppose what you need to do is similar. You'd use a PLL to derive your oversampling clock from the word clock, and integrate PDM bits until a word clock edge comes along.

    In conversation Wednesday, 17-Apr-2019 04:38:47 EDT from noagendasocial.com permalink
  • After
  • Before
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

Jonkman Microblog is a social network, courtesy of SOBAC Microcomputer Services. It runs on GNU social, version 1.2.0-beta5, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All Jonkman Microblog content and data are available under the Creative Commons Attribution 3.0 license.

Switch to desktop site layout.