
Beeps and melodies in two-way radio - sasvari
http://www.windytan.com/2019/03/beeps-and-melodies-in-two-way-radio.html
======
th0ma5
Every time she posts I feel simultaneously excited of what's to find in there,
and dumber because I haven't gone this deep into something. Such great writing
where the subject matter is both compelling and the author has done their
homework.

~~~
tonyarkles
Yeah, she is undoubtedly an inspiration for me! Really awesome explorations of
interesting things.

~~~
squarefoot
Not to mention her site is a lesson on how to make articles easily readable.
From the use of greys to text and links colors, the lack of too light images
and the barely noticeable background pattern: everything on that page is
gentle to the eyes. This is how web pages should be designed. Thanks!

------
zackmorris
This is the most concise explanation of Gaussian peak interpolation from the
article that I can find. Unfortunately it's a pdf, but it does have a full
example:

[http://www.add.ece.ufl.edu/4511/references/ImprovingFFTResol...](http://www.add.ece.ufl.edu/4511/references/ImprovingFFTResoltuion.pdf)

    
    
        RFFT_SIZE = 256
        magAddr: points to array of FFT magnitude results
        sample_freq = 8000Hz
        TI_FFT(): TI optimized function to calculate FFT
        maxidx_SP_RV_2(): TI optimized function to find maximum value in array
        
        TI_FFT(); //perform TI FFT analysis.
        int max_bin = maxidx_SP_RV_2(magAddr, RFFT_SIZE>>1); //find max bin
        float freq_rez = (float)sample_freq/RFFT_SIZE; //calculate frequency resolution
        float inter_bin = max_bin + log(magAddr[max_bin+1]/magAddr[max_bin-1])*0.5
            /log(magAddr[max_bin]*magAddr[max_bin]/(magAddr[max_bin+1]*magAddr[max_bin-1]));
            //calculate the intermittent bin on continuous spectrum using GI
        freq = (unsigned)(freq_rez*inter_bin); //calculate max input frequency
    

I believe that the above is C code, so the array indices are 0-based.

I can't find anything on TI_FFT except a bunch of PowerPoints, so you'll
probably want to use a better documented FFT function:

[https://www.google.com/search?q=TI_FFT&tbs=li:1](https://www.google.com/search?q=TI_FFT&tbs=li:1)

Here is the maxidx_SP_RV_2() function:

[http://read.pudn.com/downloads543/sourcecode/embedded/224236...](http://read.pudn.com/downloads543/sourcecode/embedded/2242363/C28x_FPU_LIB/maxidx_SP_RV_2.asm__.htm)

------
bobowzki
The 1:20 decimation could probably be done more efficiently with CIC filter, I
would look into that.

Love the terminal user interface! I would like to write something like that
for a shortwave raspberry pi transceiver we are building,
[http://tujasdr.com](http://tujasdr.com).

------
Aloha
This mostly seem to center around someone doing analysis of a FRS like radio
service.

Generally professional radios don't send roger beeps over there air. Not have
I ever heard of "STE" \- and certainly not as the method described, normally
you'd change the phase of the CTCSS tone by 120 degrees, which is the signal
to the radio that the transmission ended. The phase reversal method was used
because of the amount of time it took vibrasponder reeds to stop vibrating,
but changing the phase you could end the vibration faster.

~~~
interfixus
Not " _someone_ ". Oona Räisänen, consistently fascinating writer on all
things rf, and orders of magnitude deeper into her fields than I could ever
even imagine myself into anything.

~~~
Aloha
She may be fascinating, that does not make her technically correct, nor an
expert in this field.

------
4FNET7
You would enjoy hackgreen. The displacement fields end up generating a
sequence over nuclear reticules so you get a signal into the wire and that
pletes into your own over some ranged wifi or something and you can literally
find yourself in a wide band screener for free. Ecosia search for hackgreen.
It's bad ass.

