From ff049cad08088e7f2865d5953692367de6fe3892 Mon Sep 17 00:00:00 2001 From: boblark Date: Tue, 25 Jan 2022 17:51:55 -0800 Subject: [PATCH] Added FMtoneCTCSS example --- AudioFilterBiquad_F32.cpp | 5 - examples/FMtoneCTCSS/FMtoneCTCSS.ino | 271 ++++++++++++++++++ .../FMtoneCTCSS/ScreenOutputpTonepRef.gif | Bin 0 -> 52281 bytes 3 files changed, 271 insertions(+), 5 deletions(-) create mode 100644 examples/FMtoneCTCSS/FMtoneCTCSS.ino create mode 100644 examples/FMtoneCTCSS/ScreenOutputpTonepRef.gif diff --git a/AudioFilterBiquad_F32.cpp b/AudioFilterBiquad_F32.cpp index b397958..2976324 100644 --- a/AudioFilterBiquad_F32.cpp +++ b/AudioFilterBiquad_F32.cpp @@ -18,14 +18,9 @@ void AudioFilterBiquad_F32::update(void) { block = AudioStream_F32::receiveWritable_f32(); if (!block) return; // Out of memory - // Serial.print(block->data[37],6); Serial.print(", IN "); Serial.println(block->data[38],6); if(doBiquad) // Filter is defined, so go to it arm_biquad_cascade_df1_f32(&iir_inst, block->data, block->data, block->length); - // Serial.print(block->data[37],6); Serial.print(", OUT "); Serial.println(block->data[38],6); - - // Add double filter call here - // Transmit the data, filtered or unfiltered AudioStream_F32::transmit(block); AudioStream_F32::release(block); diff --git a/examples/FMtoneCTCSS/FMtoneCTCSS.ino b/examples/FMtoneCTCSS/FMtoneCTCSS.ino new file mode 100644 index 0000000..093826e --- /dev/null +++ b/examples/FMtoneCTCSS/FMtoneCTCSS.ino @@ -0,0 +1,271 @@ +/* + * ToneDetect3.ino Test the CTCSS tone detection + * using the OpenAudio_ArduinoLibrary analyze_CTCSS_F32 class. + * This is also an example of generating and detecting radio + * narrow-band frequency modulation (NBFM. This covers the case where the + * FM deviation is in the same order as the modulation frequencies. + * CTCSS sub-audible tones (see Wikipedia) are widely used to + * allow stations to only hear the desired transmitters. The frequencies + * are all lower than that of voice to allow separation by filtering. + * + * Bob Larkin 26 March 2021 + * Revised 22 Jan 2022. + * Public Domain + */ +#include "AudioStream_F32.h" +#include "Arduino.h" +#include "Audio.h" +#include "OpenAudio_ArduinoLibrary.h" + +// #define OUTPUT_QUEUE + +// T3.x supported sample rates: 2000, 8000, 11025, 16000, 22050, 24000, 32000, 44100, 44117, 48000, +// 88200, 88235 (44117*2), 95680, 96000, 176400, 176470, 192000 +// T4.x supports any sample rate the codec will handle. +// The CTCSS detector supports a restricted st of sample rates (details below). + +const float sample_rate_Hz = 44117.0f; +const int audio_block_samples = 128; // Use this - only one supported in CTCSS detector +AudioSettings_F32 audio_settings(sample_rate_Hz, audio_block_samples); // Not used, all at default + +const float CTCSSFreq = 103.500f; +/* FIR filter designed with http://t-filter.appspot.com + * This seems to be a good I-F filter for 5 kHz deviation NBFM. + * Sampling frequency: 44100 Hz + * 0 Hz - 6300 Hz, att >-62.1 dB + * 8000 Hz - 20000 Hz Ripple = 0.06 dB + * 21700 Hz - 22050 Hz att >-62.1 dB + */ +float firFM_BPF[82] = { // Limit noise going to FM detector + 0.0000000000000000000, + 0.00008365261860118879, + 0.0006583187950336784, + -0.0019407568703118934, + -0.00009987233532798062, + 0.00032719088373367114, + 0.0015310693898116902, + 0.000955022003263755, + -0.0014168349573391522, + -0.0012792163039246237, + -0.0028041109113356045, + 0.003423773414325396, + 0.0005879630239341677, + 0.005484189218478419, + -0.005929117878887913, + -0.00011592770526681765, + -0.008306219532671027, + 0.007927691595232189, + 0.0011012110020438936, + 0.010098403965529463, + -0.008003622491352998, + -0.0051152410852304386, + -0.00960701825591872, + 0.004774918283483265, + 0.013581334230222949, + 0.006115374322484461, + 0.0025168498118005173, + -0.02728352305492423, + -0.00013301923349161136, + -0.013504140226622814, + 0.04621408618779683, + -0.005938008431812001, + 0.026530407240648667, + -0.0703999968346119, + 0.006639153066796368, + -0.038963325061155324, + 0.10421524449162319, + 0.01319721488745073, + 0.04792495681421007, + -0.19558525086465353, + -0.21559102765412194, + 0.6154759104918608, + -0.21559102765412194, + -0.19558525086465353, + 0.04792495681421007, + 0.01319721488745073, + 0.10421524449162319, + -0.038963325061155324, + 0.006639153066796368, + -0.0703999968346119, + 0.026530407240648667, + -0.005938008431812001, + 0.04621408618779683, + -0.013504140226622814, + -0.00013301923349161136, + -0.02728352305492423, + 0.0025168498118005173, + 0.006115374322484461, + 0.013581334230222949, + 0.004774918283483265, + -0.00960701825591872, + -0.0051152410852304386, + -0.008003622491352998, + 0.010098403965529463, + 0.0011012110020438936, + 0.007927691595232189, + -0.008306219532671027, + -0.00011592770526681765, + -0.005929117878887913, + 0.005484189218478419, + 0.0005879630239341677, + 0.003423773414325396, + -0.0028041109113356045, + -0.0012792163039246237, + -0.0014168349573391522, + 0.000955022003263755, + 0.0015310693898116902, + 0.00032719088373367114, + -0.00009987233532798062, + -0.0019407568703118934, + 0.0006583187950336784, + 0.00008365261860118879}; + +// Transmitter: +// Use SineCosine_F32 as it allows amplitudes greater than +// 1.0 (this is FP and that is OK). Use sine channnel only. + +AudioSynthSineCosine_F32 sine1; //xy=62,181 +AudioSynthGaussian_F32 noiseWhite1; //xy=68.5,265 +AudioSynthGaussian_F32 noiseWhite2; //xy=68.5,379 +AudioAnalyzeRMS_F32 rms2; //xy=103,314 +AudioFilterBiquad_F32 biQuad1; //xy=223,265 +AudioMixer4_F32 mixer4_1; //xy=229,195 +AudioMixer4_F32 mixer4_2; //xy=236,381 +RadioFMDetector_F32 FMDetector1; //xy=258,476 +AudioFilterFIR_F32 fir1; //xy=365,381 +radioModulatedGenerator_F32 modulator1; //xy=395,189 +AudioAnalyzeRMS_F32 rms1; //xy=426,125 +analyze_CTCSS_F32 toneDet1; //xy=200,400 +// AudioRecordQueue_F32 recordQueue1; //xy=446,446 +AudioOutputI2S_F32 audioOutI2S1; //xy=448,489 + +AudioConnection_F32 patchCord1(sine1, 0, mixer4_1, 0); +AudioConnection_F32 patchCord2(noiseWhite1, biQuad1); +AudioConnection_F32 patchCord3(noiseWhite2, 0, mixer4_2, 1); +AudioConnection_F32 patchCord4(fir1, rms2); // patchCord4(noiseWhite2, rms2); +AudioConnection_F32 patchCord5(biQuad1, 0, mixer4_1, 1); +AudioConnection_F32 patchCord6(mixer4_1, 0, modulator1, 1); +AudioConnection_F32 patchCord7(mixer4_2, fir1); +AudioConnection_F32 patchCord8(FMDetector1, 0, audioOutI2S1, 0); +AudioConnection_F32 patchCord9(FMDetector1, 0, audioOutI2S1, 1); +AudioConnection_F32 patchCordA(FMDetector1, 0, toneDet1, 0); +// AudioConnection_F32 patchCord10(FMDetector1, 0, recordQueue1, 0); +AudioConnection_F32 patchCord11(fir1, FMDetector1); +AudioConnection_F32 patchCord12(modulator1, 0, mixer4_2, 0); +AudioConnection_F32 patchCord13(modulator1, 0, rms1, 0); +AudioControlSGTL5000 sgtl5000_1; //xy=157,796 + +// #define SAMPLE_RATE 44117.0f +// #define DETECTOR_TIME 300.0f +// #define NWINDOW (uint16_t)( 0.5 + SAMPLE_RATE * DETECTOR_TIME / 32000.0f ) + +void setup() { + Serial.begin(300); // Any value + delay(1000); + Serial.println("OpenAudio_ArduinoLibrary - Full FM Test CTCSS Tone Detector"); + + // AudioMemory(5); + AudioMemory_F32(50, audio_settings); + sgtl5000_1.enable(); + + // NBFM Transmitter: + sine1.frequency(CTCSSFreq); + sine1.amplitude(0.75f); // CTCSS tone 750 Hz deviation (15% of 5000) + noiseWhite1.amplitude(2.0f); // RMS 2000 Hz deviation, 1 sigma + modulator1.setFMScale(1000.0f); // Sine wave ampl=1.0 is now 1 kHz dev + // Bandpass the noise a bit to make it imitate voice, grossly! + biQuad1.setBandpass(0, 800.0f, 4.0f); // (uint32_t stage, float frequency, float q) + biQuad1.begin(); + // (_doAM, _doPM, _doFM, _bothIQ) + modulator1.doModulation_AM_PM_FM(false, false, true, false); + modulator1.frequency(15000.0f); // Carrier frequency + modulator1.amplitude(0.01f); // Set in loop below + + // NBFM Receiver: + noiseWhite2.amplitude(0.01f); // Receiver noise arbitrary level here + fir1.begin(firFM_BPF, 82, 128); // NBFM I-F filter + // The FM detector has error checking during object construction + // when Serial.print is not available. See RadioFMDetector_F32.h: + Serial.print("FM Initialization errors: "); + Serial.println( FMDetector1.returnInitializeFMError() ); + // FMDetector1.setSquelchThreshold(0.7f); + FMDetector1.frequency(15000.0f); + // recordQueue1.begin(); + + // Sub-audible tone detector: + // CTCSS ranges from 67 to 254 Hz + // Actual CTCSS use seems to be 77.0 to 203.5 Hz + toneDet1.initCTCSS(); + toneDet1.frequency(CTCSSFreq); // or (CTCSSFreq, 300.0); + toneDet1.thresholds(0.0f, 0.4f); + + delay(500); + Serial.println(waitTone2()); // Just to load filters + modulator1.amplitude(0.01); + measureDataPoint(); + + Serial.print("\nCTCSS Freq = "); Serial.println(CTCSSFreq); + Serial.println("\n pTone pRef pTone/pRef pSigdB pNoisedB S/N dB"); + + for(float sig=0.00316228; sig<0.158114; sig*=1.04) + { + modulator1.amplitude(sig); + measureDataPoint(); + } + } + +void loop() { +// measureDataPoint(); + } + +/* + while (!rms2.available()) ; + float pNoise = 20.0f*log10f(rms2.read()); + while (!rms2.available()) ; + pNoise = 20.0f*log10f(rms2.read()); + while (!rms2.available()) ; + pNoise = 20.0f*log10f(rms2.read()); + Serial.print("FM Det out (dB) = "); + Serial.println(pNoise, 3); + */ + +#ifdef OUTPUT_QUEUE + if( recordQueue1.available() ) + { pq = recordQueue1.readBuffer(); + for(int i=0; i<128; i++) + Serial.println(*(pq + i),7); + recordQueue1.freeBuffer(); + } +#endif + + +void measureDataPoint(void) { + if(!waitTone2()) {Serial.println("No tone output"); return;} + float pt = toneDet1.readTonePower(); + float pr = toneDet1.readRefPower(); + Serial.print(pt, 9); + Serial.print(", "); + // Serial.print(10.0f*log10f(toneDet1.readRefPower()), 3); + Serial.print(pr, 9); + Serial.print(", "); + Serial.print(pt/pr, 7); + Serial.print(", "); + while(!rms1.available() || !rms2.available() ) Serial.print(rms2.available() ); + float pSig = 20.0f*log10f(rms1.read()); + float pNoise = 20.0f*log10f(rms2.read()); + Serial.print(pSig, 3); + Serial.print(", "); + Serial.print(pNoise, 3); + Serial.print(", "); + Serial.println(pSig - pNoise, 3); + } + +bool waitTone2(void) + { + unsigned long int t; + t=micros(); + while(1) { + if(toneDet1.available()) return true; + if( (micros()-t) > 1000000UL) return false; + } + } diff --git a/examples/FMtoneCTCSS/ScreenOutputpTonepRef.gif b/examples/FMtoneCTCSS/ScreenOutputpTonepRef.gif new file mode 100644 index 0000000000000000000000000000000000000000..c93a6c7a3c543a5165f03dae168c7a4d466d37ed GIT binary patch literal 52281 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

KC4eMNUBC*n<1DiR}AA@nM!LJUj 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�eWh(!QhigkC7!7fbiLMg$5= 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