Replace RRC filter taps, update M17 testsuite
RRC filter taps have been replaced with the ones generated by Wojciech, a new baseband for the M17 demodulation testsuite has been generated, using OpenRTX itself and some further minor changes. TG-81
This commit is contained in:
parent
3163dd49d7
commit
4b498689f5
|
|
@ -36,7 +36,7 @@ namespace M17
|
||||||
/*
|
/*
|
||||||
* Coefficients for M17 RRC filter
|
* Coefficients for M17 RRC filter
|
||||||
*/
|
*/
|
||||||
extern const std::array<float, 79> rrc_taps;
|
extern const std::array<float, 81> rrc_taps;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FIR implementation of the RRC filter for baseband audio generation.
|
* FIR implementation of the RRC filter for baseband audio generation.
|
||||||
|
|
|
||||||
|
|
@ -26,34 +26,34 @@ namespace M17
|
||||||
/*
|
/*
|
||||||
* Coefficients for M17 RRC filter for 48KHz sample rate
|
* Coefficients for M17 RRC filter for 48KHz sample rate
|
||||||
*/
|
*/
|
||||||
const std::array<float, 79> rrc_taps = {
|
const std::array<float, 81> rrc_taps = {
|
||||||
-0.009265784007800534, -0.006136551625729697, -0.001125978562075172,
|
-0.003195702904062073, -0.002930279157647190, -0.001940667871554463,
|
||||||
0.004891777252042491, 0.01071805138282269, 0.01505751553351295,
|
-0.000356087678023658, 0.001547011339077758, 0.003389554791179751,
|
||||||
0.01679337935001369, 0.015256245142156299, 0.01042830577908502,
|
0.004761898604225673, 0.005310860846138910, 0.004824746306020221,
|
||||||
0.003031522725559901, -0.0055333532968188165, -0.013403099825723372,
|
0.003297923526848786, 0.000958710871218619, -0.001749908029791816,
|
||||||
-0.018598682349642525, -0.01944761739590459, -0.015005271935951746,
|
-0.004238694106631223, -0.005881783042101693, -0.006150256456781309,
|
||||||
-0.0053887880354343935, 0.008056525910253532, 0.022816244158307273,
|
-0.004745376707651645, -0.001704189656473565, 0.002547854551539951,
|
||||||
0.035513467692208076, 0.04244131815783876, 0.04025481153629372,
|
0.007215575568844704, 0.011231038205363532, 0.013421952197060707,
|
||||||
0.02671818654865632, 0.0013810216516704976, -0.03394615682795165,
|
0.012730475385624438, 0.008449554307303753, 0.000436744366018287,
|
||||||
-0.07502635967975885, -0.11540977897637611, -0.14703962203941534,
|
-0.010735380379191660, -0.023726883538258272, -0.036498030780605324,
|
||||||
-0.16119995609538576, -0.14969512896336504, -0.10610329539459686,
|
-0.046500883189991064, -0.050979050575999614, -0.047340680079891187,
|
||||||
-0.026921412469634916, 0.08757875030779196, 0.23293327870303457,
|
-0.033554880492651755, -0.008513823955725943, 0.027696543159614194,
|
||||||
0.4006012210123992, 0.5786324696325503, 0.7528286479934068,
|
0.073664520037517042, 0.126689053778116234, 0.182990955139333916,
|
||||||
0.908262741447522, 1.0309661131633199, 1.1095611856548013,
|
0.238080025892859704, 0.287235637987091563, 0.326040247765297220,
|
||||||
1.1366197723675815, 1.1095611856548013, 1.0309661131633199,
|
0.350895727088112619, 0.359452932027607974, 0.350895727088112619,
|
||||||
0.908262741447522, 0.7528286479934068, 0.5786324696325503,
|
0.326040247765297220, 0.287235637987091563, 0.238080025892859704,
|
||||||
0.4006012210123992, 0.23293327870303457, 0.08757875030779196,
|
0.182990955139333916, 0.126689053778116234, 0.073664520037517042,
|
||||||
-0.026921412469634916, -0.10610329539459686, -0.14969512896336504,
|
0.027696543159614194, -0.008513823955725943, -0.033554880492651755,
|
||||||
-0.16119995609538576, -0.14703962203941534, -0.11540977897637611,
|
-0.047340680079891187, -0.050979050575999614, -0.046500883189991064,
|
||||||
-0.07502635967975885, -0.03394615682795165, 0.0013810216516704976,
|
-0.036498030780605324, -0.023726883538258272, -0.010735380379191660,
|
||||||
0.02671818654865632, 0.04025481153629372, 0.04244131815783876,
|
0.000436744366018287, 0.008449554307303753, 0.012730475385624438,
|
||||||
0.035513467692208076, 0.022816244158307273, 0.008056525910253532,
|
0.013421952197060707, 0.011231038205363532, 0.007215575568844704,
|
||||||
-0.0053887880354343935, -0.015005271935951746, -0.01944761739590459,
|
0.002547854551539951, -0.001704189656473565, -0.004745376707651645,
|
||||||
-0.018598682349642525, -0.013403099825723372, -0.0055333532968188165,
|
-0.006150256456781309, -0.005881783042101693, -0.004238694106631223,
|
||||||
0.003031522725559901, 0.01042830577908502, 0.015256245142156299,
|
-0.001749908029791816, 0.000958710871218619, 0.003297923526848786,
|
||||||
0.01679337935001369, 0.01505751553351295, 0.01071805138282269,
|
0.004824746306020221, 0.005310860846138910, 0.004761898604225673,
|
||||||
0.004891777252042491, -0.001125978562075172, -0.006136551625729697,
|
0.003389554791179751, 0.001547011339077758, -0.000356087678023658,
|
||||||
-0.009265784007800534
|
-0.001940667871554463, -0.002930279157647190, -0.003195702904062073,
|
||||||
};
|
};
|
||||||
|
|
||||||
Fir< std::tuple_size< decltype(rrc_taps) >::value > rrc(rrc_taps);
|
Fir< std::tuple_size< decltype(rrc_taps) >::value > rrc(rrc_taps);
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ void M17Demodulator::stopBasebandSampling()
|
||||||
|
|
||||||
void M17Demodulator::resetCorrelationStats() {
|
void M17Demodulator::resetCorrelationStats() {
|
||||||
conv_ema = 0.0f;
|
conv_ema = 0.0f;
|
||||||
conv_emvar = 10000000000.0f;
|
conv_emvar = 1000000000.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import pandas as pd
|
||||||
from matplotlib import pyplot as plt
|
from matplotlib import pyplot as plt
|
||||||
|
|
||||||
plt.rcParams["figure.autolayout"] = True
|
plt.rcParams["figure.autolayout"] = True
|
||||||
df = pd.read_csv("./build_linux/M17_clock_recovery_output_1.csv")
|
df = pd.read_csv("./build_linux/M17_demodulator_output_1.csv")
|
||||||
print("Contents in csv file:\n", df)
|
print("Contents in csv file:\n", df)
|
||||||
#plt.plot(df.index, df.Input)
|
#plt.plot(df.index, df.Input)
|
||||||
#plt.plot(df.index, df.RRCSignal)
|
#plt.plot(df.index, df.RRCSignal)
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ int main()
|
||||||
for(size_t i = 0; i < baseband_samples; i++)
|
for(size_t i = 0; i < baseband_samples; i++)
|
||||||
{
|
{
|
||||||
float elem = static_cast< float >(baseband_buffer[i]);
|
float elem = static_cast< float >(baseband_buffer[i]);
|
||||||
filtered_buffer[i] = static_cast< int16_t >(M17::rrc(0.10 * elem));
|
filtered_buffer[i] = static_cast< int16_t >(M17::rrc(elem));
|
||||||
}
|
}
|
||||||
fwrite(filtered_buffer, baseband_samples, 2, baseband_out);
|
fwrite(filtered_buffer, baseband_samples, 2, baseband_out);
|
||||||
fclose(baseband_out);
|
fclose(baseband_out);
|
||||||
|
|
@ -89,7 +89,7 @@ int main()
|
||||||
m17Demodulator.baseband = baseband;
|
m17Demodulator.baseband = baseband;
|
||||||
baseband.data = filtered_buffer;
|
baseband.data = filtered_buffer;
|
||||||
|
|
||||||
FILE *output_csv_1 = fopen("M17_clock_recovery_output_1.csv", "w");
|
FILE *output_csv_1 = fopen("M17_demodulator_output_1.csv", "w");
|
||||||
fprintf(output_csv_1, "Input,RRCSignal,LSFConvolution,FrameConvolution,Stddev\n");
|
fprintf(output_csv_1, "Input,RRCSignal,LSFConvolution,FrameConvolution,Stddev\n");
|
||||||
// Test convolution
|
// Test convolution
|
||||||
m17Demodulator.resetCorrelationStats();
|
m17Demodulator.resetCorrelationStats();
|
||||||
|
|
@ -139,7 +139,7 @@ int main()
|
||||||
} while (syncword.index != -1);
|
} while (syncword.index != -1);
|
||||||
fclose(syncword_ref);
|
fclose(syncword_ref);
|
||||||
|
|
||||||
FILE *output_csv_2 = fopen("M17_clock_recovery_output_2.csv", "w");
|
FILE *output_csv_2 = fopen("M17_demodulator_output_2.csv", "w");
|
||||||
fprintf(output_csv_2, "RRCSignal,SyncDetect,QntMax,QntMin,Symbol\n");
|
fprintf(output_csv_2, "RRCSignal,SyncDetect,QntMax,QntMin,Symbol\n");
|
||||||
uint32_t detect = 0, symbol = 0;
|
uint32_t detect = 0, symbol = 0;
|
||||||
offset = 0;
|
offset = 0;
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,500 +1,2 @@
|
||||||
1956
|
1957
|
||||||
3876
|
|
||||||
5797
|
|
||||||
7717
|
|
||||||
9637
|
|
||||||
10718
|
|
||||||
11557
|
|
||||||
13158
|
|
||||||
13477
|
|
||||||
15397
|
|
||||||
17318
|
|
||||||
19237
|
|
||||||
21157
|
|
||||||
23077
|
|
||||||
24997
|
|
||||||
26109
|
|
||||||
26917
|
|
||||||
28837
|
|
||||||
29618
|
|
||||||
30757
|
|
||||||
32677
|
|
||||||
34597
|
|
||||||
36517
|
|
||||||
37258
|
|
||||||
38437
|
|
||||||
40357
|
|
||||||
42277
|
|
||||||
44197
|
|
||||||
46117
|
|
||||||
48037
|
|
||||||
49957
|
|
||||||
51877
|
|
||||||
53797
|
|
||||||
55718
|
|
||||||
57637
|
|
||||||
59557
|
|
||||||
61477
|
|
||||||
63397
|
|
||||||
65317
|
|
||||||
67237
|
|
||||||
69157
|
|
||||||
71077
|
|
||||||
72998
|
|
||||||
74918
|
|
||||||
76837
|
|
||||||
78757
|
|
||||||
80677
|
|
||||||
82597
|
|
||||||
84517
|
|
||||||
86437
|
|
||||||
88357
|
|
||||||
90277
|
|
||||||
92197
|
|
||||||
94117
|
|
||||||
96037
|
|
||||||
97957
|
|
||||||
99877
|
|
||||||
101797
|
|
||||||
103716
|
|
||||||
105637
|
|
||||||
106839
|
|
||||||
107557
|
|
||||||
109477
|
|
||||||
111397
|
|
||||||
113316
|
|
||||||
115237
|
|
||||||
117157
|
|
||||||
119077
|
|
||||||
120997
|
|
||||||
122917
|
|
||||||
124837
|
|
||||||
126757
|
|
||||||
127859
|
|
||||||
128677
|
|
||||||
130597
|
|
||||||
132517
|
|
||||||
134437
|
|
||||||
136357
|
|
||||||
138277
|
|
||||||
140197
|
|
||||||
142117
|
|
||||||
144037
|
|
||||||
145957
|
|
||||||
147878
|
|
||||||
149797
|
|
||||||
151717
|
|
||||||
153637
|
|
||||||
155557
|
|
||||||
157477
|
|
||||||
159397
|
|
||||||
160288
|
|
||||||
161317
|
|
||||||
163237
|
|
||||||
165157
|
|
||||||
167077
|
|
||||||
168997
|
|
||||||
170917
|
|
||||||
172837
|
|
||||||
174757
|
|
||||||
176677
|
|
||||||
178597
|
|
||||||
180377
|
|
||||||
180517
|
|
||||||
182437
|
|
||||||
184357
|
|
||||||
186277
|
|
||||||
188197
|
|
||||||
190118
|
|
||||||
191897
|
|
||||||
192037
|
|
||||||
193957
|
|
||||||
195877
|
|
||||||
197797
|
|
||||||
199717
|
|
||||||
201637
|
|
||||||
203557
|
|
||||||
205477
|
|
||||||
207397
|
|
||||||
209317
|
|
||||||
211237
|
|
||||||
213157
|
|
||||||
215077
|
|
||||||
216998
|
|
||||||
218917
|
|
||||||
220837
|
|
||||||
222757
|
|
||||||
224259
|
|
||||||
224677
|
|
||||||
226597
|
|
||||||
228517
|
|
||||||
230437
|
|
||||||
232357
|
|
||||||
234277
|
|
||||||
236197
|
|
||||||
238117
|
|
||||||
240037
|
|
||||||
241957
|
|
||||||
243877
|
|
||||||
245797
|
|
||||||
247717
|
|
||||||
249499
|
|
||||||
249637
|
|
||||||
251557
|
|
||||||
253477
|
|
||||||
255397
|
|
||||||
257317
|
|
||||||
259237
|
|
||||||
261157
|
|
||||||
263077
|
|
||||||
264997
|
|
||||||
266917
|
|
||||||
268837
|
|
||||||
270337
|
|
||||||
270757
|
|
||||||
272676
|
|
||||||
274597
|
|
||||||
276517
|
|
||||||
278437
|
|
||||||
280357
|
|
||||||
282277
|
|
||||||
284197
|
|
||||||
286117
|
|
||||||
288037
|
|
||||||
289957
|
|
||||||
291877
|
|
||||||
292957
|
|
||||||
293797
|
|
||||||
295717
|
|
||||||
297637
|
|
||||||
299557
|
|
||||||
301477
|
|
||||||
303397
|
|
||||||
305317
|
|
||||||
306937
|
|
||||||
307237
|
|
||||||
309157
|
|
||||||
311077
|
|
||||||
312997
|
|
||||||
314917
|
|
||||||
316837
|
|
||||||
318757
|
|
||||||
320677
|
|
||||||
322597
|
|
||||||
324517
|
|
||||||
326437
|
|
||||||
328279
|
|
||||||
328359
|
|
||||||
330277
|
|
||||||
332197
|
|
||||||
334117
|
|
||||||
336037
|
|
||||||
337957
|
|
||||||
339877
|
|
||||||
341797
|
|
||||||
343717
|
|
||||||
344498
|
|
||||||
345637
|
|
||||||
347557
|
|
||||||
349477
|
|
||||||
351397
|
|
||||||
353317
|
|
||||||
355237
|
|
||||||
357157
|
|
||||||
359077
|
|
||||||
360998
|
|
||||||
362918
|
|
||||||
364837
|
|
||||||
366757
|
|
||||||
368677
|
|
||||||
370597
|
|
||||||
372517
|
|
||||||
374437
|
|
||||||
376356
|
|
||||||
378277
|
|
||||||
380197
|
|
||||||
382117
|
|
||||||
384037
|
|
||||||
385957
|
|
||||||
387877
|
|
||||||
389797
|
|
||||||
391716
|
|
||||||
393637
|
|
||||||
395557
|
|
||||||
397477
|
|
||||||
399397
|
|
||||||
401317
|
|
||||||
403237
|
|
||||||
405157
|
|
||||||
407077
|
|
||||||
407238
|
|
||||||
408997
|
|
||||||
410917
|
|
||||||
412837
|
|
||||||
414757
|
|
||||||
416677
|
|
||||||
418597
|
|
||||||
420517
|
|
||||||
422437
|
|
||||||
424357
|
|
||||||
426277
|
|
||||||
428197
|
|
||||||
430117
|
|
||||||
432037
|
|
||||||
433957
|
|
||||||
435877
|
|
||||||
437797
|
|
||||||
439717
|
|
||||||
441637
|
|
||||||
443558
|
|
||||||
445477
|
|
||||||
447397
|
|
||||||
449317
|
|
||||||
451237
|
|
||||||
453157
|
|
||||||
455077
|
|
||||||
456696
|
|
||||||
456996
|
|
||||||
458917
|
|
||||||
460837
|
|
||||||
462757
|
|
||||||
464677
|
|
||||||
466597
|
|
||||||
468297
|
|
||||||
468517
|
|
||||||
470438
|
|
||||||
472357
|
|
||||||
474277
|
|
||||||
476197
|
|
||||||
478117
|
|
||||||
480037
|
|
||||||
481957
|
|
||||||
483877
|
|
||||||
485797
|
|
||||||
487717
|
|
||||||
489637
|
|
||||||
491557
|
|
||||||
493477
|
|
||||||
495397
|
|
||||||
497317
|
|
||||||
499237
|
|
||||||
501158
|
|
||||||
503077
|
|
||||||
504997
|
|
||||||
506917
|
|
||||||
508837
|
|
||||||
510757
|
|
||||||
512677
|
|
||||||
514597
|
|
||||||
516517
|
|
||||||
518437
|
|
||||||
520357
|
|
||||||
522278
|
|
||||||
524197
|
|
||||||
526117
|
|
||||||
527028
|
|
||||||
528037
|
|
||||||
529957
|
|
||||||
531877
|
|
||||||
533797
|
|
||||||
535717
|
|
||||||
537637
|
|
||||||
539557
|
|
||||||
541477
|
|
||||||
543397
|
|
||||||
545318
|
|
||||||
547237
|
|
||||||
549157
|
|
||||||
551077
|
|
||||||
552997
|
|
||||||
554917
|
|
||||||
556837
|
|
||||||
558757
|
|
||||||
560677
|
|
||||||
562597
|
|
||||||
564517
|
|
||||||
566437
|
|
||||||
568357
|
|
||||||
570277
|
|
||||||
572197
|
|
||||||
574117
|
|
||||||
576037
|
|
||||||
577957
|
|
||||||
579877
|
|
||||||
581797
|
|
||||||
583717
|
|
||||||
585637
|
|
||||||
587557
|
|
||||||
589477
|
|
||||||
591397
|
|
||||||
593317
|
|
||||||
595237
|
|
||||||
597157
|
|
||||||
599077
|
|
||||||
600997
|
|
||||||
602917
|
|
||||||
604837
|
|
||||||
606757
|
|
||||||
608676
|
|
||||||
610597
|
|
||||||
612517
|
|
||||||
614437
|
|
||||||
616358
|
|
||||||
618277
|
|
||||||
620197
|
|
||||||
622117
|
|
||||||
624037
|
|
||||||
625957
|
|
||||||
627457
|
|
||||||
627877
|
|
||||||
629797
|
|
||||||
631717
|
|
||||||
633637
|
|
||||||
635557
|
|
||||||
637477
|
|
||||||
639397
|
|
||||||
639599
|
|
||||||
641317
|
|
||||||
643237
|
|
||||||
645157
|
|
||||||
647077
|
|
||||||
648997
|
|
||||||
650917
|
|
||||||
652837
|
|
||||||
654757
|
|
||||||
656677
|
|
||||||
658597
|
|
||||||
660516
|
|
||||||
662437
|
|
||||||
664357
|
|
||||||
666277
|
|
||||||
668197
|
|
||||||
670117
|
|
||||||
672037
|
|
||||||
673957
|
|
||||||
675878
|
|
||||||
677797
|
|
||||||
679716
|
|
||||||
681637
|
|
||||||
683557
|
|
||||||
685477
|
|
||||||
687397
|
|
||||||
689316
|
|
||||||
691236
|
|
||||||
693157
|
|
||||||
695078
|
|
||||||
696996
|
|
||||||
698917
|
|
||||||
700837
|
|
||||||
702757
|
|
||||||
704677
|
|
||||||
706597
|
|
||||||
708517
|
|
||||||
708649
|
|
||||||
709738
|
|
||||||
710437
|
|
||||||
712357
|
|
||||||
714277
|
|
||||||
716197
|
|
||||||
718117
|
|
||||||
720037
|
|
||||||
721957
|
|
||||||
723877
|
|
||||||
725797
|
|
||||||
727717
|
|
||||||
729637
|
|
||||||
731558
|
|
||||||
733477
|
|
||||||
735397
|
|
||||||
737317
|
|
||||||
739237
|
|
||||||
741157
|
|
||||||
743077
|
|
||||||
744997
|
|
||||||
746917
|
|
||||||
748837
|
|
||||||
750756
|
|
||||||
752677
|
|
||||||
754597
|
|
||||||
756517
|
|
||||||
758437
|
|
||||||
760357
|
|
||||||
762276
|
|
||||||
764197
|
|
||||||
766117
|
|
||||||
768037
|
|
||||||
769958
|
|
||||||
771878
|
|
||||||
773797
|
|
||||||
775717
|
|
||||||
777637
|
|
||||||
779556
|
|
||||||
781477
|
|
||||||
783397
|
|
||||||
785317
|
|
||||||
787237
|
|
||||||
789157
|
|
||||||
791077
|
|
||||||
792997
|
|
||||||
794917
|
|
||||||
796837
|
|
||||||
798757
|
|
||||||
800677
|
|
||||||
802597
|
|
||||||
804517
|
|
||||||
806437
|
|
||||||
808357
|
|
||||||
810277
|
|
||||||
812198
|
|
||||||
814117
|
|
||||||
816037
|
|
||||||
817957
|
|
||||||
819877
|
|
||||||
821797
|
|
||||||
823717
|
|
||||||
825637
|
|
||||||
827557
|
|
||||||
829477
|
|
||||||
831397
|
|
||||||
833317
|
|
||||||
835237
|
|
||||||
837157
|
|
||||||
838878
|
|
||||||
839077
|
|
||||||
840997
|
|
||||||
842917
|
|
||||||
844837
|
|
||||||
846757
|
|
||||||
848677
|
|
||||||
850597
|
|
||||||
852517
|
|
||||||
854437
|
|
||||||
856357
|
|
||||||
858277
|
|
||||||
860197
|
|
||||||
862118
|
|
||||||
864037
|
|
||||||
865958
|
|
||||||
867876
|
|
||||||
869797
|
|
||||||
871717
|
|
||||||
873637
|
|
||||||
875557
|
|
||||||
877477
|
|
||||||
879397
|
|
||||||
881317
|
|
||||||
883237
|
|
||||||
885157
|
|
||||||
887077
|
|
||||||
888997
|
|
||||||
890917
|
|
||||||
892837
|
|
||||||
894757
|
|
||||||
896677
|
|
||||||
898597
|
|
||||||
900517
|
|
||||||
902438
|
|
||||||
904357
|
|
||||||
905688
|
|
||||||
906276
|
|
||||||
-1
|
-1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue