hi everyone,

```
I am using the programs of DIGITAL-BERT folder to see the bit
```

error

rate pattern versus the SNR. The given programs are for BPSK scheme. I

tried

to change it for QPSK Scheme. But seems that I did not do it right. I am

giving the modified code in the programs . Please help me

out…Thanking

in advance…

*1) transmit_path.py in /digital-bert/ folder.*

self._bits = gr.vector_source_b([1,], True) # Infinite stream of

ones

self._scrambler = gr.scrambler_bb(0x8A, 0x7F, 7) # CCSDS 7-bit

scrambler

# Map to constellation

self._constellation = [-1-1j,1-1j,-1+1j,1+1j]

self._mapper = gr.chunks_to_symbols_bc(self._constellation,2)

# Create RRC with specified excess bandwidth

taps = gr.firdes.root_raised_cosine(sps*amplitude, # Gain
sps, # Sampling rate
1.0, # Symbol rate
excess_bw, # Roll-off factor
11*sps) # Number of taps

self._rrc = gr.interp_fir_filter_ccf(sps, # Interpolation rate

taps) # FIR taps

```
# Wire block inputs and outputs
self.connect(self._bits, self._scrambler, self._mapper,
```

self._rrc,

self)

*2)receive_path. py in /digital-bert/ folder*

self._agc = gr.agc_cc(1e-5, 1.0, 1.0, 1.0)

# Create RRC with specified excess bandwidth

taps = gr.firdes.root_raised_cosine(1.0, # Gain

self._sps, # Sampling rate

1.0, # Symbol rate

excess_bw, # Roll-off factor

11*self._sps) # Number of taps

self._rrc = gr.fir_filter_ccf(1, taps)

```
# Create a Costas loop frequency/phase recovery block
print "Costas alpha:", costas_alpha
print "Costas beta:", costas_beta
print "Costas max:", costas_max
self._costas = gr.costas_loop_cc(costas_alpha, # PLL first
```

order

gain

costas_beta, # PLL second

order

gain

costas_max, # Max frequency

offset rad/sample

-costas_max, # Min frequency

offset rad/sample

4) # QPSK

```
# Create a M&M bit synchronization retiming block
mm_mu = 0.5
mm_omega = self._sps
print "MM gain mu:", mm_gain_mu
print "MM gain omega:", mm_gain_omega
print "MM omega limit:", mm_omega_limit
self._mm = gr.clock_recovery_mm_cc(mm_omega, # Initial
```

samples/symbol

mm_gain_omega, # Second

order

gain

mm_mu, # Initial

symbol

phase

mm_gain_mu, # First order

gain

mm_omega_limit) # Maximum

timing

offset

```
# Add an SNR probe on the demodulated constellation
self._snr_probe = gr.probe_mpsk_snr_c(10.0/symbol_rate)
self.connect(self._mm, self._snr_probe)
self._c2r = gr.complex_to_real()
self._slicer = gr.binary_slicer_fb()
self._c2i = gr.complex_to_imag()
self._inter = gr.interleave(gr.sizeof_float*1)
# Descramble BERT sequence. A channel error will create 3
```

incorrect

bits

self._descrambler = gr.descrambler_bb(0x8A, 0x7F, 7) # CCSDS

7-bit

descrambler

```
# Measure BER by the density of 0s in the stream
self._ber = gr.probe_density_b(1.0/symbol_rate)
```

self.connect(self, self._agc, self._rrc, self._costas, self._mm)

self.connect(self._mm,self._c2r)

self.connect(self._mm,self._c2i)

self.connect(self._c2r,(self._inter,0))

self.connect(self._c2i,(self._inter,1))

self.connect(self._inter,self._slicer,self._descrambler,self._ber)

Please help me out.

Amarnath