kopia lustrzana https://github.com/projecthorus/horusdemodlib
rodzic
f15104318e
commit
332ba71aa3
|
@ -1 +1 @@
|
||||||
__version__ = "0.1.16"
|
__version__ = "0.1.17"
|
||||||
|
|
|
@ -333,6 +333,11 @@ class HorusLib():
|
||||||
)
|
)
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
def set_estimator_limits(self, lower: float, upper: float):
|
||||||
|
""" Update the modems internal frequency estimator limits """
|
||||||
|
self.c_lib.horus_set_freq_est_limits(self.hstates, c_float(lower), c_float(upper))
|
||||||
|
|
||||||
|
|
||||||
def add_samples(self, samples: bytes):
|
def add_samples(self, samples: bytes):
|
||||||
""" Add samples to a input buffer, to pass on to demodulate when we have nin samples """
|
""" Add samples to a input buffer, to pass on to demodulate when we have nin samples """
|
||||||
|
|
||||||
|
@ -363,9 +368,10 @@ class HorusLib():
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
if len(sys.argv) != 3:
|
if len(sys.argv) != 4:
|
||||||
raise ArgumentError("Usage python3 -m horusdemodlib.demod mode filename")
|
raise ArgumentError("Usage python3 -m horusdemodlib.demod mode filename sample_rate")
|
||||||
filename = sys.argv[2]
|
filename = sys.argv[2]
|
||||||
|
rate = int(sys.argv[3])
|
||||||
|
|
||||||
if sys.argv[1] == 'rtty7n2':
|
if sys.argv[1] == 'rtty7n2':
|
||||||
mode = Mode.RTTY_7N2
|
mode = Mode.RTTY_7N2
|
||||||
|
@ -394,7 +400,8 @@ if __name__ == "__main__":
|
||||||
format="%(asctime)s %(levelname)s: %(message)s", level=logging.DEBUG
|
format="%(asctime)s %(levelname)s: %(message)s", level=logging.DEBUG
|
||||||
)
|
)
|
||||||
|
|
||||||
with HorusLib(mode=mode, verbose=False, callback=frame_callback, sample_rate=48000, rate=300) as horus:
|
with HorusLib(mode=mode, verbose=False, callback=frame_callback, sample_rate=rate, rate=100) as horus:
|
||||||
|
#horus.set_estimator_limits(10.0, 3000.0)
|
||||||
with open(filename, "rb") as f:
|
with open(filename, "rb") as f:
|
||||||
while True:
|
while True:
|
||||||
# Fixed read size - 2000 samples
|
# Fixed read size - 2000 samples
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "horusdemodlib"
|
name = "horusdemodlib"
|
||||||
version = "0.1.16"
|
version = "0.1.17"
|
||||||
description = "Project Horus HAB Telemetry Demodulators"
|
description = "Project Horus HAB Telemetry Demodulators"
|
||||||
authors = ["Mark Jessop"]
|
authors = ["Mark Jessop"]
|
||||||
license = "LGPL-2.1-or-later"
|
license = "LGPL-2.1-or-later"
|
||||||
|
|
|
@ -628,11 +628,12 @@ void fsk_demod_core(struct FSK *fsk, uint8_t rx_bits[], float rx_sd[], COMP fsk_
|
||||||
modem_probe_samp_f("t_f_est",fsk->f_est,M);
|
modem_probe_samp_f("t_f_est",fsk->f_est,M);
|
||||||
#endif
|
#endif
|
||||||
float *f_est;
|
float *f_est;
|
||||||
if (fsk->freq_est_type)
|
|
||||||
|
if (fsk->freq_est_type){
|
||||||
f_est = fsk->f2_est;
|
f_est = fsk->f2_est;
|
||||||
else
|
}else{
|
||||||
f_est = fsk->f_est;
|
f_est = fsk->f_est;
|
||||||
|
}
|
||||||
/* update filter (integrator) memory by shifting in nin samples */
|
/* update filter (integrator) memory by shifting in nin samples */
|
||||||
for(m=0; m<M; m++) {
|
for(m=0; m<M; m++) {
|
||||||
for(i=0,j=Nmem-nold; i<nold; i++,j++)
|
for(i=0,j=Nmem-nold; i<nold; i++,j++)
|
||||||
|
@ -1003,6 +1004,7 @@ void fsk_get_demod_stats(struct FSK *fsk, struct MODEM_STATS *stats){
|
||||||
stats->neyetr = fsk->stats->neyetr;
|
stats->neyetr = fsk->stats->neyetr;
|
||||||
memcpy(stats->rx_eye, fsk->stats->rx_eye, sizeof(stats->rx_eye));
|
memcpy(stats->rx_eye, fsk->stats->rx_eye, sizeof(stats->rx_eye));
|
||||||
memcpy(stats->f_est, fsk->stats->f_est, fsk->mode*sizeof(float));
|
memcpy(stats->f_est, fsk->stats->f_est, fsk->mode*sizeof(float));
|
||||||
|
|
||||||
|
|
||||||
/* these fields not used for FSK so set to something sensible */
|
/* these fields not used for FSK so set to something sensible */
|
||||||
|
|
||||||
|
|
|
@ -921,7 +921,12 @@ void horus_get_modem_extended_stats (struct horus *hstates, struct MODEM_STATS *
|
||||||
|
|
||||||
assert(hstates->mFSK <= MODEM_STATS_MAX_F_EST);
|
assert(hstates->mFSK <= MODEM_STATS_MAX_F_EST);
|
||||||
for (i=0; i<hstates->mFSK; i++) {
|
for (i=0; i<hstates->mFSK; i++) {
|
||||||
stats->f_est[i] = hstates->fsk->f_est[i];
|
// Grab the appropriate frequency estimator data.
|
||||||
|
if (hstates->fsk->freq_est_type){
|
||||||
|
stats->f_est[i] = hstates->fsk->f2_est[i];
|
||||||
|
} else {
|
||||||
|
stats->f_est[i] = hstates->fsk->f_est[i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue