Announcement

Collapse
No announcement yet.

Minelab Equinox Challenge

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

  • Minelab Equinox Challenge

    OK Geoteckers, here is the TX waveform for the Minelab Equinox:

    Click image for larger version

Name:	Equinox.png
Views:	3
Size:	43.6 KB
ID:	370699

    And here is the challenge:

    "How many frequencies does the Equinox use, and what are they?"

    A hint:

    Remember 17 frequency BBS? and 28 frequency FBS? Both were pure marketing hogwash. If you start with the assumption that the Equinox frequency claims made thus far are an adjunct to porcine whole-body cleanliness, you will have less trouble figuring it out.

  • #2
    OK, I'll play first, seeing as I've already had a try on the other thread:
    Freqs are 2.6kHz, 7.8 kHz & 39 kHz, in ratio 1 : 3 : 15.

    I have no confidence in my attempt.

    Chiv's probing suggests the Single freqs are in fact what they claim to be: 5,10,15,20,40.

    Comment


    • #3
      How much energy is at 2.6kHz?

      Comment


      • #4
        Stop making me scratch my head so much.

        I don't know how much energy, spose you're implying it's ZERO, and the fact that it takes 385 usec to repeat is because of how non-harmonically-related frequencies don't 'repeat' very often. Example if you LINEARLY added 10kHz and 11kHz sinewaves, the resulting waveform would only repeat every 10 cycles of the 10kHz wave, ie. 1000 times per second. But there's no REAL 1kHz present - if you mixed/modulated the 10 and 11, then there WOULD be a genuine 1kHz component.

        So in this ML waveform, the 2.6kHz could be a result of adding 7.8kHz to (7.8 - 2.6) = 5.2kHz. It would take 2 cycles of 5.2kHz & 3 of 7.8kHz for the resulting cycle to repeat, ie. 385 usec.
        5.2 and 7.8 seem too close to be much use multifreq-wise.
        But frequencies in a ratio 3 : 5 : 15, and 3 : 7 : 15 also produce this long cycle repeat time. These would equate to frequencies of 7.8 / 13 / 39, and 7.8 / 18.2 / 39 respectively.
        I can't say I can see any 13 or 18.2 in there, but.... 18.2 and 39 would make two prospecting modes viable. And I've mentioned it on Tom D's forum, I liked the idea of a 13k / 39k "multi-F75", with both single frequencies an option.

        Time for someone else to have a guess.

        Comment


        • #5
          OK - here's my analysis:

          I took Carl's current waveform and created a PWL current source in LTspice, and used that to drive a 1mH coil.
          The FFT indicated 3 main frequencies of 7.8kHz, 18.2kHz and 39kHz.

          Click image for larger version

Name:	Equinox simulation.png
Views:	1
Size:	38.1 KB
ID:	351247

          Click image for larger version

Name:	Equinox FFT.png
Views:	1
Size:	10.9 KB
ID:	351248

          Equinox.zip

          Comment


          • #6
            Nice try, George. I suspect if your piece-wise linear data was more precise, you would get better results, there seems to be two data points that are 'off', time-wise, at t = 110 usec and t = 230 usec, the constant-slope of the triangle-wave is disturbed there.

            I was contemplating a similar approach myself, but in QuickBasic. Entering 30 data-points into an array (or 15 and use symmetry?) fill in the gaps with straight line interpolation points, and run low-pass and high pass filter algs on the data set. Sadly, my PC with the Basic on is poorly, HDD damage, and I haven't (yet) installed it on this current laptop, so saving myself a lot of time!

            Comment


            • #7
              Could your pwl model be simplified if you just used the time data of the inflexion points to directly recreate the square-wave? Ie. set Voltage = +1V on the rising slope, -1V on a falling slope ?

              Comment


              • #8
                Carl, can you give us single frequency images later on too?
                Curious what you use for a current probe.

                Comment


                • #9
                  My bet:

                  8.3kHz, 18.3kHz, 38.3kHz



                  Peaks:
                  8.33333 kHz => -2.59226 db/Hz
                  18.3333 kHz => -11.1483 db/Hz
                  26.6667 kHz => -30.2954 db/Hz
                  31.6667 kHz => -30.0003 db/Hz
                  38.3333 kHz => -10.0856 db/Hz
                  43.3333 kHz => -30.298 db/Hz
                  46.6667 kHz => -32.3818 db/Hz
                  51.6667 kHz => -37.1247 db/Hz
                  56.6667 kHz => -34.0533 db/Hz
                  63.3333 kHz => -46.865 db/Hz
                  Attached Files

                  Comment


                  • #10
                    Originally posted by Skippy View Post
                    Nice try, George. I suspect if your piece-wise linear data was more precise, you would get better results, there seems to be two data points that are 'off', time-wise, at t = 110 usec and t = 230 usec, the constant-slope of the triangle-wave is disturbed there.

                    I was contemplating a similar approach myself, but in QuickBasic. Entering 30 data-points into an array (or 15 and use symmetry?) fill in the gaps with straight line interpolation points, and run low-pass and high pass filter algs on the data set. Sadly, my PC with the Basic on is poorly, HDD damage, and I haven't (yet) installed it on this current laptop, so saving myself a lot of time!
                    I rechecked the datapoints time and value-wise. There were a couple of points that needed adjusting in time, and a couple or so in value. Although this altered the voltage waveform slightly, the FFT results were the same.

                    I see what you mean about the slopes needing to all be the same, which means that the PWL waveform is not quite accurate at the moment. I took the measurements from a printout, and recorded them to the nearest 5us and 0.2V. Clearly it needs some tweaking. I'll look at this again later.....
                    Attached Files

                    Comment


                    • #11
                      My hunch is you'll mainly see the difference in the highest harmonics, like 3rd harm of 18.2kHz, which I'm assuming is not relevant to ML's signal processing. So, if there's 15 cycles occuring in the 385 usec, there's still 15 cycles if the peak of one cycle is 'disturbed' in the time-domain, and FFT will still correctly evaluate that frequency component.

                      Comment


                      • #12
                        The first time I heard that story of 17 and 28 frequencies being used, I thought how in the hell are they able to process each response? One would have to be using a mother of all microprocessors, with several EEprom chips, and I thought it is all bull ca ca! And one would have to be using the mother of all microprocessors, with several EEprom chips, just to process each and every frequency response. Nope. Bull ca ca....

                        One metal detector can only process one target despite 100 waveforms sent out to excite a target. One is walking, swinging over a target, and in another second or two, one is beyond that place where one saw a good target. There is absolutely no metal detector that has the speed to do that in even microseconds!

                        Now if one could imagine a human being who could speed up his breathing in and out of oxygen. How much more could he absorb in the way of oxygen? I doubt very little more. And the speed of faster breathing could impede the processing of oxygen. So where is the golden ring on the Merry-Go-Round? It is pure and simple advertising hype to create more sales.
                        Melbeta

                        Comment


                        • #13
                          I've played with the numbers to see if there was any 'reason' for the 380 - 385 usec figure. I did work out that 'round number' 10 x 106 Hz divided by 256 gave f = 39062.5 Hz, and 1/15th of that is 2604.16666, T = 384.00 usec.
                          So maybe we're seeing 7812.5 / 18229.17 / 39062.5 (in this mode).

                          You'll have to post up your 'Beach Mode' scope grabs on the other thread, Carl.

                          Comment


                          • #14
                            I'm still playing around with the slope on the current waveform. Something is not quite right yet, but it's getting there.

                            Have you noticed that the FFT starts at 2.6kHz, and the differences between 2.6kHz, 7.8kHz and 18.2kHz are 5.2kHz, 10.4kHz and 20.8kHz?
                            i.e. close to 5kHz, 10kHz and 20kHz.

                            Comment


                            • #15
                              I cropped the image, and for each column I took the pixel with the most intense yellow color and then performed an FFT. The image has a width of 600 pixels and coincidentally it's also 600uS total, so spacing between points is 1 uS, "virtual" sample rate therefore 1MHz.

                              Cropped scope screen, 12 divisions at 50uS each (=600uS)


                              Most intense yellow values, one for each image column:



                              Octave/MATLAB script:

                              Code:
                              % load signal processing package
                              pkg load signal
                              
                              % data points (DC offset would be at 82 pixels, not subtracted though), regular coordinate system increasing from bottom to top.
                              x = [13, 17, 23, 29, 35, 39, 45, 51, 57, 63, 67, 73, 79, 83, 89, 93, 99, 103, 109, 113, 117, 113, 111, 105, 101, 101, 103, 109, 113, 119, 123, 129, 133, 137, 143, 147, 153, 157, 161, 167, 167, 163, 159, 155, 149, 143, 137, 133, 127, 121, 117, 111, 105, 101, 97, 101, 105, 109, 113, 119, 123, 129, 135, 137, 143, 147, 153, 153, 151, 145, 139, 135, 129, 123, 119, 113, 107, 103, 97, 93, 87, 81, 77, 79, 85, 89, 95, 97, 95, 93, 87, 83, 79, 73, 69, 63, 57, 53, 49, 43, 39, 35, 29, 25, 21, 15, 11, 7, 11, 15, 21, 27, 33, 39, 45, 49, 55, 61, 65, 71, 77, 77, 73, 69, 63, 59, 55, 53, 55, 61, 65, 71, 77, 81, 87, 91, 97, 103, 107, 111, 117, 121, 127, 131, 137, 141, 139, 137, 131, 127, 121, 117, 111, 105, 101, 95, 97, 103, 107, 113, 117, 121, 127, 131, 137, 141, 145, 151, 155, 161, 163, 169, 169, 167, 161, 155, 151, 145, 139, 135, 129, 123, 125, 127, 131, 137, 141, 145, 151, 155, 159, 163, 169, 169, 167, 161, 155, 151, 145, 139, 135, 129, 123, 119, 113, 107, 103, 97, 91, 87, 81, 77, 71, 65, 67, 71, 77, 81, 81, 79, 75, 71, 65, 61, 55, 51, 47, 41, 37, 31, 27, 23, 17, 13, 17, 21, 27, 33, 39, 43, 49, 55, 61, 65, 71, 75, 81, 85, 83, 79, 75, 71, 65, 61, 55, 51, 47, 41, 37, 31, 29, 31, 37, 41, 47, 53, 57, 63, 69, 73, 79, 85, 89, 95, 101, 103, 103, 101, 95, 89, 85, 85, 89, 95, 99, 103, 109, 113, 119, 123, 129, 133, 137, 143, 147, 151, 155, 161, 165, 169, 169, 169, 169, 163, 157, 153, 147, 141, 135, 129, 125, 119, 113, 109, 105, 109, 113, 119, 121, 127, 129, 129, 125, 119, 113, 109, 103, 97, 93, 87, 83, 77, 73, 67, 63, 57, 53, 47, 43, 41, 45, 49, 55, 61, 65, 71, 77, 81, 85, 85, 81, 77, 71, 67, 63, 57, 53, 47, 43, 39, 33, 29, 23, 19, 15, 11, 15, 21, 25, 31, 37, 43, 47, 53, 57, 59, 55, 53, 47, 43, 39, 33, 29, 25, 21, 15, 13, 15, 21, 25, 31, 37, 43, 47, 53, 59, 65, 69, 75, 81, 85, 91, 95, 101, 105, 111, 115, 115, 113, 109, 103, 99, 103, 105, 111, 117, 121, 125, 129, 135, 139, 145, 149, 153, 159, 163, 167, 167, 161, 157, 153, 147, 141, 137, 129, 125, 119, 113, 109, 105, 99, 97, 103, 107, 111, 117, 121, 127, 131, 135, 141, 145, 151, 153, 151, 147, 143, 137, 133, 127, 121, 117, 111, 105, 101, 95, 89, 85, 79, 79, 81, 87, 91, 97, 97, 95, 91, 87, 81, 77, 71, 65, 61, 55, 51, 47, 41, 37, 31, 27, 23, 19, 13, 9, 9, 13, 19, 23, 29, 35, 41, 47, 53, 57, 63, 69, 73, 77, 75, 71, 67, 63, 57, 53, 53, 57, 63, 67, 73, 79, 83, 89, 95, 99, 103, 109, 113, 119, 123, 129, 133, 137, 141, 137, 135, 129, 125, 119, 113, 109, 103, 97, 97, 101, 105, 111, 115, 119, 125, 129, 135, 139, 143, 147, 153, 157, 161, 167, 169, 167, 163, 159, 153, 147, 143, 137, 131, 127, 121, 125, 129, 135, 139, 143, 147, 153, 157, 161, 167, 169, 169, 163, 159, 153, 147, 143, 137, 131, 127, 121, 115, 111, 105, 99, 95, 89, 85, 79, 73, 69]
                              
                              %% Time specifications:
                              Fs = 10^6;                     % samples per second
                              dt = 1/Fs;                     % seconds per sample
                              
                              N = length(x);
                              
                              xdft = fft(x);
                              xdft = xdft(1:N/2+1);
                              psdx = (1/(Fs*N)) * abs(xdft).^2;
                              psdx(2:end-1) = 2*psdx(2:end-1);
                              freq = 0:Fs/length(x):Fs/2;
                              
                              % use kHz and calculate powers
                              x_values = freq/1000;
                              y_values = 10*log10(psdx);
                              
                              % truncate to a useful range (up to ~80kHz)
                              x_values = x_values(1:50);
                              y_values = y_values(1:50);
                              
                              %find peaks
                              [peak_powers, peak_indices] = findpeaks(y_values, 'DoubleSided');
                              
                              % output peaks
                              for i = 1:length(peak_powers)
                                peak_idx = peak_indices(i);
                                freq_value = x_values(peak_idx);
                                peak_value = peak_powers(i);
                                printf("%d kHz => %d db/Hz\n", freq_value, peak_value)
                              endfor
                              
                              % plot in 5kHz steps
                              plot(x_values, y_values)
                              grid on
                              set(gca,'XTick',0:5:max(x_values))
                              title('Periodogram Using FFT')
                              xlabel('Frequency (kHz)')
                              ylabel('Power/Frequency (dB/Hz)')
                              Attached Files

                              Comment

                              Working...
                              X