define nxdn tx impulse response
This commit is contained in:
parent
6f02fc63cc
commit
92ba1df2c0
|
@ -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):
|
||||||
|
|
Loading…
Reference in New Issue