Announcement

Collapse
No announcement yet.

PC based Proton Precession Magnetometer?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PC based Proton Precession Magnetometer?

    Now that laptop computers with decent 'sound card' capabilities are becoming more available, I wonder if anyone out there has seen any software to process a proton precession mag’s precession audio signals using a PC program?

    I am not talking about processing the RS-232 data from some overpriced comercial mag unit (using even more overpriced comercial software), but rather, using the PC's audio capture and processing capabilities to build a very high performance magnetometer at very, very low cost.

    It would not be very difficult to fabricate a basic 'sensor head' with an built-in preamp and polarizing current switch, then connect it to the ‘mic-in’ or ‘line-in’ and let the PC software do the ‘heavy lifting’ when it comes to processing, filtering, and counting down the audio.

    I know this will work because I have found several very nice (and freely available) audio spectrum analyzer programs. These programs were found on ‘amateur radio’ sites and are intended for weak signal RF work. These audio spectrum analyzer programs are able to display even very weak and noisy precession sounds due to the powerful signal processing available on a modern PC. What they don’t do right now is the automatic conversion from Hz to Nano-Teslas (23.48719622nT/Hz) to convert the approx 2kHz precession audio into a direct numeric readout of magnetic flux.

    Using the ‘sound card’ A/D and raw processing power of a PC would allow a smaller simpler and lower power sensor design. One of the PC’s ports could even be used to gate the polarizing current, reducing the sensor head to a small quantity of water (or kerosene), a coil of wire (gated by a mosfet or reed relay current switch), and a very simple op-amp audio preamp.

    We’re only talking about 5 bucks in parts and a little software here, which seems like a really neat idea, but I don’t want to ‘reinvent the wheel’ so if someone has already seen a PC ‘sound card’ based proton precession magnetometer data reduction program, I would appreciate it if you would post the link.

    Thanks
    Steve B.

  • #2
    Re: PC based Proton Precession Magnetometer?

    Hi Steve,
    I think that you underestimate the critical analog parts of a magnetometer and overestimate the digital processing phase.
    The signal coming from the sensor after the polarization phase is at most 1 or 2 µV, thus a VERY LOW NOISE pre-amplifier has to be implemented with a good pass-band filtering around the 2KHz. Note that this pre-amplifier and its relay may not be close to the sensor because of their ferro-magnetic parts.
    It is true that the signal going out of a good amplifier/filer chain could be fed into the micro input of a sound card and then processed by a PC program.
    However, the subsequent counting of periods (zero crossing) of the resulting (squared) audio signal and the conversion of the precession frequency into corresponding nT's are simple enough tasks for a small and cheap micro-controller. A standard micro-controller configuration with an LCD/KBD, an EEPROM (for temporary measurement storage) and an RS232 link (for downloading measurements to a PC) is more than adequate for the tasks.
    This does not require the use of powerful A/D capabilities and raw processing power of a PC with its sound card.
    Moreover, in practice of field survey, a gradiometer configuration is much better as it avoid the time variations of the earth magnetic field. In such a case, you would need two sensors, two amplifier chains and TWO sound cards on your PC.

    Willy

    Comment


    • #3
      Re: PC based Proton Precession Magnetometer?

      Willy,
      Thanks for your thoughts. The points you raised are very similar to those mentioned in "Requirements for Obtaining High Accuracy With Proton Magnetometers" by Dr. I Hrvoic,

      do a Google search for . . .

      "GEM_Proton_Magnetometers_Accuracy.pdf"

      As you stated, noise, due to low signal levels, and offsets, due to failure to maintain a "clean" magnetic environment near the sensor, are major concerns.

      The only thing I can't quite understand is how your comments relate to what I proposed?

      For example, you point out correctly that a small micro-controller based solution would do the job with less hardware overhead, but the original question on this message thread asked about interfacing with a PC. If you start out with the assumption that there WILL be a PC involved, the situation is reversed, is it not?

      In other words, the lower 'overhead' solution is NOT to have an unnecessary micro-controller if the PC can do the job by itself (and it can).

      There would undoubatably be some advantage to an instrument which could be used WITH/WITHOUT a laptop computer, but that wasn't the starting assumption in this case.

      Your point about keeping the preamp or other problem assembly’s an appropriate distance from the sensor is also valid, but once again, what does that have to do with my proposal? (Since the EXACT same limitation about careful mounting of preamp electronics would apply to a stand alone micro-controller based design).

      True, if you wanted to use a full sized Personal Computer with the unit you would want to keep it 20 or even 30 meters away from the pickup, but if the object was a fixed geomagnetic monitoring station, that might be just fine.

      Even in a boat towed survey, I have to wonder, would the laptop in the boat create more of a problem than the boats motor? (I think not}.

      As to the low signal levels, the overall noise figure in a system using a high gain preamp is overwelmingly determined by the preamp itself, so this would not be all that big an issue and, in any case, would be the same or worse for a stand alone design not using digital filtering.

      Even fairly ordinary low noise op-amps (i.e. TL77) have noise specs of about 5 nanovolts/Hz^2 which would give a 46 dB S/N for a 1 HZ bandwidth filter (with 1 uV of input).

      Think that my assumed filter is too narrow?

      Maybe for a 'analog only' design, but, using a 10 second 'sample window' for a digital FFT, the 'bin' width of the digital filter would be only 0.1 Hz!

      I agree that getting 'world class' accruacy is not trivial, but I guess I disagree slightly about the approach, getting good solid filter performance is tricky in the analog domain, but in the digital domain it's just math.

      You are absolutely correct that a solid analog design is also important, for example, the best bipolar op-amp designs have less than half the above quoted noise voltage (6 dB better noise figure). In the ideal case you would want a good clean sensor design AND effective digital filtering, which would translate to less polarizing power needed and better accuracy.

      None the less, I'll stand by my assertion that you could use a spool of wire from 'home depot' an op-amp and a couple transistors from 'Radio Shack' and your average PC's sound card, and end up with better performance than about half the commercial units out there (as long as you had some clever software to tie it all together).

      Maybe not up there with the GEM units, but better than some of the 'tresure hunter' snake oil designs . . .

      Steve B.

      Comment


      • #4
        Re: PC based Proton Precession Magnetometer?

        It looks to me that this can be the beginning of a very interesting discussion on Proton Mags (possibly followed by a team project). This could possibly revive a bit the activity on this forum which is quite silent these days.
        In my last message, I just wanted to test your understanding of the real problematic points in that matter. That's the reason why I insisted so much on the quality requirements of the analog part although I am a digital-oriented person by nature and experience (I am a retired software engineer after a 35-year career in industrial and military R&D projects).
        I, personally, am not too much concerned about fixed-position instruments and their absolute accuracy requirements but I have the ambition to build a PPM (or gradiometer) with a resolution at the level of 1 nT or slightly better, if possible. This must be much better than any design based on listening the Beat Frequency signal generated by the mixing of signals from two opposite sensors.
        Now, coming back to our discussion, I am interested by the concept that you describe and I would be ready to modify my own current project plan accordingly if we come to an agreement about a possible design. I am currently building a prototype of a PPM using the design of Jim Koehler and a large toroïdal sensor. My intention was to make a front-end card with all the polarization and amplification circuitry which could be doubled for a gradiometer and a back-end processing card based on a PIC micro-controller with EEPROM storage and RS232 capabilities. The final storage and graphical 3D display of the survey results would be made on a standard Office PC. Your design would indeed simplify the analog part by suppressing the band-pass filtering and the comparator stages keeping only the polarization control and the low noise pre-amp stages. I know that there are a number of software packages on PC to control the sound card and perform a number of processing and display tasks. However, these programs aims at making the PC a lab instrument (oscillo, FFT,…) , they are not open-ended applications. Do you know if there are function libraries available on the market to program the sound card?
        If we would go up to the state of a group project, I could take care of the PC program part.
        I still keep my statement about the requirement of a double card for a gradiometer configuration.
        Could you send me an email message in case you would wish to continue this discussion in more details?

        Willy

        Comment


        • #5
          Re: PC based Proton Precession Magnetometer?

          Willy,
          A few notes . . .

          A gradiometer would indeed be a sweet application because you could use the 'stereo' sampling of the PC's sound A/D to simultaneously process signals from BOTH your PPM (proton precession magnetometer) toroidal sampling heads.

          Your point about noise is a good one, so I would mount an aluminum foil shielded (non-ferromagnetic) preamp a few feet from the sampling head, to insure good signal levels without interfering with the field readings. This amp would need 80 dB (10,000 X voltage) of gain to bring 1 uV up to about 10 mv for ‘MIC’ level input or 100 dB (100,000 X) to get a level of 100 mv for ‘LINE’ level input to the PC. This much gain would imply a two stage op-amp design. A discreet low noise input transistor stage could be added to improve the Noise Figure, but might not be necessary with modern low noise bipolar opamps.

          As far as software support goes, here’s the psudocode rundown

          1. Capture 16384 x 16 bit audio samples at 11025 samples / second
          (sample time about 1.486 second) the number of samples is 2^14 [because the next stage Radix- 2 FFT wants to see a power of 2 input matrix].

          2. Perform an initial Radix- 2 FFT on the full 16384 sample input buffer (“C” source code available on the web.) Resulting in 8096 frequency ‘bins’ each approx 0.66 Hz wide for a total Nyquist sampled bandwidth of 5512.5 Hz.

          3. Find the bin near 2kHz, which has the peak value associated with the precession frequency, and note the value as [F1]. (At this point we have only nailed down the frequency to the nearest 0.66 Hz so some additional mathematical magic will be needed)

          4. Synthesize a set of sine wave ‘samples’ at a synthetic frequency [F2] chosen to be about 20 Hz Higher than the [F1] frequency noted above. These samples will be used to digitally mix with the ORIGINAL audio PCM input samples to ‘mix-down’ the original sampled Proton Precession Frequency data to a frequency of about 20 Hz so we can then FFT sample it again more accurately. (mixing is essentially just a multiplication operation) NOTE: the new ‘beat frequency’ [F2] samples are NOT mixed with the FFT ‘bin’ data matrix we just calculated and used to find [F1] but rather with the originally captured 11025 samples/sec PCM data. It should also be noted that calculating the ‘beat frequency’ [F2] samples sounds more complicated than it really is. We know the reciprocal of the 11025 sampling rate is 90.70294785 microseconds, so we just have to figure how many degrees (or radians) a signal running at a frequency of [F2] would shift in that time and calculate the sine’s of those values and convert them to signed 16 bit samples, which is just some simple multiplication and division.

          5. The original 16384 sample PCM buffer should now contain newly calculated [F2-F1] ‘difference frequency’ sample values with the proton precession frequency ‘mixed-down’ to only about 20 Hz , so we just need to do one more DSP hack to finish up. We repeat our Radix-2 FFT, BUT WE SKIP EVERTHING EXECPT EVERY 64th SAMPLE IN THE BUFFER, (leaving only 256 samples to process as input on the second FFT run) . This process is called “Decimation” and it reduces the Nyquist bandwidth of our FFT by a factor of 64 (from 5.5125 kHz to only 86.1328125 Hz). More importantly, the ‘bin’ spacing has been similarly reduced by a factor of 64 to something on the order of only 0.010514259 Hz

          6. So the new ‘mix-down’ proton-precession frequency [F3] can interpolated to only a few millihertz! The ‘beat frequency’ [F2] is also known very precisely since it was calculated with double precision math. So we should be able to read out the 50,000 nanotesla earth average field to a small fraction of a nanotesla.

          7. The above digital processing should be so accurate that the biggest source of error will be the crystal clock oscillator used to generate the PC sound cards A/D sampling clock (which could be 20-50 ppm). There are ways that even this error can be eliminated, by installing a TCXO ‘cal oscillator’ in the interface unit (divided down to the audio range) and leaking a low level ‘reference spike’ into the spectrum, which would be far enough from the precession frequency not to cause confusion, but which could be used during the data reduction to null out any errors caused by sampling clock drift.

          The nuts and bolts frequencies above should work, but the 20 Hz frequency chosen for the proton precession frequency after digital mixing [F3], is arbitrary and may have to move to avoid circuit noise in the preamp etc. Other than that everything should work pretty much as advertised.

          When you get the sensor coil, polarization current driver, and preamp working from your present design you can experiment for yourself by downloading ‘SpectrumLab’ from:

          http://www.qsl.net/dl4yhf/

          http://www.qsl.net/dl4yhf/hamsoft1/speclab_installer.zip

          [it’s freeware]

          This software implements algorithms which duplicate every one of the steps above, including the ‘decimation’ tweak to improve frequency resolution. So you should be able to get some idea of the final performance you will be able to get before writing a single line of code yourself. Maybe you could even get this guy to share his source code.

          Pretty Neat Huh?

          Let me know if you have any questions, after you check out the above software..

          Steve B.

          Comment


          • #6
            Re: PC based Proton Precession Magnetometer?

            WOW!!! What a smart piece of math:-))) I guess that you should be an experienced radio-amateur. Tell me more about you.

            After all, we could end up using a “Beat Frequency” principle (that I disliked) with a big difference, and that is, the detecting instrument would not be the ears of the operator but accurate calculations from a Digital Signal Processor.

            Indeed, I forgot that sound cards were supporting a stereo input, thus my main argument against it is falling down. Good!!!

            For the noise aspect again, note that most relays have a ferro-magnetic heart, so, where should it be located? Its magnetic influence to the sensor can not be shielded as can be the electrostatic noise. One would need at least a distance of 2 meters between the sensor and the main equipment (whatever it is). This distance could be covered through a low-loss, low-noise, shielded microphone cable with the highest possible diameter (I know that 0.75mm exists) , thus we could do with a remote polarization switching circuit and multi-stage amplification chain. For the polarization control lines, one could use the centronics parallel output lines or even the RS232 level signals of the PC.
            I have just looked at the ‘spectrumlab’ link, downloaded the program and used it to analyze a captured beat frequency sound file (from Phil Barnes’s differential mag). It looks to me like the most sophisticated piece of freeware that I have ever seen. I am not very much used to all these audio and game options but I guess this program uses most of the Microsoft API capabilities for controlling a “SoundBlaster-Compatible” card.
            I shall need a bit of time to try and digest this big bunch of data but I am now pretty sure that your design idea is practical (however not as simple to be implemented as it seems, for me, at least).

            You say that there are Radix 2 FFT routines available on the net, do you know any specific link?
            Is there any technical book or document explaining in details the SoundBlaster-type of API?

            Willy

            Comment


            • #7
              Re: PC based Proton Precession Magnetometer?

              Willy,
              Don't let it intimidate you, look at the literally dozens (if not hundreds) of amateur radio programs using sound card signal processing (if they can do it, we can).

              As to the information you requested . . .

              Lots of links (and Links to links) on FFT can be found at.

              http://ourworld.compuserve.com/homepages/steve_kifowit/fft.htm

              and

              http://www.dspguru.com/sw/opendsp/lib.htm

              The above sites have links to FFTW (fastest FFT in the West) and other high performance FFT software, but I don't think speed is the issue. You need something simple which will compile and link on your system, for a magnetometer speed is not a big issue (the slowest algorithm running on an old 486 would be fine). So just try to find something you can make work for you.

              Two of the best intro level digital signal processing books can be found on analog devices web site at

              http://www.analog.com/processors/training/seminarMaterials/index.html

              When you visit the above link, be sure to grab . . .

              http://www.analog.com/processors/resources/technicalLibrary/manuals/training/materials/dsp_book_dspguide.zip

              And get ALL the individual PDF chapters for this one also . . .

              http://www.analog.com/processors/training/seminarMaterials/design_techniques.html

              Another REALLY GREAT free reference book about all kinds of FFT and other DSP algorithms (including some source examples).

              http://www.jjj.de/fxt/fxtbook.pdf


              The above FREE books are as good as lots of texts costing 50 dollars or more commercially.

              I can't seem to locate the Sound Card Library link I had at the moment, so I try to dig it up for you a little later . . .

              Steve B.

              P.S. I have found in windowz, that Unix text files open up better in Wordpad than Notepad so if you have trouble with garbled text when opening some of the 'C' source code try wordpad.

              P.P.S. In your windows folder you will find a folder called ' SendTo ' if you copy a shortcut to 'wordpad' and 'notepad' into that folder it makes it very easy to right-click a non .txt file (like a .C or .CPP file) and "send" it to either Notepad or Wordpad. Windows has a lot of useless crap on the send to menu, but this highly useful trick seems to have eluded them.
              Editing the shortcut name and putting a - and space in front of the name is also a good idea. You won't even notice it ( - notepad or - wordpad ), but it forces windows to sort these selections at the top of the 'Send To' menu.

              Sorry for the offtopic info but I use this trick a lot and thought I would pass it along . . .

              Comment


              • #8
                Re: PC based Proton Precession Magnetometer?

                Looking at the pseudo-code. Just an idea.
                If we know the specific region where we make a survey, we also know the average earth magnetic field around there which could be input as a parameter. Is it not possible to make the FFT over a very limited range of frequencies in order to get in the first pass, a better resolution than the 0.66Hz per bin?
                For exemple, if we know that, as here in Belgium, the average frequency is around 2020 Hz, we could possibly make an FFT on a range of 1500 to 2500 Hz giving 1/8096 Hz per bin (0.12 Hz). I do not know whether it is possible or even useful since we still need to make a second pass with decimation.
                An idea I have about the software is first build a specific DLL containing all the necessary nuts and bolts using the FFT routines in VC++, possibly embedding as well Sound Card Library Calls and then, write the actual application program in VB6 which is much, much easier than VC++ to program user dialogs and displays. What do you think?

                It seems like we have already started a group (of 2) project.

                By the way, my sensor/amplifier/analog filter/comparator chain (based on a modern very low noise OpAmp: OP470) has started to sing loudly today. It gives me a frequency of 2020-2030Hz in lab and 2040-2050Hz in open air.

                Willy

                Comment


                • #9
                  Re: PC based Proton Precession Magnetometer?

                  I found a number of FFT modules directly useable for our purpose. Two WIN32 DLL's and even a VB source code for a 1-Dim radix-2 FFT with an exemple audio spectrum analyzer program that is WORKING and contains exemples of calls to the Microsoft WIN32MM DLL.
                  Now, just the doc. of that complete DLL, (probably on the Microsoft site) and we are ready to go for the software part.

                  Willy

                  Comment


                  • #10
                    Re: PC based Proton Precession Magnetometer?

                    Willy,

                    > Is it not possible to make the FFT over a very
                    > limited range of frequencies in order to get in
                    > the first pass, a better resolution than the
                    > 0.66Hz per bin?

                    There is indeed a kind of ‘partial band FFT’ (called a 'Goertzel algorithm') but before I talk about that algorithm, let’s look at the simplest way to increase the resolution of an FFT, which is 'zero padding'.

                    We simply add a lot of binary zero level samples at the end of our sampling run.

                    As I said in my last message, the FFT resolution is 1/T (were T is the length of the sampling run is seconds).

                    Adding a lot of zero level samples to the end of our 1.5 second 'real' sampling run can 'fake out' the FFT and give tighter bin spacing.

                    Whats the down side? => You have to calculate a much longer FFT.

                    This is no harder to program, but there is a big performance penalty.

                    On the other hand, if you look at the 'Spectrum Lab' program you can see that he is calculating thousands of FFT runs per second (to do some to the 'real time filtering’ tricks), so even if your FFT was padded a LOT it would still be fast enough for a Proton Precession Magnetometer application (where we only have to make one reading maybe every three or four seconds).

                    So for your first pass software, you could just 'zero pad' the data and solve a single HUGE FFT every 3 seconds.

                    Let’s run some real numbers . . .

                    If we take our original 16384 sampling run, and pad it out to a total of 1048576 samples ( 2^20 ) by adding zeros, we have 'faked out' a sampling run lasting just over 95 seconds.

                    The resulting 'bins' would be just a little over 1/100 Hz wide.

                    The algorithm I gave before gives better resolution with much less processing, but it would be more complicated, and I am guessing that even the 'brute force' approach of adding zeros would work just fine.

                    As to a algorithm that can solve for only a small range of frequencies (partial FFT), there is a algorithm called 'Goertzel' which is basically a 'single bin' FFT.

                    The Goertzel algorithm looks like it would be more efficient for a very narrow range of 'bins' but if you have to calculate very many ‘bins’ to find your peak, it's better to 'bite the bullet' and just do the whole FFT.

                    (by the way, the Goertzel algorithm suffers from the same 'bin width' vs. 'sampling run time' limits as the FFT, so you would have to see if the same 'zero padding' trick would work)

                    Here is a very good Goertzel algorithm link . . .

                    http://www.embedded.com/story/OEG20020819S0057

                    (there are also more Goertzel links at the bottom of the above web page)

                    The above link ALSO HAS A GREAT EXAMPLE . . .

                    ftp://ftp.embedded.com/pub/2002/09banks




                    Now, if you REALLY want to explore a 'Cutting Edge', ‘State of the Art’, ‘Research Grade’ processing technique . . .

                    Check out this link . . .

                    http://ab-initio.mit.edu/harminv/

                    Like you, I was thinking that we should be able to take advantage of the 'known' features of the precession signal to come up with a 'optimum' way of processing the digitized samples.

                    My thoughts were that we know that we are dealing with a exponentially damped sinusoidal waveform so we should be able to take advantage of that fact.

                    Why not do a 'correlation filter’ approach looking for EXACTALLY that type of waveform?

                    Here's how it would work . . .

                    Firsts we pick a possible waveform and synthesize a set of samples.

                    We do a quick 'best fit' align with our samples and then correlatively subtract the candidate waveform from the sample set while looking at the effect this is having on the "entropy" or "power" remaining in the sample set. When you subtract the EXACT correct waveform you would get a NULL in power. Anything else would not correlate correctly and the power goes up. It's extremely easy to calculate a value proportional to power by simply squaring the samples, and you could use something akin to a 'drunkards walk' algorithm to hunt for better values for exact frequency, damping factor, and phase by doing simple better/worse comparisons.

                    If you used a simple first pass FFT to get ‘in the ballpark’, it seemed like this would work pretty well.

                    I didn't suggest this approach, because I didn't want you to have to worry about charting new territory, but after posting my last message I ran into the above ‘harminv’ link.


                    It seems that the folks at the above link, got a similar idea and ‘ran with it’.

                    They claim their "filter diagonalization method" (FDM) does even a better job than simple correlation (which would make it MUCH better than a simple narrow band FFT.)

                    The GOOD NEWS is, the 'harminv' programmers give source code for a 'callable subroutine’ version of their algorithm (which is GREAT).

                    UNFORTUNATLY, their software was originally compiled in UNIX and needs some 'complex math libraries' that you would have to find and compile into your VC++ environment (which may be a BIG hassle).

                    As for the OP470 . . .

                    The OP470 is indeed a ‘good’ opamp, it is only a little above average these days for a low noise bipolar opamp but is a good overall choice. At least the OP470 is avail in full size DIP package, (some VERY nice new opamps are only available in surface mount).

                    Another good opamp which is still available in a standard DIP package is the AD797


                    Analog Devices OP470 > 3.2 nv/Hz (@1kHz) TYP
                    5.0 nv/Hz (@1kHz) Max

                    Analog Devices AD797 > 0.9 nv/Hz (@1kHz) TYP
                    1.2 nv/Hz (@1kHz) MAX


                    The AD797 also has a much larger Gain/Bandwidth Product (110Mhz vs 6 Mhz).

                    This makes the AD797 better for very high gain wide band applications because it doesn’t start to loose bandwidth at high gains.

                    On the other hand, you have to be MUCH more careful about layout and opamp ‘compensation’ with the AD797 to prevent oscillation (because of the bandwidth).

                    Also the AD797 is only a single device (no dual or quad), and it costs a fortune (7.75 USD at Digikey), so there’s no free lunch!

                    So, given the above compromises, I would say you are doing well with the OP470.

                    Also, are you using a low noise discreet transistor in front of the opamp as a preamp?
                    (if so the transistor stage will set the noise figure so the opamp is not as critical).

                    And lastly, before I forget to mention it . . .

                    Congratulations, on getting your sensor coil and drive electronics working!!!

                    Hearing all those trillions and trillions of tiny protons singing in harmony with mother earths magnetosphere kind of blows your mind, doesn’t it?

                    Steve B

                    Comment


                    • #11
                      Re: PC based Proton Precession Magnetometer?

                      After all, why did I start to complicate things, we have plenty of time to make the whole two-pass analyzing process for the take i during at least the 3 seconds that the polarisation phase of take i+1 will need anyway. The analysis of 1 second of signal should not take that time, far from it.
                      The zero-padding trick could still be applied, simple enough.
                      I did not put a discrete low noise transistor in front of the main amplifier, I just made two stages of amp using 2 parallel OpAmp parts for each stage (so, first stage = 2 OpAmp in parallel, second stage = 2 OpAMp in parallel). This design is described in the datasheet of the OP470. The two-stage amplifier is followed by a two-stage pass-band filter and a comparator using an other quad OP470 chip.
                      Sadly enough, I think now that the beautiful singing of my system was due to oscillation because, when I increased the timing between polarisations, this signal did not have the behavior of an exponentially damped sinusoïd. Thus, I still have to work a bit more on that subject.
                      For the Sound Card control, I have looked into the Microsoft multimedia control library and it is very easy to control any multimedia device connected to a PC using either its DLL API or even its OCX version in VB5 or VB6. I have even found some actual exemples of FFT and MM use in a Audio Spectrum Analysis program written in VB. Thus, we could get all the necessary tools to start a practical feasability study.

                      May I know where you are located and what are your occupations?
                      On my side, you probably have seen from my email address that I am from Belgium. As I already told you before, I am a retired (but still young, living and kicking) software engineer working now FULL_TIME just for my own fun.

                      Willy

                      Comment


                      • #12
                        Re: PC based Proton Precession Magnetometer?

                        I have been trying to build a similar setup myself four a couple of years.

                        I have a 1800-turns, 5-cm diameter/5-cm long
                        coil wound around a water filled vial with
                        the same dimensions.

                        I have built a 90 dB amplifier (5 stage NPN
                        transistor a 1 OA for band-pass filtering around
                        2100 Hz).

                        I can energize the coils and watch the oscillation
                        signal after disconnecting the current source. I
                        switch from applying the magnetic field to
                        monitoring every 1 s (controlled by a PC located
                        nearby).

                        Now the question: I don't see any obvious change
                        in the signals I observe whether I include the
                        water or not inside the coil (ie water filled
                        or empty bottle), and when the bottle is filled
                        I cannot observe any change upon rotating the
                        sensor parallel to the floor. I thus assume that
                        the ~2100 Hz oscillation I observe is only due
                        to my bandpass filter and not to proton precession.

                        Can anyone post (or send to me: [email protected]) some sort of oscilloscope output of the signals
                        I am to observe ?

                        Thank you, Jean-Michel

                        Comment


                        • #13
                          Re: PC based Proton Precession Magnetometer?

                          1 second of polarisation time seems to be a bit short for water. (I hope you used distilled water). 2 seconds would be more appropriate.
                          The change of frequency generated by a magnetic field gradient can normally not be observed on an oscilloscope except if you put a permanent magnet near the sensor. The signal you should observe must be a relatively pure sine wave. If you enter it to the audio card of a PC and observe the result of an FFT applied on it, you should see a clear peak around 2100 Hz but the peak would shift only by ten's or hundred's of Hz with changing magnetic field.
                          By the way, are you sure that the average precession frequency in your vicinity IS 2100Hz.

                          Willy

                          Comment


                          • #14
                            Re: PC based Proton Precession Magnetometer?

                            I wonder if sound cards have accurate enough digitization intervals to resolve the 2 kHz signal for sufficient accuracy? The rate is plenty fast enough, the question is: Is the interval accurate enough to make sub Hz measurments on the recorded data?

                            I tried digitizing a signal at 2,300 Hz (from a stable HP3325B) for about 10 seconds. Doing various FFT operations in Adobe Adition (over various intervals of the recorded data), I get readings varying by more than 1 Hz.

                            Has anyone else looked into this issue?

                            Comment


                            • #15
                              Re: PC based Proton Precession Magnetometer?

                              Your problem of accuracy is most probably due to the way Adobe Adition makes the FFT calculation. We have also tried to calculate the FFT of a very stable, program-generated frequency injected to a PC sound card and we got very stable results indeed. After a large number of trials and errors, we have succeeded to get a mHz accuracy using special calculation algorithms taking less than half a second of time.

                              Willy

                              Comment

                              Working...
                              X