Revision d36e9ce1 gr-qtgui/apps/qt_digital.py
| b/gr-qtgui/apps/qt_digital.py | ||
|---|---|---|
| 20 | 20 |
# Boston, MA 02110-1301, USA. |
| 21 | 21 |
# |
| 22 | 22 |
|
| 23 |
from gnuradio import gr, blks2
|
|
| 23 |
from gnuradio import gr, digital
|
|
| 24 | 24 |
from gnuradio import eng_notation |
| 25 | 25 |
import sys |
| 26 | 26 |
|
| ... | ... | |
| 60 | 60 |
self.set_time_offset(self.fg.timing_offset()) |
| 61 | 61 |
|
| 62 | 62 |
self.set_gain_mu(self.fg.rx_gain_mu()) |
| 63 |
self.set_alpha(self.fg.rx_alpha())
|
|
| 63 |
self.set_loop_bw(self.fg.loop_bw())
|
|
| 64 | 64 |
|
| 65 | 65 |
# Add the qtsnk widgets to the hlayout box |
| 66 | 66 |
self.gui.sinkLayout.addWidget(snkTx) |
| ... | ... | |
| 146 | 146 |
def set_gain_mu(self, gain): |
| 147 | 147 |
self.gui.gainMuEdit.setText(QtCore.QString("%1").arg(gain))
|
| 148 | 148 |
|
| 149 |
def set_alpha(self, alpha):
|
|
| 150 |
self.gui.alphaEdit.setText(QtCore.QString("%1").arg(alpha))
|
|
| 149 |
def set_loop_bw(self, bw):
|
|
| 150 |
self.gui.alphaEdit.setText(QtCore.QString("%1").arg(bw))
|
|
| 151 | 151 |
|
| 152 | 152 |
def alphaEditText(self): |
| 153 | 153 |
try: |
| 154 |
alpha = self.gui.alphaEdit.text().toDouble()[0]
|
|
| 155 |
self.fg.set_rx_alpha(alpha)
|
|
| 154 |
bw = self.gui.alphaEdit.text().toDouble()[0]
|
|
| 155 |
self.fg.set_loop_bw(bw)
|
|
| 156 | 156 |
except RuntimeError: |
| 157 | 157 |
pass |
| 158 | 158 |
|
| ... | ... | |
| 174 | 174 |
|
| 175 | 175 |
self.sps = 2 |
| 176 | 176 |
self.excess_bw = 0.35 |
| 177 |
self.gray_code = True
|
|
| 177 |
self.gray_code = digital.mod_codes.GRAY_CODE
|
|
| 178 | 178 |
|
| 179 | 179 |
fftsize = 2048 |
| 180 | 180 |
|
| 181 | 181 |
self.data = scipy.random.randint(0, 255, 1000) |
| 182 | 182 |
self.src = gr.vector_source_b(self.data.tolist(), True) |
| 183 |
self.mod = blks2.dqpsk_mod(self.sps, self.excess_bw, self.gray_code, False, False) |
|
| 183 |
self.mod = digital.dqpsk_mod(self.gray_code, |
|
| 184 |
samples_per_symbol=self.sps, |
|
| 185 |
excess_bw=self.excess_bw, |
|
| 186 |
verbose=False, log=False) |
|
| 184 | 187 |
|
| 185 | 188 |
self.rrctaps = gr.firdes.root_raised_cosine(1, self.sps, 1, self.excess_bw, 21) |
| 186 | 189 |
self.rx_rrc = gr.fir_filter_ccf(1, self.rrctaps) |
| ... | ... | |
| 194 | 197 |
self.gain_omega = .25 * self.gain_mu * self.gain_mu |
| 195 | 198 |
self.omega_rel_lim = 0.05 |
| 196 | 199 |
|
| 197 |
self.alpha = 0.15 |
|
| 198 |
self.beta = 0.25 * self.alpha * self.alpha |
|
| 200 |
self._loop_bw = 2*scipy.pi/100.0 |
|
| 199 | 201 |
self.fmin = -1000/self.sample_rate() |
| 200 | 202 |
self.fmax = 1000/self.sample_rate() |
| 201 | 203 |
|
| 202 |
self.receiver = gr.mpsk_receiver_cc(self.arity, 0,
|
|
| 203 |
self.alpha, self.beta,
|
|
| 204 |
self.fmin, self.fmax, |
|
| 205 |
self.mu, self.gain_mu, |
|
| 206 |
self.omega, self.gain_omega, |
|
| 207 |
self.omega_rel_lim) |
|
| 204 |
self.receiver = digital.mpsk_receiver_cc(self.arity, 0,
|
|
| 205 |
self._loop_bw,
|
|
| 206 |
self.fmin, self.fmax,
|
|
| 207 |
self.mu, self.gain_mu,
|
|
| 208 |
self.omega, self.gain_omega,
|
|
| 209 |
self.omega_rel_lim)
|
|
| 208 | 210 |
|
| 209 | 211 |
|
| 210 | 212 |
self.snr_dB = 15 |
| ... | ... | |
| 288 | 290 |
self.receiver.set_gain_mu(self.gain_mu) |
| 289 | 291 |
self.receiver.set_gain_omega(self.gain_omega) |
| 290 | 292 |
|
| 291 |
def rx_alpha(self): |
|
| 292 |
return self.alpha |
|
| 293 |
|
|
| 294 |
def rx_beta(self): |
|
| 295 |
return self.beta |
|
| 296 |
|
|
| 297 |
def set_rx_alpha(self, alpha): |
|
| 298 |
self.alpha = alpha |
|
| 299 |
self.beta = .25 * self.alpha * self.alpha |
|
| 300 |
self.receiver.set_alpha(self.alpha) |
|
| 301 |
self.receiver.set_beta(self.beta) |
|
| 293 |
def set_loop_bw(self, loop_bw): |
|
| 294 |
self._loop_bw = bw |
|
| 295 |
self.receiver.set_loop_bw(self._loop_bw) |
|
| 302 | 296 |
|
| 297 |
def loop_bw(self): |
|
| 298 |
return self._loop_bw |
|
| 303 | 299 |
|
| 304 | 300 |
if __name__ == "__main__": |
| 305 | 301 |
tb = my_top_block(); |
Also available in: Unified diff