LusoRobótica - Robótica em Português

Discussão Geral => Vídeos => Tópico iniciado por: SerraCabo em 20 de Fevereiro de 2022, 21:53

Título: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: SerraCabo em 20 de Fevereiro de 2022, 21:53
É de loucos!

https://www.youtube.com/watch?v=uvUq81jIzPg

SC
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 21 de Fevereiro de 2022, 01:19
Obrigado pelo vídeo @SerraCabo,

eu não me recordo se já usei um SDR – Software Defined Radio dongle, mas se usei deve ter sido só para experimentar (somente rádio, não emissor), mas a parte que acho muito mais interessante é a de tentar perceber como tudo aquilo é feito, como funciona em termos matemáticos e subsequentemente a sua programação. Em tempos eu encontrei dois bons livros sobre isso, um gratuito e outro não é mas acabei por o adquirir já à algum tempo. Na altura pretendia-o ler logo mas depois outras coisas foram surgindo e foi ficando na prateleira e agora tenho de o procurar pois está “algures” no meio de outros livros. Mas o livro é mesmo muito bom pois ensina como programar todas as fases de um SDR em qualquer linguagem de programação do zero e não somente num ambiente high level como o GNU Radio em que se tem building blocks.

Software Receiver Design: Build your Own Digital Communication System in Five Easy Steps
by C. Richard Johnson Jr, William A. Sethares, Andrew G. Klein

Software Defined Radio using MATLAB & Simulink and the RTL-SDR
by Robert W Stewart, Kenneth W Barlee, Dale S W Atkinson
https://www.mathworks.com/campaigns/offers/download-rtl-sdr-ebook.html (https://www.mathworks.com/campaigns/offers/download-rtl-sdr-ebook.html)

Existe um outro também muito interessante apesar de mais teórico, por ser mais gráfico do que é normal, logo mais intuitivo, que é este:

Wireless Communications from the Ground Up: An SDR Perspective
by Qasim Chaudhari

Normalmente para implementar uma coisa destas é necessário estudar um bocadinho de DSP’s e o melhor livro que conheço de DSP’s é este:

Understanding Digital Signal Processing 3rd Edition
by Richard G. Lyons

Existem alguns projetos fantásticos e verdadeiras obras de arte que conseguiram fazer um SDR com um simples micro-controlador STM32 ARM Cortex M4 e pouco mais e foi isso que inicialmente me entusiasmou a tentar aprender mais um pouco sobre o tema de SDR – Software Defined Radio, mas ainda não lhe dei o tempo nem a dedicação da minha parte que o tema merece.

ARM Radio: A cheap SDR built out of an ARM processor and not much more
https://www.rtl-sdr.com/arm-radio-a-cheap-sdr-built-out-of-an-arm-processor-and-not-much-more/ (https://www.rtl-sdr.com/arm-radio-a-cheap-sdr-built-out-of-an-arm-processor-and-not-much-more/)

PDF Doc of the project
https://docs.google.com/viewer?url=http%3A%2F%2Fsdradio.eu%2Fweaksignals%2Fcode%2FARM_Radio.pdf (https://docs.google.com/viewer?url=http%3A%2F%2Fsdradio.eu%2Fweaksignals%2Fcode%2FARM_Radio.pdf)

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: SerraCabo em 21 de Fevereiro de 2022, 19:21
Obrigado pelas dicas.

Já tinha visto uns vídeos sobre os SDR, coisa de facto espantosa.

Citar
Understanding Digital Signal Processing

Sou capaz de evitar dispersar-me ainda mais, mas ainda sou capaz de dar uma vista de olhos neste livro. Já o tenho em PDF (sabe-se lá como).

Abraço
SC
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: jm_araujo em 21 de Fevereiro de 2022, 23:07
Quem quiser explorar pelo lado mais prático o sdr, não há melhor do que adquirir uma pen rtl2832u (recomendo com chip sintonizador r820t2), sintonizam dos 500kHz até aos 1.7GHz, e os preços começam abaixo dos 20€, e por uns 35€ há de qualidade superior (tcxo, dissipador alumínio).
O suporte de software é fenomenal tanto em Windows como em Linux, é só procurar por "rtl-sdr".
Há tempos ainda usei algum do meu tempo para explorar.e apanha-se coisas muito giras: rádio digital, localização de aviões(ads-b) e de barcos (AIS), ver as portadoras digitais do GSM, comandos dos 433MHz, ouvir o pessoal dos PMR446, e nas frequencias cias baixas apanhar os rádio amadores e andar a ver os QSOs nas digitais (JT8 e PSK31).  E ia-me esquecendo, há também os RTTY, e os radiofax (cartas meteorológicas para navegação marítima). Com umas antenas melhorzinhas podem também receber os satélites meteorológicos e ver a terra em tempo real! E se estiverem perto de um aeroporto podem houvir as conversas da torre de controlo.
É todo um mundo sem fim e com um custo de acesso muito baixo(sem considerar o tempo)
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 22 de Fevereiro de 2022, 01:27
Boa noite @jm_araujo,

De facto o SDR permite isso tudo e no caso de um que tenha emissor e que tenha uma sincronização de clocks e buffers de saída e os de entrada entre o sinal recebido e o sinal emitido então pode ser usado para implementar um radar :-)
E radares podem ser feitos em 10 GHz mas também podem ser feito em coisas como 100 MHz, as antenas ideias é que são um pouco maiores hehehehe, really cool stuff.

Seguindo a guia a linha de recomendações existe um livro muito bom, é o melhor livro genérico de radares que conheço. Ele ensina tudo e mais um par de botas sobre radar (incluindo radares FMCW, outros tipos, dopplers, SAR’s, inverse SAR’s e os radares de polarização da onda, o livro também dá uns lamirés sobre electronic warfare, antenas normais de radar e antenas em array com beamforming ). Este livro ao contrário da maior parte dos outros livros é a cores e é profundamente ilustrado. Explica bem os conceitos, os princípios e o seu funcionamento de forma muito intuitiva.

Stimson's Introduction to Airborne Radar 3rd Edition
by George W. Stimson, Hugh D. Griffiths, Christopher J. Baker, Dave Adamy (http://by George W. Stimson, Hugh D. Griffiths, Christopher J. Baker, Dave Adamy)

Daqui a dois meses se não me engano vai sair a 3º edição de um outro livro que ensina a outra parte, a parte de DSP mais avançada dos radares e que também promete bastante.

Fundamentals of Radar Signal Processing, Third Edition 3rd Edition
by Mark Richards (http://by Mark Richards)

Em tempos fiz umas cenas de radares engraçadas com a placa de som, em que implementei uma coisa muito simples que transformava os speakers do computador e o microfone num radar / sonar de doppler, mas os princípios são os mesmos dos radares normais e com ele consegui detetar se uma pessoa entrava ou saia de uma sala onde tivesse o computador hehehehe era mesmo engraçado e dava para determinar se vinha mais depressa ou mais devagar e a sua direção :-)  Para fazer isto implementei um paper da Microsoft, está no meu GitHub, essa versão era em Python, mas tenho de fazer um dia destes uma versão desse mini-projecto em Rust. Outra vez implementei um outro mini radar com sonar com técnicas que de FMCW que aprendi no paper da ApneaAPP que também era muito giro para esse eu gerava chirps e então com FFT’s era simples de destingir a distancia vindo o delta entre a frequência atual do chirp e a frequência atual de retorno do chirp previamente emitido. O delta_t multiplicado pela velocidade do som no ar ao nível do mar dá-nos a distância. Outra vez implementei um radar com base nas tramas de sincronização seguindo um paper da mesma autora da ApneaAPP mas usando técnicas de OFDM muito giras. Mas aplicadas a áudio. Uma outra vez em que estava a ver e a implementar uns algoritmos para uma camera acústica e descobri uma forma muito gira de fazer uma camera acústica que um senhor o Magician estava a usar, ele de facto fazia magia com Arduinos.  Mas o giro era de com as quase nenhumas dicas que ele dava descobrir como é que ele fazia aquilo. Um dia tenho de implementar um radar desses com som como o do Magician e ele chegou a implementar um com RF que também era muito engraçado. Mas depois infelizmente desapareceu sem deixar rasto, é pena, todos tinha-mos muito a aprender com o Magician! Estas áreas são mesmo apaixonantes, uma pessoa perde-se na beleza dos detalhes de como estas coisas funcionam e tentar implementar algumas delas. Existe também um radar implementado por uns estudantes de mestrado de uma faculdade que implementou um radar de SAR com um telemóvel, movendo fisicamente o telemóvel, se não me engano usava o speaker e os dois microfones em modo RAW de não redução de ruido,  e em que a imagem criada do radar, são a dos sólidos que estão por baixo de um tecido.  Eles implementaram um algoritmo de SAR antigo mas já eficiente que está descrito num livro antigo ao detalhe, o livro quanto baste é o: 

Spotlight Synthetic Aperture Radar: Signal Processing Algorithms
by Walter G. Carrara, Ronald M. Majewski, Ron S. Goodman (http://by Walter G. Carrara, Ronald M. Majewski, Ron S. Goodman)

Se bem me lembro este método de geração da imagem SAR que está explicada no livro, foi desenvolvida bebendo muito a uma técnica similar de geofísica na parte de analise sísmica de ecos de impulsos criados por detonações para a pesquisa e mapeamento de poços de petróleo e jazigas, mas da parte geofísica da coisa já não percebo nada :-) Mas também tem coisas muito giras de DSP’s em geofísica. Muita coisa fixolas para aprender!


Outra coisa que abordaste e que também é um outro Rabit Hole para aprender técnicas giras, são os modos digitais e como eles funcionam, em especial o  WSPR - Weak Signal Propagation Reporter que consegue transmitir e receber um sinal a 1000 Km somente com 5 mW de potencia! Pensem 5 V ou 3.3 V de um pino de um micro-controlador a ligar um LED pouco brilhante, é de menos do que esse nível desse nível de potência que estamos a falar. As técnicas que eles usam para conseguir transmitir redundantemente e receber são de outro mundo e são simplesmente fenomenais, usam todos os “truques do livro”, códigos FEC, sequencias de identificação de preâmbulos que são correlation frioendly  e muito mais. Vale a pena procurar na net por mais informação sobre isto. O mais incrível é que isto foi feito nas horas vagas do já reformado Prémio Nobel da física, em Astrofisica Joe Taylor  K1JT…..
O mais engraçado e estou a ver se me lembro mas tenho a ideia que o protocolo consegue identificar sinais 23 a 27 dB’s abaixo do nível de ruído do canal, o que até à bem pouco tempo seria impossível. É pura magia de DSP’s e de muita matemática! Really cool stuff!

Vejam por exemplo os seguintes links e vídeos:

WSPR - amateur radio software
https://en.wikipedia.org/wiki/WSPR_(amateur_radio_software) (https://en.wikipedia.org/wiki/WSPR_(amateur_radio_software))

WSJT Home Page
https://physics.princeton.edu/pulsar/k1jt/ (https://physics.princeton.edu/pulsar/k1jt/)

WSJT - amateur radio software
https://en.wikipedia.org/wiki/WSJT_(amateur_radio_software) (https://en.wikipedia.org/wiki/WSJT_(amateur_radio_software))

Work the World with WSJT-X - Dr. Joe Taylor – 2018
https://www.youtube.com/watch?v=233HQs_8JGQ (https://www.youtube.com/watch?v=233HQs_8JGQ)

Dr. Taylor - FT8 & Beyond: FT4 - Finale, this mode is 3x Faster than FT8  - 2019
https://www.youtube.com/watch?v=2Pd7zB40xdY (https://www.youtube.com/watch?v=2Pd7zB40xdY)

Beyond FT8: A Basic Overview of Digital Modes And Trade-Off’s - K3EUI, Barry Feierman
https://www.youtube.com/watch?v=cRarYBC4R_U (https://www.youtube.com/watch?v=cRarYBC4R_U)

o livro da ARRL handbook 2022 e 2021 fala dos modos digitais

2022 ARRL Handbook Release - Let's see what it says about FT8
https://www.youtube.com/watch?v=wAaM1aDBlLM (https://www.youtube.com/watch?v=wAaM1aDBlLM)

Em tempos compilei e vi muita informação sobre isso, mas já não me lembro onde coloquei essa lista de links de informação.

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: jm_araujo em 22 de Fevereiro de 2022, 08:42
Cuidado que emitir sem licença de radioamador (e os conhecimentos que vem com a mesma das limitações) dá direito a umas multas jeitosas, além de ser ilegal e podermos estar a interferir com comunicações essenciais.

Na minha resposta anterior quando falei de JT8 queria dizer FT8 ;), o erro da troca foi a pensar no Joe Taylor.
A minha primeira experiência com SDR  não foi com rtl-sdr, mas com um kit para HF de um conversor de Taylor (concebido pelo próprio), ligado à placa de som do PC. A sensibilidade é espetacular, a grande vantagem do rtls-sdr é a largura de banda de recepção, que é de 2.4MHz em vez dos 48/96/192kHz da placa de som
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 22 de Fevereiro de 2022, 08:48
Tens toda a razão @jm_araujo, até existe a policia do RF, mas eu nunca disse que emiti nada de RF hehehehehe, Eu só sei o que é possível tecnicamente e o meu interesse nestes assuntos em RF é puramente teórico e o que não é teórico é implementado como um device de áudio com os mesmo princípios de RF mas sem ondas electromagnéticas de RF, logo não tem RF tem ondas de acústicas e logo não querer licença de rádio amador.

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 22 de Fevereiro de 2022, 09:13
Numa nota mais pessoal, a única razão pela qual eu ainda não tirei a licença de rádio amador, é pelo facto de que eu não acho piada a estar a operar um rádio amador. O meu pai era radio amador e tinha diversos rádios e quando era miúdo ajudei a montar as antenas e a cablagem toda, e nasci no meio dos rádios de radio amador, mas eu nunca achei piada a todo o processo de operar efetivamente um rádio amador e de fazer contactos e afins. O que verdadeiramente me fascina é o de tentar perceber como todos aqueles equipamentos funcionam, é a parte técnica da coisa e a comunidade Rádio Amadora é uma comunidade com imensos conhecimentos técnicos pois existe muito o espírito do DIY em tudo e da passagem do conhecimento o que é mesmo muito bom. Eu não tenho nenhum equipamento de rádio amador, mas tenho vários livros da ARRL como por exemplo o handbook e outros de antenas e acho que um de DIY de rádios e considero-os a todos grandes bíblias da eletrónica fundamental, das fontes de alimentação, do design de filtros, do design de tudo o que tenha a ver com RF, dos DSP’s e dos códigos de correção de erros usados nos modos digitais e do design de antenas.
Volto a dizer o meu interesse é puramente teórico e o que não é teórico e é só pelo gaudio é passado e implementado, não como ondas de RF mas sim como ondas acústicas e se quiser mesmo fazer um design em RF por diversão então uso como carga, uma load resistiva e não uma antena, logo não existe emissão de RF logo não me exige uma licença.

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: jm_araujo em 22 de Fevereiro de 2022, 14:19
Se quiseres um campo de aplicação de "rádio" em frequencias AF (audio-frequencia), uma área que comecei a investigar mas adiei após um par de testes, mas  que me pareceu muito interessante é a de detectores de metal.
A maior parte dos detetores que encontrei informação (é um mundo ainda muito que se mantem muito no segredo), são baseados em circuitos discretos, mas uma das formas de funcionamento é com frequencias <20khz, que dá para atacar diretamente da saida de audio dos PCs, e fazer a leitura pela entrada de audio (já não me lembro se só com a amplificação interna do microfone, ou com opamp exterior), com detecção de amplitude e fase para fazer a discriminação. Com um PC não se fica limitado a uma ou duas frequencais fixas como costumam ser os detectores comerciais, e com uns FFTs na deteção e outras técnicas o potêncial é enorme.

Como se está a trabalhar principalmente com campos magnéticos e potências baixas a frequencias muito baixas não há grandes perigos de estarmos a interferir em rádio.


Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 22 de Fevereiro de 2022, 15:36
Quando dizes detetores de metal em que detetas usando o espectro e FFT’s estás a falar de enviar uma forma de onda de ruído branco, pré-gravada, igual em todas as amplitude e em simultâneo em toda as frequências e determinar no canal de entrada as variações do espetro numa FFT entre sem ter objeto e ter um objeto, certo? Mas se não me engano isso não é para detetar se tem metal ou não, mas sim para determinar qual é a composição do metal, pois metais diferentes e formas e quantidade de metal diferente devem gerar assinaturas no espetro bem diferentes. E tal como disseste com uma FFT poderias fazer a FFT do sinal sem objeto e com o objeto tirar as amplitudes a cada frequência e os desfasamentos de fase em relação a não ter objeto a cada frequência e dar isso a um algoritmo de Machine Learning para treinar um classificador. Como estaria-mos a falar de uma FFT a 1D (sampling de um buffer de uma coil) com mais 1D no tempo entre buffers seria mais fácil se desse-mos isso a ser processado por uma rede neuronal do tipo CNN e processava o espectrograma como se fosse uma imagem.
No entanto no caso de processar os dados diretamente da FFT (across FFT’s) ela é a 2D, pois ela teria a FFT dos diversos instantes do sampling do buffer, mas para preservar a informação dos desfasamentos de fase teria-se de trabalhar com o valor de cada bucket Raw como um número complexo, com parte real e parte imaginária e não somente o valor absoluto de cada bucket da FFT pois nesse caso só se conseguiria ver os picos das frequências de ressonância do metal. Parece-me uma aplicação engraçada, com um bocadinho de sorte ainda conseguirias identificar objetos diferentes e não somente a sua composição e recriar o volume da massa de metal e posição no espaço e orientação. Somente a partir de uma única coil, pois apesar da coil  ter simetria e isso criar alguma ambiguidade o corpo humano também iria causar interferência no sinal logo isso poderia ajudar a desambiguar o o reconhecimento da posição. A FFT também te dava outra coisa à borlix, é que o resultado final mais preciso de uma FFT pode ser obtido com fase na média de N FFT e com isso aumentares a relação de sinal ruído, logo tornando o teu detetor num aparelho muito mais sensível. Mas terias de perder muito tempo a treinar o classificador :-)


Mas tens toda a razão que é uma aplicação interessante. Uma que também é igualmente interessante é o projeto Touché

Ivan Poupyrev - Touché
http://www.ivanpoupyrev.com/project/touche (http://www.ivanpoupyrev.com/project/touche)

Neste cria-se um circuito ressonante de alta impedância e gera-se um um PWM uma onda e determina-se qual é a sua amplitude no circuito ressonante  em cada frequência, ou seja faz-se um varrimento das frequências (uma única em cada momento, tipo o equipamento de RF de um spetrum analiser mas a frequências mais baixas) e depois de se obter o espetro dá-se se não me engano a uma SVM – Support Vector Machine  (machine learning) para ser o classificador, mas poderia ser outro algoritmo qualquer. A onda de sinal AC gerada (muito pouca voltagem e corrente, é só  sinal) percorre o corpo humano com mais facilidade do que DC e encontra caminhos diferentes com atenuações a uma terra virtual diferente, por isso gera amplitudes a cada frequência diferentes, isto consoante estamos a tocar um um dedo, dois dedos ou 3 dedos na maçaneta da porta (exemplo), estando a onda a percorrer diferentes caminhos dentro do nosso corpo consoante a frequência. Depois é só um esquema de identificação de sequencia ao longo do tempo simples do output do classificador SVM para detetar um determinado toque composto. Um dedo, seguido de dois dedos, seguido de três dedos e em que a assinatura é diferente se para cada dedo da mão.

Também existe uma aplicação parecida engraçada que é o passo seguinte em que se faz uma tomografia axial mas por impedância. Imagina electrodos à volta do pulso em que se pretende ver uma secção de corte do pulso humano, e não como uma tomografia normal. Existe informação na net sobre isso e existe um chip recente acho que da Texas Instruments com uns 4 anos que é “barato” e que dá não sei se são logo 8 canais de medido de impedância muito sensível, o problema nesse caso especifico é que depois tem de se reconstruir a imagem com base na transformada de Radon e isso é uma das partes mais complexas de se fazer do zero em software, mas é fazível, toda essa parte também é fantástica, mais uma Rabit Hole super interessante para explorar! Heheheheheh Em tempos li um livro mais que ensinava de forma mais acessível estes conceitos sobre a transformada de Radon e a backprojection escrito por um senhor Chinês, mas já não me recordo do nome….

Procurei online e encontrei eu sabia que era de um senhor de origem chinesa hehehehehehe :-)

Medical Image Reconstruction: A Conceptual Tutorial
by Gengsheng Zeng

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 22 de Fevereiro de 2022, 16:04
Em relação a geradores de diferentes tipos de ruído eu sabia que já tinha implementado geradores de ruído e que deveria ter alguma coisa no meu GitHub …

Audio noise WAV generator in Rust
https://github.com/joaocarvalhoopen/Audio_noise_WAV_generator_in_Rust (https://github.com/joaocarvalhoopen/Audio_noise_WAV_generator_in_Rust)

Test signal generators
https://github.com/joaocarvalhoopen/Test_signal_generators (https://github.com/joaocarvalhoopen/Test_signal_generators)

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: jm_araujo em 22 de Fevereiro de 2022, 16:49
Não percebi mais de metade do que escreveste, mas dá para perceber que entendeste o potêncial da ideia :)
Não sei se emitir ruido será a melhor ideia, reduz a potência de pico e complica medição de atrasos de fase (mais importantes que os de amplitude). A amplitude varia com distância/tamanho, a fase permite discriminar qual o metal que está presente.

Os detetores "de jeito" além de detetar a presença, também permitem discriminar qual o metal (se for ferroso ou aluminio não é tão interessante como se for prata,  ouro ou ligas habituais de moedas (cobre/niquel), e a vontade de escavar um buraco muda bastante), mas
os esquemas e informação que encontrei referem que apenas trabalham em frequencias fixas (uma ou mais) ou com espetros "proprietários". Com uma solução programável fazer varrimentos e até analizar distorção/intermodulações na presença de mutiplas frequencias acho que merece análise.

O esquema normal de um detetor é com duas bobinas (uma emissora e outra receptora) parcialmente sobrepostas de forma que sem nada presente o campo gerado na emissora se anule na receptora, e assim quando estiver presente algum metal no campo esse equilibrio é desfeito. Dessa forma a sensibilidade é melhorada significativamente
(https://1.bp.blogspot.com/-B1V6_H36a74/XaBcGCHXWwI/AAAAAAAAAfI/N1x6T2IWYsIJV0iMTT7nfc5p8YQnrl3-QCEwYBhgL/s640/unnamed.gif)
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 22 de Fevereiro de 2022, 17:41
@jm_araujo, tu falaste e bem na desvantagem de que se usa-se um ruído branco para gerar um sinal em todas as frequências a potencia da coil emissora do sinal seria dividida por todas as frequências, em vez de um varrimento que passa-se por todas as frequências uma de cada vez (como num spetrum analiser) , mas existem também duas vantagens, uma é que é mais rápido pois faz todas as frequências ao mesmo tempo e a outra vantagem é que a FFT ao determinar os desfasamentos de fase que seriam por bucket, não usa um conjunto pequeno de pontos de uma única onda para fazer uma correlação e determinar a fase, mas sim usa a toda a informação do buffer amostrado para determinar o desfasamento de fase, logo o valor obtido do desfasamento de fase é muito mais preciso. E ainda podes fazer médias entre várias FFT’s para aumentar a relação sinal ruído para um valor muito maior. Podes no entanto usar na mesma técnicas de FFT mas varrendo as frequências, uma frequência gera uma FFT por cada buffer e assim obter o melhor dos dois mundos e depois fundes o espectro no final num único gráfico que dás ao classificador feito com um algoritmo de machine learning. Tu também disseste uma coisa engraçada, que é que poderias usar uma placa de som para fazer isto a frequências de áudio, Ora uma é que poderias usar uma placa de som USB pequena com DAC e ADC de 24 bit’s aumentando em muito a resolução e poderias usar uma boa placa que é barata mas que tem pre-amps low noise (logo muito sensível) a baixo custo por ser um equipamento comercial. Por outro lado poderias beneficiar a baixo custo de uma de 96KHz o que te aumentaria o range de frequencias a fazer o scan. E poderias usar um simples Raspberry Pi com um pack de baterias USB e programar o acesso à placa de som input e output em Rust com a lib:

Vê por exemplo a lib CPAL neste meu link:
https://github.com/joaocarvalhoopen/How_to_learn_modern_Rust#audio-in-rust (https://github.com/joaocarvalhoopen/How_to_learn_modern_Rust#audio-in-rust)

Nota_1: a correlação implícita por FFT é muito mais sensível do que a correlação no domínio do tempo por função de correlação.

Nota_2: Para veres um exemplo de como calcular os desfasamentos de fase nos diferentes buckets de uma FFT, vê este exemplo. A parte mais complicada é o phase unwraping mas é só veres como ele funciona que depois é simples.

Phase difference b/w two sinusoidal signals using FFT
https://www.dsprelated.com/thread/5749/phase-difference-b-w-two-sinusoidal-signals-using-fft (https://www.dsprelated.com/thread/5749/phase-difference-b-w-two-sinusoidal-signals-using-fft)

Para detectares os deltas dos desfasamentos de fase no teu caso poderias nem sequer necessitar de determinar a sincronização entre as tramas de saída e as de entrada como num radar, pois podes ter sempre um botão para calibrar o equipamento os atrasos de fase no buffer quando ele está no ar versos quando ele está sobre o metal, ou seja vês o delta de fase entre estes dois estados sendo que o emissor no ar é a tua referencia de fase delta de fase zero e não necessitas de andar à procura do atraso no sinal de entrada do sinal de saída que emitiste como se faz nos radares sonares com áudio com placa de som por o emissor e o receptor não estarem sincronizados no seu clock, No entanto gostava só de dizer que existem umas técnicas muito engraçadas de sincronização de tramas sem terem o mesmo clock usando técnicas de OFDM que se podem aplicar em sons áudio. Também podes fazer uma simples correlação de uma sequencia que seja "amiga" das correlações em termos das suas propriedades. ou podes usar um chirp que também é bom para uma correlação normal.

Existe um livro muito fixe sobre isso Implementação de OFDM do Zero, que acabei de descobrir que saiu à poucos dias a uma segunda edição :-)

Digital Signal Processing in Modern Communication Systems 2th Edition 2022
by Andreas Schwarzinger

Para veres como se pode aplicar a técnica de sincronização do OFDM ao áudio, vê os papers da autora do paper da ApneaAPP,  mas não é o paper da ApneaAPP acho que é da faculdade de Washington se bem me lembro.

Podes dar mais detalhes do circuito elétrico de como ele funciona o detector normal de metais, se tem RLC de ressonância ou se é um amplificador direto?

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: jm_araujo em 22 de Fevereiro de 2022, 18:03
As minhas FFTs estão algo enferrujadas, não me lembro o suficiente para poder trocar ideias, apenas para saber qiue são do campo desta aplicação.
Citar
Ora uma é que poderias usar uma placa de som USB pequena .. um simples Raspberry Pi com um pack de baterias USB
Vês como chegaste lá porque me parece que é um campo que merece exploração. Vê (sentado) quando custa um Minelab, um topo de gama.

E vou-te dar a dica a seguir: um telemóvel recente tem DAC+ADC e um processador mais rápido que um RPI, e já inclui bateria e display. Se a DAC/ADC não forem suficientes, quase todos hoje suportam OTG.

Citar
Podes dar mais detalhes do circuito elétrico de como ele funciona o detector normal de metais, se tem RLC de ressonância ou se é um amplificador direto?
Não se encontram muitos esquemas, mas os que aparecem como costumam ser de uma só frequencia, são LC pelas razões obvias: poupa bateria e maior potência. Mas se para fazer experiencias wideband (com placa de som), não pode ser ressonante.

Por exemplo: https://www.hobby-hour.com/electronics/s/tesoro-metal-detector.php


Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 22 de Fevereiro de 2022, 18:36
Com um caneco o circuito que enviaste faz todo o processamento analogicamente heheheheh Bem de uma coisa posso-te dizer o machine learning mais simples de todos vai conseguir identificar muito melhor se um metal é ferroso ou não do que aqueles dois filtros feitos com ampops.

De facto estão lá os dois LC’s de saída e de entrada.

Seja como for se as tuas FFT’s estão enferrujadas, então desenvolve o teu protótipo usando Python NumPy e se precisares SciPy pois tens muito mais exemplos na net de como usar as FFT’s e a documentação é boa e simples e dá sempre uma vista de olhos no código de FFT’s que encontras para MatLab e depois codifica cada funcionalidade em Python.

Depois de teres o teu protótipo a funcionar é que começa a fazer o teu código para o telemóvel (Java o Kotlin), um problema de cada vez em fases, pois se vais começar logo pelo código do telemóvel é demasiado trabalhoso para fazer debug.

Pergunta os detetores de metal são sempre afastados do corpo num braço de plástico, presumo que seja para cobrir uma zona maior, certo? Ou cobrir melhor, mas pergunto-te se um detetor de metal consegue funcionar se estiver a coil perto de um membro do corpo tipo pé? Ou seja se o corpo não interfere?
É que caso não interfira, seria muito mais pratico criar uns chinelos modificados e quem sabe com aspeto normal e andar num areal de um lado para o outro a fazer ginástica e quando o auricular nos disse-se que era um material valioso então fazer um buraco! Heheheheh

Eu estou a rir pois isto parece uma caça ao tesouro dos miúdos! Hehehehehehe

Quem sabe ainda encontras um tesouro pirata de há 500 anos atrás!

Hehehehehe

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 23 de Fevereiro de 2022, 00:17
Fiquei curioso e fui ver o que me disseste dos MineLab, não cheguei a ver o preço deles mas pela publicidade tão polida com vídeos de animações, aplicações militares de desminagem e tudo, de facto parecem produtos muitos caros.

Reparei que eles falam de um Multi-IQ  - Simulaneou multi-frequencies por isso eles devem estar a usar algum método estilo FFT com um sinal de ruído branco uniforme em todas as frequências, ou então estão a fazer um sweep muito rápido em várias frequências, por exemplo com um chirp, mas eu apontava mais para a FFT, pois a identificação de desfasamentos de fase em chips sem FFT é mais complexa pois a frequência está a ser comprimida. Mas com FFT, os chirps já são processados dessa maneira com radares FMCW

Provavelmente estou enganado a ver pelo nível de polimento que os produtos deles e o marketing têm, mas pelo menos para os dois metais mais conhecidos e talvez mais valiosos (ouro e prata) podes facilmente arranjar um balde de terra e colocar lá dentro um anel ou um fio pequeno de ouro (por exemplo uma aliança) ou um de prata a várias profundidades e com várias percentagens de água no solo e com isso tirar vários dados de treino para a tua machine learning, essa parte não seria nada difícil de se fazer e poderias pelo menos no teu protótipo fazer em Python que ainda seria mais simples pois tens guias para tudo e mais um par de botas de machine learning para Python e usas libs de Python como o scikitlearn. Depois mais tarde se não chegasse é que trazias a cavalaria pesadas das redes neuronais com por exemplo o PyTorch.

scikit-learn
https://scikit-learn.org/stable/ (https://scikit-learn.org/stable/)

Depois usarias também pregos de ferro, aço, e algumas coisas de alumínio, de cobre, de chumbo(antigamente as canalizações eram feitas de chumbo ), Nikel, latão  e bronze recolhias dados de espetros com todos eles. Ou seja as suas assinaturas

Com isso crias o teu dataset, com casos de diversos tamanhos e a diversas profundidades e a mais do que um tipo de terreno (arreia, terra, barro, pedra soltas, cascalho) e com várias percentagens de água, e para cada um deles tu registas várias passagens do device a detetar cada um dos casos e atribuis uma label a cada um dos deles, a cada um dos tipos diferentes dos casos.

Depois com o teu dataset fine grained, criado com o teu balde, tu crias subset do que tu pretendes como que se fossem coisas que tu queres treinar para detetar, por exemplo, queres detetar joias e moedas de outros e de prata vs tudo o resto. Então marcas como positivo a label correspondente ao ouro e à prata em todos os casos e a todos as profundidades vs tudo o resto que seria um caso negativo. Divides em dados de treino e dados de teste aleatoriamente pois terás vários espectros para cada caso.

E depois treinas o algoritmo de Machine Learning e podes inclusive começar só por fazer um pequeno classificador, mas depois podes tentar fazer coisas mais complexas e de te classificar o que é e a que profundidade ele está ou a identificar todos os teus casos diferentes do teu dataset, como sendo o mais próximo da situação. O que o algoritmo vai fazer depois ao treinar é a conseguir convergir para a identificação de que um caso do mundo real se vai parecer mais com um caso do teu dataset. E é só isso, a parte do treino pode ser mesmo uma coisa tão simples quanto isso e poderás ir sempre adicionando casos de teste e voltando a treinar o teu algoritmo. Melhorando a questão dos falsos positivos e dos falsos negativos que acaba por ser um tradeoff, mas mais casos de teste ajudam sempre.

A parte de usar uma placa de som, essa parte faz em C/C++ ou Rust de inicio um programa que só faça a geração e aquisição do sinal e gravas os dados todos os sinais que geraste e o sinal que recebeste para um determinado hardware, coils a uma distancia fixa do solo. Não podes fazer esta parte em Python pois o quando o GC entrar vais perder frames do buffer e o desfasamento de fase vai par aas ortigas. Depois desenvolves o teu pre-processamento de FFT em Python a partir dos dados em disco gravados e desenhas e melhoras os teus algoritmos, resolves os problemas todos, e testas o amplificador de áudio e a parte de pré que vais ligar à placa de som. Tiras os bugs todos e testas por ti, ganhas uma intuição do que realmente está a acontecer ao osciloscópio e nos resultados da FFT -> vetor com resultados das amplitudes e das fases para cada buffer. E só depois passas para a parte de Machine Learning que depois de fazeres a primeira fase e fora a recolha de dados de treino e teste que vai ser mais demorada. Talvez um fim de semana a fazer experiências e a recolher dados com um balde de terra e uns anéis, uns fios e ou umas moedas de ouro ou e prata.

No final testas o teu protótipo ainda no teu laboratório de eletrónica, e prontos aí já ficas com um protótipo a funcionar e depois a parte de tornar uma APP de Andoid com hardware mínimo depois de teres um protótipo a funcionar torna-se muito mais simples.

Mas é  muito provável que me esteja a escapar alguma coisa fundamental para que isto funcione, mas eu não estou a ver nada assim de transcendente. Contudo lá que no minelab, eles tem um excelente marketing no site deles, lá isso têm, mas se o departamento de R&D deles for tão bom como o departamento de marketing eles devem ter muito “segredo do mollho” nos produtos deles.
Mas sinceramente não me parece ser assim uma coisas tão complicada como isso.
Aliás se tiveres um osciloscópio e um gerador de sinais e alguns metros de fio de transformador para fazer as duas coils e uma aliança, tu consegues testar isso tudo em menos de duas horas sem o balde de terra.
Depois é só ires automatizando partes do processo, como por exemplo substituir o sinal do gerador de sinais, pelo amplificador de áudio e gerar o sinal com a placa de som em C/C++ ou Rust, depois substituir o osciloscópio por um pré e um ADC da placa de som (algo que adapte as voltagens e limite as corrente do sinal na saída do LC) e depois de gravares para disco com a lib clap ou com o Audacity mesmo que seja só como um WAV file por exemplo, depois abres e processas o wav file com Python offline, procura no meu github que tens lá muito exemplos de como fazer isso (abrir wavs e fazer FFT’s a ficheiros WAV), é simples e fácil.

Eu diria que se eu não estiver errado tu num espaço de 2 horas se tiveres equipamento de instrumentação tens as tuas primeiras experiências a funcionar e no espaço de uma semana tens até à parte da saída da FFT e desfasamentos de fase e amplitudes a funcionar, mais um fim de semana de testes e criação de dataset com o balde de terra e depois mais uma semana para implementares o machine learning, vê o scikitlearn e terás um protótipo high tek a funcionar em duas a três semaans.
Depois dai para as fases seguintes seria só refazer o projecto em outras tecnologias o que vai demorar bastante e iterar para melhorares a ideia e testar muito a coisa na pratica e ver quais eram os problemas para os resolver.

https://www.minelab.com/eur/multi-iq (https://www.minelab.com/eur/multi-iq)

https://www.youtube.com/watch?v=Tk93LlJy8dU (https://www.youtube.com/watch?v=Tk93LlJy8dU)

https://www.minelab.com/metal-detectors/equinox-800 (https://www.minelab.com/metal-detectors/equinox-800)

https://www.youtube.com/watch?v=GObpkMKg3wc (https://www.youtube.com/watch?v=GObpkMKg3wc)

Tal como te disse pode me estar a escapar muita coisa, muitos segredos no molho, mas sem tentares nunca saberás se de facto tem segredo ou não. E de uma coisa é verdade, é um projeto divertido!

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 23 de Fevereiro de 2022, 00:42
Uma ilustração muito simples mas onde está a falar de frequência é fase que ele quer dizer, vê os comentários.

Treasure hunting & Metal detectors How it works
https://www.youtube.com/watch?v=PU0Hj3pwLLE (https://www.youtube.com/watch?v=PU0Hj3pwLLE)

e este também é interessante:

Metal Detector Discrimination
https://www.youtube.com/watch?v=fnwgf5RrhTg (https://www.youtube.com/watch?v=fnwgf5RrhTg)

e este ainda é mais detalhado

Metal Detector Discrimination Explained - with a Garret AT Pro
https://www.youtube.com/watch?v=EcuTsifSgBs (https://www.youtube.com/watch?v=EcuTsifSgBs)

Cumprimentos,
João

Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: blabla em 26 de Fevereiro de 2022, 01:13
Eu não estava a par disto mas ao que pude pesquisar o transporte e uso de um detetor de metais ao contrario da maior parte dos outros países, em Portugal eles são legislados e carecem de licenciamento, pelo que não aconselho ninguém a fazer um detetor de metais sem se informar bem das respetivas leis e sem saber exatamente o que se pode ou não fazer de modo a que se esteja sempre dentro da lei. No que me toca, eu achei os princípios físicos e elétricos do seu funcionamento extremamente interessantes e que aprendi com a discussão desta thread aqui na lusorobótica, mas sendo eu um teórico por natureza como sou, não sinto minimamente a necessidade de fazer uma geringonça destas. Mas numa pequena nota, acho curioso o facto de Portugal parecer ter uma legislação muito diferente da maior parte dos outros países onde  os detetores de metal parecem (pelo menos visto à distância) como uma espécie desporto ao ar livre que não carece de licenciamentos.

Cumprimentos,
João
Título: Re: Apollo Comms Part 10: Apollo SDR Reboot
Enviado por: Njay em 26 de Fevereiro de 2022, 13:24
Pelo que li, só quando a utilização é em locais de interesse histórico.