Announcement

Collapse
No announcement yet.

VLF MD with digital signal processing : Bee-Buzz 1

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

  • Atul Asthana
    replied
    Originally posted by Aziz View Post
    BTW,

    the single frequency dft using the Goertzel algorithm is approx. twice efficient as the Lock-in Amplifier decoding. FFT makes only sense for wide band applications.
    But you need windowing function for the samples. Odd frequencies of interest to the number of samples per frame/buffer at specific sample rate require windowing regardless of FFT, Goertzel, Lock-in amp or any other decoding algorithm.


    It is best to avoid windowing by taking harmonic frequencies (this means, that the frequency fits fully (0.. 2pi) into your sample buffer or is the multiple of it). No windowing is required and you save CPU time. You get very stable decoding output and you don't have to average it.
    Just tune your TX to the harmonic frequency if it is a resonant TX system like a VLF design.
    I can decode phase angles better than 0.001 degree.

    You don't even need phase information. Just decode 3 harmonic frequencies centered at the resonant frequency. And take the magnitude decoding outputs (R = sqrt(I*I + Q*Q) ). These three magnitudes around the resonant frequency delivers enough information for resistive and reactive response.

    Aziz
    my submission is that what ever I do and whatever algorithms/signal processing methofology I use, I need to keep the microcontroller's processing power in mind as the biggest constraint.
    so, I did a lot of research before deciding on various parts of the project.

    thetefore, I should be able to complete the processing of the signal, administrative tasks and target identification etc in one single slot.
    and deciding on stm32f103c8t6 bluepill was based on many factors : cost, availability and onboard peripherals.

    Leave a comment:


  • Atul Asthana
    replied
    Originally posted by dbanner View Post
    "The Goertzel algorithm has a higher order of complexity than fast Fourier transform (FFT) algorithms, but for computing a small number of selected frequency components, it is more numerically efficient. The simple structure of the Goertzel algorithm makes it well suited to small processors and embedded applications."

    Ok​, dust off those Math textbooks.
    and we are processing a single known frequency.

    Leave a comment:


  • dbanner
    replied
    "The Goertzel algorithm has a higher order of complexity than fast Fourier transform (FFT) algorithms, but for computing a small number of selected frequency components, it is more numerically efficient. The simple structure of the Goertzel algorithm makes it well suited to small processors and embedded applications."

    Ok​, dust off those Math textbooks.

    Leave a comment:


  • Atul Asthana
    replied
    Originally posted by Aziz View Post

    Hi Atul,

    I'm sure, there are many source codes in the internet available (open source, look at the required parts only). I haven't done on android platforms. But on Win32 using C/C++ code. Only experimental code.

    BTW, external USB 2.0/3.0 sound cards support now sampling 32-Bit at 192 kHz SR and above. Some good sound cards have 114 dB dynamic range at the line inputs.

    I'm thinking of to try the 32-Bit sample bits at 192 kHz SR. Or at least the 24-Bit @192 kHz. But I have not found a good and cheap external sound card yet. Most vendors don't publish true technical specs. And this makes it difficult to find one. The Sound BlasterX G6 seems to me interesting at the moment. I hope, they don't band limit the input signals up to 24 kHz. I had some sound cards, which they did. Even they sampled at 96 kHz (sic! ).

    Cheers,
    Aziz
    Aziz,

    Great idea.
    my research says that there is more to the target detection than the sound card, the contribution of sound card resolution and sampling rate start diminishing beyond a certain point, and that point is decided by system noise.

    AIso you will actually need to penetrate the noise barrier to pull out the target signal.

    but before you start testing your idea, do a lot of research. the difference between thoroughly researched approach and otherwise is the Brahmos and a sugar rocket.

    my best wishes,
    Atul

    Leave a comment:


  • Aziz
    replied
    BTW,

    the single frequency dft using the Goertzel algorithm is approx. twice efficient as the Lock-in Amplifier decoding. FFT makes only sense for wide band applications.
    But you need windowing function for the samples. Odd frequencies of interest to the number of samples per frame/buffer at specific sample rate require windowing regardless of FFT, Goertzel, Lock-in amp or any other decoding algorithm.


    It is best to avoid windowing by taking harmonic frequencies (this means, that the frequency fits fully (0.. 2pi) into your sample buffer or is the multiple of it). No windowing is required and you save CPU time. You get very stable decoding output and you don't have to average it.
    Just tune your TX to the harmonic frequency if it is a resonant TX system like a VLF design.
    I can decode phase angles better than 0.001 degree.

    You don't even need phase information. Just decode 3 harmonic frequencies centered at the resonant frequency. And take the magnitude decoding outputs (R = sqrt(I*I + Q*Q) ). These three magnitudes around the resonant frequency delivers enough information for resistive and reactive response.

    Aziz

    Leave a comment:


  • Aziz
    replied
    Originally posted by Atul Asthana View Post

    Great
    Any exploratory examples of the working code for android phone/tablet that I can download and use?
    Hi Atul,

    I'm sure, there are many source codes in the internet available (open source, look at the required parts only). I haven't done on android platforms. But on Win32 using C/C++ code. Only experimental code.

    BTW, external USB 2.0/3.0 sound cards support now sampling 32-Bit at 192 kHz SR and above. Some good sound cards have 114 dB dynamic range at the line inputs.

    I'm thinking of to try the 32-Bit sample bits at 192 kHz SR. Or at least the 24-Bit @192 kHz. But I have not found a good and cheap external sound card yet. Most vendors don't publish true technical specs. And this makes it difficult to find one. The Sound BlasterX G6 seems to me interesting at the moment. I hope, they don't band limit the input signals up to 24 kHz. I had some sound cards, which they did. Even they sampled at 96 kHz (sic! ).

    Cheers,
    Aziz

    Leave a comment:


  • Atul Asthana
    replied
    Originally posted by Aziz View Post
    Hi all,

    great topic. I enjoyed taking a quick look at it.

    You guys don't need soldering iron and can immediately start coding using a Tablet PC + USB sound card. Either Android or Windows OS.
    Just plug in a TX-Coil and RX-Coil into the line-out and line-in terminals.
    You never imagine, what can be done.

    Cheers,
    Aziz
    Great
    Any exploratory examples of the working code for android phone/tablet that I can download and use?

    Leave a comment:


  • Aziz
    replied
    Hi all,

    great topic. I enjoyed taking a quick look at it.

    You guys don't need soldering iron and can immediately start coding using a Tablet PC + USB sound card. Either Android or Windows OS.
    Just plug in a TX-Coil and RX-Coil into the line-out and line-in terminals.
    You never imagine, what can be done.

    Cheers,
    Aziz

    Leave a comment:


  • Altra
    replied

    Leave a comment:


  • Repwoc
    replied
    Originally posted by Altra View Post

    How do you load the hex on a board like this? A USB bootloader or dedicated programmer? I like this board and it would be good way for me to get familiar with the STM micro family.

    Thanks
    I use this mini STLink board: https://vi.aliexpress.com/item/10050...yAdapt=glo2vnm

    It works with the STM32Cube programmer and the STM32CubeIDE debugger.

    Leave a comment:


  • Atul Asthana
    replied
    It's great to see the interest in developing a direct sampling VLF metal detector using a highly constrained core device. I truly appreciate all the suggestions for improving the device, as well as the advice on refining my product development methodology and enhancing my skills and expertise.

    I understand that many are eager to see a prototype and that the current discussions often encourage me to build one and then work on improving its performance. However, I am currently engaged in (more thsn) full-time work unrelated to electronics, software, engineerng maths or signal processing. My available time for metal detector research is limited to some of my travel time. And my technology friends, who have agreed to assist with building the prototype, won’t be available until the end of the financial year (end of March or early April).

    I am also not in a rush to create a prototype until I feel confident that my research has yielded atleast a few solid, promising outcomes, that exceed my expectations and vastly surpass my 30 years old knoeledge.

    I've explained most of the concepts in the initial paper and subsequent discussions, so it should be fairly straightforward for those with the necessary resources to develop working prototypes over a day or weekend.

    That being said, I encourage anyone interested to create their own version of this design. There have been many suggestions for improvements, alternatives, and redesigns, and there are experts here with the resources to build, simulate, and test such a device far more efficiently than I can.

    I invite you to create your own prototypes and share your designs, observations, and learnings on this forum for the benefit of everyone.

    So, are there any volunteers to build the first prototype? it will be great to see a prototype over this coming weekend.
    ​

    Leave a comment:


  • ivconic
    replied
    I don't want to derail a topic that has started to develop in an interesting direction,
    I just wanted to give a small update to my previous thoughts here: https://www.geotech1.com/forums/foru...time-of-change
    ​

    Leave a comment:


  • Altra
    replied
    Thanks Marchel

    Leave a comment:


  • Marchel
    replied
    Originally posted by Altra View Post

    How do you load the hex on a board like this? A USB bootloader or dedicated programmer? I like this board and it would be good way for me to get familiar with the STM micro family.

    Thanks
    There are many ways to upload firmware for this board, I personally use HID bootloader and upload firmware directly to keil ARM via this bootloader. You can upload bootloader easily via USB using STM32CubeProgrammer. Check out these files on GitHub and you will find everything you need there.

    STM32H750VBT6/STM32H743VIT6 Core Board With 0.96'' TFT,TF Card,8MB QSPI FLASH,8MB SPI FLASH,DVP Port - WeActStudio/MiniSTM32H7xx

    Leave a comment:


  • Altra
    replied
    Originally posted by Marchel View Post
    If the prototype design were up to me, I would build it on this STM32H7 board, which also has a 16bit ADC and a small LCD that is enough for common information. On the top side of this board, I would connect a board with a few buttons and on the bottom side, a board with TX, RX and an audio amplifier.

    https://vi.aliexpress.com/item/10050...Cquery_from%3A
    How do you load the hex on a board like this? A USB bootloader or dedicated programmer? I like this board and it would be good way for me to get familiar with the STM micro family.

    Thanks

    Leave a comment:

Working...
X