define nxdn tx impulse response

This commit is contained in:
Max 2020-02-23 20:25:49 -05:00
parent 6f02fc63cc
commit 92ba1df2c0
1 changed files with 14 additions and 3 deletions

View File

@ -94,7 +94,7 @@ def transfer_function_dmr(symbol_rate=_def_symbol_rate):
xfer = np.sqrt(xfer) # root cosine xfer = np.sqrt(xfer) # root cosine
return xfer return xfer
def transfer_function_nxdn(symbol_rate=_def_symbol_rate): def _transfer_function_nxdn(symbol_rate, modulator=False):
assert symbol_rate == 2400 or symbol_rate == 4800 assert symbol_rate == 2400 or symbol_rate == 4800
T = 1.0 / symbol_rate T = 1.0 / symbol_rate
a = 0.2 # rolloff a = 0.2 # rolloff
@ -114,12 +114,23 @@ def transfer_function_nxdn(symbol_rate=_def_symbol_rate):
if x == 0 or sin(x) == 0: if x == 0 or sin(x) == 0:
df = 1.0 df = 1.0
else: else:
if modulator:
df = sin(x) / x
else: # rx mode: demodulator
df = x / sin(x) df = x / sin(x)
else: else:
df = 2.0 df = 0.0
xfer.append(hf * df) xfer.append(hf * df)
return xfer return xfer
# rx / demod case
def transfer_function_nxdn(symbol_rate=_def_symbol_rate):
return _transfer_function_nxdn(symbol_rate)
# tx / modulator case
def transfer_function_nxdn_tx(symbol_rate=_def_symbol_rate):
return _transfer_function_nxdn(symbol_rate, modulator=True)
class c4fm_taps(object): class c4fm_taps(object):
"""Generate filter coefficients as per P25 C4FM spec""" """Generate filter coefficients as per P25 C4FM spec"""
def __init__(self, filter_gain = 1.0, sample_rate=_def_output_sample_rate, symbol_rate=_def_symbol_rate, span=_def_span, generator=transfer_function_tx): def __init__(self, filter_gain = 1.0, sample_rate=_def_output_sample_rate, symbol_rate=_def_symbol_rate, span=_def_span, generator=transfer_function_tx):