100% found this document useful (3 votes)
38 views

[FREE PDF sample] Digital Modulations Using Matlab Build Simulation Models From Scratch black White Edition Viswanathan ebooks

Using

Uploaded by

nyamexiani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
38 views

[FREE PDF sample] Digital Modulations Using Matlab Build Simulation Models From Scratch black White Edition Viswanathan ebooks

Using

Uploaded by

nyamexiani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Download Full Version ebook - Visit ebookmeta.

com

Digital Modulations Using Matlab Build Simulation


Models From Scratch black White Edition
Viswanathan

https://ebookmeta.com/product/digital-modulations-using-
matlab-build-simulation-models-from-scratch-black-white-
edition-viswanathan/

OR CLICK HERE

DOWLOAD NOW

Discover More Ebook - Explore Now at ebookmeta.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

Digital Modulations using Python 1st Edition Mathuranathan


Viswanathan

https://ebookmeta.com/product/digital-modulations-using-python-1st-
edition-mathuranathan-viswanathan/

ebookmeta.com

Build a Blockchain from Scratch in Go Lukac

https://ebookmeta.com/product/build-a-blockchain-from-scratch-in-go-
lukac/

ebookmeta.com

Electrical Machine Fundamentals with Numerical Simulation


using MATLAB SIMULINK 1st Edition Atif Iqbal

https://ebookmeta.com/product/electrical-machine-fundamentals-with-
numerical-simulation-using-matlab-simulink-1st-edition-atif-iqbal/

ebookmeta.com

The World Jumper 2nd Edition Marie Hélène Lebeault

https://ebookmeta.com/product/the-world-jumper-2nd-edition-marie-
helene-lebeault/

ebookmeta.com
Dialogic Literary Argumentation in High School Language
Arts Classrooms A Social Perspective for Teaching Learning
and Reading Literature 1st Edition David Bloome
https://ebookmeta.com/product/dialogic-literary-argumentation-in-high-
school-language-arts-classrooms-a-social-perspective-for-teaching-
learning-and-reading-literature-1st-edition-david-bloome/
ebookmeta.com

Dig In 12 Easy Gardening Projects Using Kitchen Scraps 1st


Edition Kari Cornell Jennifer S Larson

https://ebookmeta.com/product/dig-in-12-easy-gardening-projects-using-
kitchen-scraps-1st-edition-kari-cornell-jennifer-s-larson/

ebookmeta.com

Why Budgets Matter Budget Policy and American Politics


Revised and Updated Edition Dennis S. Ippolito

https://ebookmeta.com/product/why-budgets-matter-budget-policy-and-
american-politics-revised-and-updated-edition-dennis-s-ippolito/

ebookmeta.com

Midnight Ice Complete Series Kaitlyn Davis

https://ebookmeta.com/product/midnight-ice-complete-series-kaitlyn-
davis/

ebookmeta.com

All about Dyspraxia Understanding Developmental


Coordination Disorder Kathy Hoopmann

https://ebookmeta.com/product/all-about-dyspraxia-understanding-
developmental-coordination-disorder-kathy-hoopmann/

ebookmeta.com
International Health and Safety at Work Revision Guide For
the NEBOSH International General Certificate in
Occupational Health and Safety 3rd Edition Ed Ferrett
https://ebookmeta.com/product/international-health-and-safety-at-work-
revision-guide-for-the-nebosh-international-general-certificate-in-
occupational-health-and-safety-3rd-edition-ed-ferrett/
ebookmeta.com
Mathuranathan Viswanathan

Digital Modulations using Matlab


Build Simulation Models from Scratch

April 2019

Copyright © 2019 Mathuranathan Viswanathan. All rights reserved.


Copyright © 2019 Mathuranathan Viswanathan

Cover design © 2019 Mathuranathan Viswanathan

Cover art © 2019 Mathuranathan Viswanathan

All rights reserved.

No part of this publication may be reproduced, distributed, or transmitted in any form or by any means,
including photocopying, recording, or other electronic or mechanical methods, without the prior written
permission of the author, except in the case of brief quotations embodied in critical reviews and certain other
noncommercial uses permitted by copyright law. For permission requests, write to

[email protected]
https://www.gaussianwaves.com

ISBN: 9781521493885

First published June 2017

Revised edition April 2019

The author has used his best endeavours to ensure that the URLs for external websites referred in this book
are correct and active at the time of publishing. However, the author bears no responsibility for the referred
websites, and can make no guarantee that a site will remain live or that the content is or will remain
appropriate.
Dedicated to Advaith
Preface

There exist many textbooks that provide an in-depth treatment of various topics in digital modulation tech-
niques. Most of them underscore different theoretical aspects of design and performance analysis of digital
modulation techniques. Only a handful of books provide insight on how these techniques can be modeled and
simulated. Predominantly, such books utilize the sophisticated built-in functions or toolboxes that are already
available in software like Matlab. These built-in functions or toolboxes hide a lot of background computations
from the user thereby making it difficult, especially for a learner, to understand how certain techniques are
actually implemented inside those functions.
In this book, I intend to show how the theoretical aspects of a digital modulation-demodulation system can
be translated into simulation models, using elementary matrix operations in Matlab. Most of the simulation
models shown in this book, will not use any of the inbuilt communication toolbox functions. This provides
an opportunity for a practicing engineer to understand the basic implementation aspects of modeling various
building blocks of a digital modulation system. I intend the book to be used primarily by undergraduate and
graduate students in electrical engineering discipline, who wish to learn the basic implementation aspects of a
modulation demodulation technique. I assume that the reader has a fair understanding on the fundamentals of
programming in Matlab. Readers may consult other textbooks and documentations that cover those topics.
Theoretical aspects of digital modulation techniques will be kept brief. For each topic discussed, a short
theoretical background is provided along with the implementation details in the form of Matlab scripts. The
Matlab scripts carry inline comments intended to help the reader understand the flow of implementation.
As for the topics concerned, only the basic techniques of modulation and demodulation of various digital
modulation techniques are covered. Waveform simulation technique and the complex equivalent baseband
simulation model will be provided on a case-by-case basis. Performance simulations of well known digital
modulation techniques are also provided. Additionally, simulation and performance of receiver impairments
are also provided in a separate chapter.
Chapter 1 introduces some of the basic signal processing concepts that will be used throughout this book.
Concepts covered in this chapter include- signal generation techniques for generating well known test signals,
interpreting FFT results and extracting magnitude/phase information using FFT, computation of power and
energy of a signal, various methods to compute convolution of two signals. Chapter 2 covers the waveform
simulation technique for the following digital modulations: BPSK, differentially encoded BPSK, differential
BPSK, QPSK, offset QPSK, pi/4 QPSK, CPM and MSK, GMSK, FSK. Power spectral density (PSD) and per-
formance analysis for these techniques are also provided. Chapter 3 covers the complex baseband equivalent
models for techniques such as M-ary PAM, M-ary PSK, M-ary QAM and M-ary FSK modulations. Chapter
4 covers the performance simulation using the models built in Chapter 3. Chapter 5 covers the aspects of
using various linear equalizers in a simple communication link. Design and implementation of two important
types of equalizers namely the zero-forcing equalizer and the MMSE equalizer are covered. Chapter 6 covers
the topic of modeling receiver impairment, estimation and compensation for such impairments and a sample

i
ii Preface

performance simulation for such case. Reference texts are cited in square brackets within the text and the
references are provided at the end of each chapter.
The documentation for the Matlab scripts shown in this book, is available at the following URL: https:
//www.gaussianwaves.com/digital modulations matlab/doc
The scripts are thoroughly checked for integrity and they will execute without any error. If you face any
issues during execution, do not hesitate to provide feedback or contact me via the email provided below.
Alternatively, technical queries can be posted in the following forum: https://www.gaussianwaves.com/
discuss/
Finally, it is a pleasure to acknowledge the help I received while writing this book. I thank my wife Varsha
Mathuranathan for getting the manuscript edited so quickly and for her support during the review process that
greatly helped improve the manuscript. I also thank the numerous reviewers for their generous comments that
helped improve the contents of this book.

Singapore, Mathuranathan Viswanathan


June 2017 [email protected]
Contents

1 Essentials of Signal Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


1.1 Generating standard test signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Sinusoidal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Square wave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Rectangular pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.4 Gaussian pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.5 Chirp signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Interpreting FFT results - complex DFT, frequency bins and FFTShift . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Real and complex DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Fast Fourier Transform (FFT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.3 Interpreting the FFT results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.4 FFTShift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.5 IFFTShift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.6 Some observations on FFTShift and IFFTShift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Obtaining magnitude and phase information from FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1 Discrete-time domain representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.2 Representing the signal in frequency domain using FFT . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.3 Reconstructing the time domain signal from the frequency domain samples . . . . . . . . . 20
1.4 Power spectral density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.5 Power and energy of a signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5.1 Energy of a signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5.2 Power of a signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5.3 Classification of signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.5.4 Computation of power of a signal - simulation and verification . . . . . . . . . . . . . . . . . . . . 24
1.6 Polynomials, convolution and Toeplitz matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.6.1 Polynomial functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.6.2 Representing single variable polynomial functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.6.3 Multiplication of polynomials and linear convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6.4 Toeplitz matrix and convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.7 Methods to compute convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.7.1 Method 1: Brute-force method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.7.2 Method 2: Using Toeplitz matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.7.3 Method 3: Using FFT to compute convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7.4 Miscellaneous methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.8 Analytic signal and its applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.8.1 Analytic signal and Fourier transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

iii
iv Contents

1.8.2 Applications of analytic signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37


1.9 Choosing a filter : FIR or IIR : understanding the design perspective . . . . . . . . . . . . . . . . . . . . . . 43
1.9.1 Design specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.9.2 General considerations in design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2 Digital Modulators and Demodulators - Passband Simulation Models . . . . . . . . . . . . . . . . . . . . . . 51


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2 Binary Phase Shift Keying (BPSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2.1 BPSK transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2.2 BPSK receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2.3 End-to-end simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3 Coherent detection of Differentially Encoded BPSK (DEBPSK) . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4 Differential BPSK (D-BPSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.4.1 Sub-optimum receiver for DBPSK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.4.2 Optimum noncoherent receiver for DBPSK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.5 Quadrature Phase Shift Keying (QPSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.5.1 QPSK transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.5.2 QPSK receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.5.3 Performance simulation over AWGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.6 Offset QPSK (O-QPSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.7 π/4-DQPSK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8 Continuous Phase Modulation (CPM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.8.1 Motivation behind CPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.8.2 Continuous Phase Frequency Shift Keying (CPFSK) modulation . . . . . . . . . . . . . . . . . . 80
2.8.3 Minimum Shift Keying (MSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.9 Investigating phase transition properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.10 Power Spectral Density (PSD) plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.11 Gaussian Minimum Shift Keying (GMSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.11.1 Pre-modulation Gaussian Low Pass Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.11.2 Quadrature implementation of GMSK modulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.11.3 GMSK spectra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.11.4 GMSK demodulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.11.5 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.12 Frequency Shift Keying (FSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.12.1 Binary-FSK (BFSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.12.2 Orthogonality condition for non-coherent BFSK detection . . . . . . . . . . . . . . . . . . . . . . . . 102
2.12.3 Orthogonality condition for coherent BFSK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2.12.4 Modulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.12.5 Coherent Demodulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.12.6 Non-coherent Demodulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2.12.7 Performance simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
2.12.8 Power spectral density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

3 Digital Modulators and Demodulators - Complex Baseband Equivalent Models . . . . . . . . . . . . . 113


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.2 Complex baseband representation of modulated signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.3 Complex baseband representation of channel response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.4 Modulators for amplitude and phase modulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.4.1 Pulse Amplitude Modulation (M-PAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Contents v

3.4.2 Phase Shift Keying Modulation (M-PSK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117


3.4.3 Quadrature Amplitude Modulation (M-QAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.5 Demodulators for amplitude and phase modulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.5.1 M-PAM detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.5.2 M-PSK detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.5.3 M-QAM detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.5.4 Optimum detector on IQ plane using minimum Euclidean distance . . . . . . . . . . . . . . . . . 124
3.6 M-ary FSK modulation and detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.6.1 Modulator for M orthogonal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.6.2 M-FSK detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

4 Performance of Digital Modulations over Wireless Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131


4.1 AWGN channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.1.1 Signal to noise ratio (SNR) definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.1.2 AWGN channel model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.1.3 Theoretical symbol error rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
4.1.4 Unified simulation model for performance simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.2 Fading channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.2.1 Linear time invariant channel model and FIR filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.2.2 Simulation model for detection in flat fading channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.2.3 Rayleigh flat-fading channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
4.2.4 Rician flat-fading channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

5 Linear Equalizers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
5.2 Linear equalizers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.3 Symbol spaced linear equalizer channel model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.4 Zero-forcing equalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.4.1 Least squares solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.4.2 Noise enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.4.3 Design and simulation of zero forcing equalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.4.4 Drawbacks of zero forcing equalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
5.5 Minimum mean square error (MMSE) equalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
5.5.1 Alternate solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
5.5.2 Design and simulation of MMSE equalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.6 Equalizer delay optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
5.7 BPSK Modulation with zero forcing and MMSE equalizers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
5.8 Adaptive equalizer: Least mean square (LMS) algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

6 Receiver Impairments and Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179


6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.2 DC offsets and compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.3 IQ imbalance model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.4 IQ imbalance estimation and compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.4.1 Blind estimation and compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.4.2 Pilot based estimation and compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.5 Visualizing the effect of receiver impairments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
6.6 Performance of M-QAM modulation with receiver impairments . . . . . . . . . . . . . . . . . . . . . . . . . 186
vi Contents

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Chapter 1
Essentials of Signal Processing

Abstract This chapter introduces some of the basic signal processing concepts that will be used throughout
this book. The goal is to enable the reader to appreciate the concepts and apply them in building a basic
communication system. Concepts covered include - signal generation techniques for generating well known
test signals like rectangular pulse, sine wave, square wave, chirp signal and gaussian pulse, interpreting FFT
results and extracting magnitude/phase information using FFT, computation of power and energy of a signal,
various methods to compute convolution of two signals, analytic signal and applications, FIR/IIR filters.

1.1 Generating standard test signals

In experimental modeling and simulation, simple test inputs such as sinusoidal, rectangular pulse, gaussian
pulse, and chirp signals are widely used. These test signals act as stimuli for the simulation model and the
response of the model to the stimuli is of great interest in design verification.

1.1.1 Sinusoidal signals

In order to generate a sine wave, the first step is to fix the frequency f of the sine wave. For example, we wish
to generate a f = 10Hz sine wave whose minimum and maximum amplitudes are −1V and +1V respectively.
Given the frequency of the sinewave, the next step is to determine the sampling rate.
For baseband signals, the sampling is straight forward. By Nyquist Shannon sampling theorem, for faithful
reproduction of a continuous signal in discrete domain, one has to sample the signal at a rate fs higher than
at-least twice the maximum frequency fm contained in the signal (actually, it is twice the one-sided bandwidth
occupied by a real signal. For a baseband signal bandwidth (0 to fm ) and maximum frequency fm in a given
band are equivalent).
Matlab is a software that processes everything in digital. In order to obtain a smooth sine wave, the sam-
pling rate must be far higher than the prescribed minimum required sampling rate which is at least twice the
frequency f - as per Nyquist-Shannon theorem. Hence we need to sample the input signal at a rate signifi-
cantly higher than what the Nyquist criterion dictates. Higher oversampling rate requires more memory for
signal storage. It is advisable to keep the oversampling factor to an acceptable value.
An oversampling factor of 30 is chosen in the following code snippet. This is to plot a smooth continuous-
like sine wave. Thus the sampling rate becomes fs = 30 × f = 30 × 10 = 300Hz. If a phase shift is desired for
the sine wave, specify it too. The resulting plot from the code snippet shown next, is given in Figure 1.1.

1
2 1 Essentials of Signal Processing

Program 1.1: sinusoidal signal.m: Simulate a sinusoidal signal with given sampling rate
f=10; %frequency of sine wave
overSampRate=30; %oversampling rate
fs=overSampRate*f; %sampling frequency
phase = 1/3*pi; %desired phase shift in radians
nCyl = 5; %to generate five cycles of sine wave
t=0:1/fs:nCyl*1/f-1/fs; %time base

g=sin(2*pi*f*t+phase); %replace with cos if a cosine wave is desired


plot(t,g); title(['Sine Wave f=', num2str(f), 'Hz']);

Sine wave f=10 Hz

Fig. 1.1: A 10Hz sinusoidal wave with 5 cycles and phase shift 1/3π radians

1.1.2 Square wave

The most logical way of transmitting information across a communication channel is through a stream of
square pulse – a distinct pulse for ‘0’ and another for ‘1’. Digital signals are graphically represented as square
waves with certain symbol/bit period. Square waves are also used universally in switching circuits, as clock
signals synchronizing various blocks of digital circuits, as reference clock for a given system domain and so
on.
Square wave manifests itself as a wide range of harmonics in frequency domain and therefore can cause
electromagnetic interference. Square waves are periodic and contain odd harmonics when expanded as Fourier
Series (where as signals like saw-tooth and other real word signals contain harmonics at all integer frequen-
cies). Since a square wave literally expands to infinite number of odd harmonic terms in frequency domain,
approximation of square wave is another area of interest. The number of terms of its Fourier Series expansion,
taken for approximating the square wave is often seen as Gibbs phenomenon, which manifests as ringing effect
at the corners of the square wave in time domain.
1.1 Generating standard test signals 3

True square waves are a special class of rectangular waves with 50% duty cycle. Varying the duty cycle
of a rectangular wave leads to pulse width modulation, where the information is conveyed by changing the
duty-cycle of each transmitted rectangular wave. A true square wave can be simply generated by applying
signum function over a periodic function.
 
g(t) = sgn sin(2π f t) (1.1)

where f is the desired frequency of the square wave and the signum function is defined as

−1 i f x < 0,


sgn(x) = 0 i f x = 0, (1.2)

1 if x > 0

Program 1.2: square wave.m: Generate a square wave with given sampling rate
f=10; %frequency of sine wave in Hz
overSampRate=30; %oversampling rate
fs=overSampRate*f; %sampling frequency
nCyl = 5; %to generate five cycles of square wave
t=0:1/fs:nCyl*1/f-1/fs; %time base
g = sign(sin(2*pi*f*t));
%g=square(2*pi*f*t,50);%inbuilt fn:(signal proc toolbox)
plot(t,g); title(['Square Wave f=', num2str(f), 'Hz']);

Square wave f=10 Hz

Fig. 1.2: A 10Hz square wave with 5 cycles and 50 − 50 duty cycle
4 1 Essentials of Signal Processing

1.1.3 Rectangular pulse

An isolated rectangular pulse of amplitude A and duration T is represented mathematically as


 
t
g(t) = A · rect (1.3)
T

where, 
1
1

 i f |t| < 2
1 1
rect(t) = 2 i f |t| = 2
(1.4)
1

0 i f |t| >

2

The following code simulates a rectangular pulse with desired pulse width and the resulting plot is shown
in Figure 1.3.

Program 1.3: rectangular pulse.m: Generating a rectangular pulse with desired pulse width
fs=500; %sampling frequency
T=0.2; %width of the rectangule pulse in seconds
t=-0.5:1/fs:0.5; %time base
g=(t >-T/2) .* (t<T/2) + 0.5*(t==T/2) + 0.5*(t==-T/2);
%g=rectpuls(t,T); %using inbuilt function (signal proc toolbox)
plot(t,g);title(['Rectangular Pulse width=', num2str(T),'s']);

Rectangular pulse width = 0.2s

Fig. 1.3: A rectangular pulse having pulse-width 0.2s

1.1.4 Gaussian pulse

In digital communications, Gaussian Filters are employed in Gaussian Minimum Shift Keying - GMSK (see
section 2.11) and Gaussian Frequency Shift Keying (GFSK). Two dimensional Gaussian Filters are used in
1.1 Generating standard test signals 5

Image processing to produce Gaussian blurs. The impulse response of a Gaussian Filter is written as a Gaussian
function as follows
2
1 − t
g(t) = √ e 2σ 2 (1.5)
2πσ
The following code generates a Gaussian Pulse with σ = 0.1s. The resulting plot is given in Figure 1.4

Program 1.4: gaussian pulse.m: Generating a Gaussian pulse with desired pulse width
fs=80; %sampling frequency
sigma=0.1;%standard deviation
t=-0.5:1/fs:0.5; %time base
g=1/(sqrt(2*pi)*sigma)*(exp(-t.ˆ2/(2*sigmaˆ2)));
plot(t,g); title(['Gaussian Pulse \sigma=', num2str(sigma),'s']);

Gaussian pulse =0.1 s

Fig. 1.4: A Gaussian pulse with σ = 0.1s

1.1.5 Chirp signal

All the signals discussed so far do not change in frequency over time. Obtaining a signal with time-varying
frequency is of main focus here. A signal that varies in frequency over time is called chirp. The frequency of
the chirp signal can vary from low to high frequency (up-chirp) or from high to low frequency (low-chirp).
Chirp signals are encountered in many applications ranging from radar, sonar, spread spectrum, optical
communication, image processing, doppler effect, motion of a pendulum, as gravitation waves, manifestation
as Frequency Modulation (FM), echo location etc.
A linear chirp signal sweeps the frequency from low to high frequency (or vice-versa) linearly. One ap-
proach to generate a chirp signal is to concatenate a series of segments of sine waves each with increasing(or
decreasing) frequency in order. This method introduces discontinuities in the chirp signal due to the mismatch
in the phases of each such segments. Modifying the equation of a sinusoid to generate a chirp signal is a better
approach.
6 1 Essentials of Signal Processing

The equation for generating a sinusoidal (cosine here) signal with amplitude A, angular frequency ω0 and
initial phase φ is
x(t) = A cos(ω0t + φ ) (1.6)
This can be written as a function of instantaneous phase

x(t) = A cos[θ (t)] (1.7)

where θ (t) = ω0 (t) + φ is the instantaneous phase of the sinusoid and it is linear in time. The time derivative
of instantaneous phase θ (t), is equal to the angular frequency ω of the sinusoid.

d
ω(t) = θ (t) (1.8)
dt
Instead of having the phase linear in time, let’s change the phase to quadratic form and thus render it non-linear.
For some constant α,
θ (t) = 2παt 2 + 2π f0t + φ (1.9)
The first derivative of the phase is the instantaneous angular frequency as given by

d
ωi (t) = θ (t) = 4παt + 2π f0 (1.10)
dt
Hence, the time-varying frequency in Hz is given by

fi (t) = 2αt + f0 (1.11)

In the above equation, the frequency is no longer a constant, rather it is of time-varying nature with initial
frequency given by f0 . Thus, from the above equation, given a time duration T , the rate of change of frequency
is given by
f1 − f0
k = 2α = (1.12)
T
where, f0 is the starting frequency of the sweep, f1 is the frequency at the end of the duration T . Substituting
equations 1.11 and 1.12 in 1.10,
d
ωi (t) = θ (t) = 2π (kt + f0 ) (1.13)
dt
From equations 1.8 and 1.13
Z
θ (t) = ωi (t) dt
!
t2
Z
= 2π (kt + f0 ) dt = 2π k + f0t + φ0
2
!
t2
 
k
= 2π k + f0t + φ0 = 2π t + f 0 t + φ0 (1.14)
2 2

where, φ0 is a constant which will act as the initial phase of the sweep. Thus the modified equation for gener-
ating a chirp signal is given by  
x(t) = A cos 2π f (t) t + φ0 (1.15)
where, the time-varying frequency function is given by

k
f (t) = t + f0 (1.16)
2
1.2 Interpreting FFT results - complex DFT, frequency bins and FFTShift 7

A chirp signal can be generated without using the inbuilt chirp function in Matlab’s signal processing
toolbox. This is done by implementing a function that utilized equations 1.12, 1.15 and 1.16. The implemented
function is shown next.
The implemented function accepts five arguments to generate a chirp signal: t - the discrete time base for
generating the chirp, f0 - the initial frequency of the sweep, f1 - the frequency at time t1 and φ0 - the initial
phase of the chirp which is an optional argument. If the initial phase is not supplied to the function, it assumes
the initial phase to be zero.

Program 1.5: chirp signal.m: Function to generate a Chirp signal


function g=chirp_signal(t,f0,t1,f1,phase)
%g = chirp_signal(t,f0,t1,f1) generates samples of a linearly
%swept-frequency signal at the time instances defined in timebase
%array t. The instantaneous frequency at time 0 is f0 Hertz.
%The instantaneous frequency f1 is achieved at time t1. The argument
%'phase' is optional. It defines the initial phase of the signal
%defined in radians. By default phase=0 radian
if nargin==4, phase=0; end
t0=t(1); T=t1-t0; k=(f1-f0)/T;
g=cos(2*pi*(k/2*t+f0).*t+phase);
end

The following test script utilizes the above function and generates a chirp with starting frequency f0 = 1Hz
at the start of the time base and f1 = 25Hz at t1 = 1s which is the end of the time base. From the PSD plot, it
can be ascertained that the signal energy is concentrated only upto 25Hz. The resulting plot is shown in Figure
1.5.

Program 1.6: chirp test.m: Generating and plotting a chirp signal


fs=500; %sampling frequency
t=0:1/fs:1; %time base - upto 1 second
f0=1;% starting frequency of the chirp
f1=fs/20; %frequency of the chirp at t1=1 second
g = chirp_signal(t,f0,1,f1);
plot(t,g); title('Chirp Signal');

1.2 Interpreting FFT results - complex DFT, frequency bins and FFTShift

Often, one is confronted with the problem of converting a time domain signal to frequency domain and vice-
versa. Fourier Transform is an excellent tool to achieve this conversion and is ubiquitously used in many
applications. In signal processing , a time domain signal can be continuous or discrete and it can be aperiodic
or periodic. This gives rise to four types of Fourier transforms as listed in Table 1.1.
From Table 1.1, we note that when the signal is discrete in one domain, it will be periodic in other domain.
Similarly, if the signal is continuous in one domain, it will be aperiodic (non-periodic) in another domain.
For simplicity, lets not venture into the specific equations for each of the transforms above. We will limit
our discussion to DFT, that is widely available as part of software packages like Matlab, Scipy(python) etc..,
however we can approximate other transforms using DFT.
8 1 Essentials of Signal Processing

Chirp Signal

Fig. 1.5: A finite record of a chirp signal

Table 1.1: Four types of Fourier Transforms

Transform Nature of time domain signal Nature of frequency spectrum

Fourier Transform (FT), (a.k.a Continuous Time continuous, non-periodic non-periodic,continuous


Fourier Transform (CTFT))
Discrete-time Fourier Transform (DTFT) discrete, non-periodic periodic,continuous
Fourier Series (FS) continuous, periodic non-periodic, discrete
Discrete Fourier Transform (DFT) discrete, periodic periodic,discrete

1.2.1 Real and complex DFT

For each of the listed transforms above, there exist a real version and complex version. The real version of the
transform, takes in a real numbers and gives two sets of real frequency domain points - one set representing
coefficients over cosine basis function and the other set representing the coefficient over sine basis function.
The complex version of the transforms represent positive and negative frequencies in a single array. The
complex versions are flexible that it can process both complex valued signals and real valued signals. Figure
1.6 captures the difference between real DFT and complex DFT.

1.2.1.1 Real DFT

Consider the case of N-point real DFT , it takes in N samples of real-valued time domain waveform x[n] and
gives two arrays of length N/2 + 1 each set projected on cosine and sine functions respectively.

2 N−1
 
2πkn
Xre [k] = ∑ x[n]cos
N n=0 N
2 N−1
 
2πkn
Xim [k] = − ∑ x[n]sin (1.17)
N n=0 N
1.2 Interpreting FFT results - complex DFT, frequency bins and FFTShift 9

Here, the time domain index n runs from 0 → N, the frequency domain index k runs from 0 → N/2 The
real-valued time domain signal x[n] can be synthesized from the real DFT pairs as

N/2    
2πkn 2πkn
x[n] = ∑ Xre [K]cos − Xim [K]sin (1.18)
k=0 N N

Caveat: When using the synthesis equation, the values Xre [0] and Xre [N/2] must be divided by two. This
problem is due to the fact that we restrict the analysis to real-values only. These type of problems can be
avoided by using complex version of DFT.

Fig. 1.6: Real and complex DFT

1.2.1.2 Complex DFT

Consider the case of N-point complex DFT, it takes in N samples of complex-valued time domain waveform
x[n] and produces an array X[k] of length N.

1 N−1
X[k] = ∑ x[n]e− j2πkn/N
N n=0
(1.19)

The arrays values are interpreted as follows


• X[0] represents DC frequency component
• Next N/2 terms are positive frequency components with X[N/2] being the Nyquist frequency (which is
equal to half of sampling frequency)
10 1 Essentials of Signal Processing

• Next N/2 − 1 terms are negative frequency components (note: negative frequency components are the
phasors rotating in opposite direction, they can be optionally omitted depending on the application)
The corresponding synthesis equation (reconstruct x[n] from frequency domain samples X[k]) is
N−1
x[n] = ∑ X[k]e j2πkn/N (1.20)
k=0

From these equations we can see that the real DFT is computed by projecting the signal on cosine and sine
basis functions. However, the complex DFT projects the input signal on exponential basis functions (Euler’s
formula - eiθ = cosθ + isinθ connects these two concepts).
When the input signal in the time domain is real valued, the complex DFT zero-fills the imaginary part
during computation (That’s its flexibility and avoids the caveat needed for real DFT). Figure 1.7 shows how to
interpret the raw FFT results in Matlab that computes complex DFT. The specifics will be discussed next with
an example.

Fig. 1.7: Interpretation of frequencies in complex DFT output

1.2.2 Fast Fourier Transform (FFT)

The FFT function in Matlab is an algorithm published in 1965 by J.W.Cooley and J.W.Tuckey for efficiently
calculating the DFT [1]. It exploits the special structure of DFT when the signal length is a power of 2, when
this happens, the computation complexity is significantly reduced. FFT length is generally considered as power
of 2 - this is called radix − 2 FFT which exploits the twiddle factors. The FFT length can be odd as used in
this particular FFT implementation - Prime-factor FFT algorithm [2] [3] where the FFT length factors into two
co-primes.
FFT is widely available in software packages like Matlab, Scipy etc.., FFT in Matlab/Scipy implements
the complex version of DFT. Matlab’s FFT implementation computes the complex DFT that is very similar
to above equations except for the scaling factor. For comparison, the Matlab’s FFT implementation computes
the complex DFT and its inverse as
1.2 Interpreting FFT results - complex DFT, frequency bins and FFTShift 11

N−1
X[k] = ∑ x[n]e− j2πkn/N
n=0
N−1
1
x[n] =
N ∑ X[k]e j2πkn/N (1.21)
k=0

The Matlab commands that implement the above equations are FFT and IFFT respectively. The correspond-
ing syntax is as follows
X = fft(x,N) %compute X[k]
x = ifft(X,N) %compute x[n]

1.2.3 Interpreting the FFT results

Let’s assume that the x[n] is the time domain cosine signal of frequency fc = 10 Hz that is sampled at a
frequency fs = 32 ∗ f c for representing it in the computer memory (Figure 1.8).

Program 1.7: Generating a 2 seconds record of 10 Hz cosine wave


fc=10;%frequency of the carrier
fs=32*fc;%sampling frequency with oversampling factor=32
t=0:1/fs:2-1/fs;%2 seconds duration
x=cos(2*pi*fc*t);%time domain signal (real number)
subplot(3,1,1); plot(t,x);hold on; %plot the signal
title('x[n]=cos(2 \pi 10 t)'); xlabel('t=nT_s'); ylabel('x[n]');

x[n]=cos(2 π 10 t)
1
x[n]

-1
0 0.5 1 1.5 2
t=nTs

Fig. 1.8: A 2 seconds record of 10 Hz cosine wave

Let’s consider taking a N = 256 point FFT, which is the 8th power of 2.

Program 1.8: Taking N-point DFT


N=256; %FFT size
X = fft(x,N);%N-point complex DFT, output contains DC at index 1
%Nyquist frequency at N/2+1 th index positive frequencies from
%index 2 to N/2 negative frequencies from index N/2+1 to N
12 1 Essentials of Signal Processing

Note: The FFT length should be sufficient to cover the entire length of the input signal. If N is less than
the length of the input signal, the input signal will be truncated when computing the FFT. In our case, the
cosine wave is of 2 seconds duration and it will have 640 points (a 10Hz frequency wave sampled at 32 times
oversampling factor will have 2 × 32 × 10 = 640 samples in 2 seconds of the record). Since our input signal is
periodic, we can safely use N = 256 point FFT, anyways the FFT will extend the signal when computing the
FFT. Due to Matlab’s index starting at 1, the DC component of the FFT decomposition is present at index 1.

>>X(1)
1.1762e-14 (approximately equal to zero)

That’s pretty easy. Note that the index for the raw FFT are integers from 1 → N. We need to process it to
convert these integers to frequencies. That is where the sampling frequency counts. Each point/bin in the FFT
output array is spaced by the frequency resolution ∆ f , that is calculated as
fs
∆f = (1.22)
N
where, fs is the sampling frequency and N is the FFT size that is considered. Thus, for our example, each point
in the array is spaced by the frequency resolution
fs 32 ∗ fc 320
∆f = = = = 1.25Hz (1.23)
N 256 256
The 10Hz cosine signal will register a spike at the 8th sample (10/1.25=8) - located at index 9 in Figure 1.9.
>> abs(X(8:10)) %display samples 7 to 9
ans = 0.0000 128.0000 0.0000

Therefore, from the frequency resolution, the entire frequency axis can be computed as

Program 1.9: Computing the frequency axis for plotting


%calculate frequency bins with FFT
df=fs/N %frequency resolution
sampleIndex = 0:N-1; %raw index for FFT plot
f=sampleIndex*df; %x-axis index converted to frequencies

Now, plot the absolute value of the FFT against frequencies - the resulting plot is shown in the Figure 1.9.

Program 1.10: Plotting the frequency domain view of a signal


subplot(3,1,2); stem(sampleIndex,abs(X)); %sample values on x-axis
title('X[k]'); xlabel('k'); ylabel('|X(k)|');
subplot(3,1,3); stem(f,abs(X)); %x-axis represent frequencies
title('X[f]'); xlabel('frequencies (f)'); ylabel('|X(f)|');

After the frequency axis is properly transformed with respect to the sampling frequency, we note that the
cosine signal has registered a spike at 10Hz. In addition to that, it has also registered a spike at 256 − 8 = 248th
sample that belongs to negative frequency portion. Since we know the nature of the signal, we can optionally
ignore the negative frequencies. The sample at the Nyquist frequency ( fs /2) mark the boundary between the
positive and negative frequencies.
>> nyquistIndex=N/2+1;
>> X(nyquistIndex-2:nyquistIndex+2).'
1.2 Interpreting FFT results - complex DFT, frequency bins and FFTShift 13

ans =
1.0e-13 *
-0.2428 + 0.0404i
-0.1897 + 0.0999i
-0.3784
-0.1897 - 0.0999i
-0.2428 - 0.0404i

Note that the complex numbers surrounding the Nyquist index are complex conjugates and they represent
positive and negative frequencies respectively.

150
|X(k)|

100 X= 8 X= 248
Y= 128 Y= 128

50

0
0 50 100 150 200 250
k

100 X= 10 X= 310
|X(f)|

Y= 128 Y= 128

50

0
0 50 100 150 200 250 300
frequencies (f)

Fig. 1.9: Magnitude response from FFT plotted against - sample index (top) and computed frequencies (bot-
tom)

1.2.4 FFTShift

From Figure 1.9, we see that the frequency axis starts with DC, followed by positive frequency terms which
is in turn followed by the negative frequency terms. To introduce proper order in the x-axis, one can use
FFTshift function Matlab, which arranges the frequencies in order: negative frequencies → DC → positive
frequencies. The fftshift function need to be carefully used when N is odd.
For even N, the original order returned by FFT is as follows (note: here, all indices corresponds to Matlab’s
index)
• X[1] represents DC frequency component
• X[2] to X[N/2] terms are positive frequency components
• X[N/2 + 1] is the Nyquist frequency (Fs /2) that is common to both positive and negative frequencies. We
will consider it as part of negative frequencies to have the same equivalence with the fftshift function
• X[N/2 + 1] to X[N] terms are considered as negative frequency components
14 1 Essentials of Signal Processing

FFTshift shifts the DC component to the center of the spectrum. It is important to remember that the Nyquist
frequency at the (N/2+1)th Matlab index is common to both positive and negative frequency sides. FFTshift
command puts the Nyquist frequency in the negative frequency side. This is captured in the Figure 1.10.

Fig. 1.10: Role of FFTShift in ordering the frequencies

Therefore, when N is even, ordered frequency axis is set as


   
N N fs N N
f = ∆ f − : 1 : −1 = − : 1 : −1 (1.24)
2 2 N 2 2

When N is odd, the ordered frequency axis should be set as


   
N +1 N +1 fs N +1 N +1
f =∆f − :1: −1 = − :1: −1 (1.25)
2 2 N 2 2

The following code snippet, computes the fftshift using both the manual method and using the Matlab’s
in-built command. The results are plotted by superimposing them on each other. The plot in Figure 1.11 shows
that both the manual method and fftshift method are in good agreement. Comparing the bottom figures in the
Figure 1.9 and Figure 1.11, we see that the ordered frequency axis is more meaningful to interpret.

Program 1.11: Plotting magnitude response using FFTShift


%two-sided FFT with negative frequencies on left and positive
%frequencies on right. Following works only if N is even,
%for odd N see equation above
X1 = [(X(N/2+1:N)) X(1:N/2)]; %order frequencies without using fftShift
X2 = fftshift(X);%order frequencies by using fftshift

df=fs/N; %frequency resolution


sampleIndex = -N/2:N/2-1; %raw index for FFT plot
f=sampleIndex*df; %x-axis index converted to frequencies
1.2 Interpreting FFT results - complex DFT, frequency bins and FFTShift 15

%plot ordered spectrum using the two methods


figure;subplot(2,1,1);stem(sampleIndex,abs(X1));hold on;
stem(sampleIndex,abs(X2),'r') %sample index on x-axis
title('Frequency Domain'); xlabel('k'); ylabel('|X(k)|');

subplot(2,1,2);stem(f,abs(X1)); stem(f,abs(X2),'r')
xlabel('frequencies (f)'); ylabel('|X(f)|');%frequencies on x-axis

100 X= −8 X= 8
|X(k)|

Y= 128 Y= 128

50

0
−100 −50 0 50 100
k
150
|X(f)|

100 X= −10 X= 10
Y= 128 Y= 128

50

0
−150 −100 −50 0 50 100 150
frequencies (f)

Fig. 1.11: Magnitude response of FFT result after applying FFTShift : plotted against sample index (top) and
against computed frequencies (bottom)

1.2.5 IFFTShift

One can undo the effect of fftshift by employing ifftshift function. The ifftshift function restores the raw
frequency order. If the FFT output is ordered using fftshift function, then one must restore the frequency
components back to original order before taking IFFT. Following statements are equivalent.

X = fft(x,N) %compute X[k]


x = ifft(X,N) %compute x[n]

X = fftshift(fft(x,N)); %take FFT and rearrange frequency order


x = ifft(ifftshift(X),N)% restore raw freq order and then take IFFT
16 1 Essentials of Signal Processing

1.2.6 Some observations on FFTShift and IFFTShift

When N is odd and for an arbitrary sequence, the fftshift and ifftshift functions will produce different
results. However, when they are used in tandem, it restores the original sequence.
>> x=[0,1,2,3,4,5,6,7,8]
0 1 2 3 4 5 6 7 8
>> fftshift(x)
5 6 7 8 0 1 2 3 4
>> ifftshift(x)
4 5 6 7 8 0 1 2 3
>> ifftshift(fftshift(x))
0 1 2 3 4 5 6 7 8
>> fftshift(ifftshift(x))
0 1 2 3 4 5 6 7 8

When N is even and for an arbitrary sequence, the fftshift and ifftshift functions will produce the same
result. When they are used in tandem, it restores the original sequence.
>> x=[0,1,2,3,4,5,6,7]
0 1 2 3 4 5 6 7
>> fftshift(x)
4 5 6 7 0 1 2 3
>> ifftshift(x)
4 5 6 7 0 1 2 3
>> ifftshift(fftshift(x))
0 1 2 3 4 5 6 7
>> fftshift(ifftshift(x))
0 1 2 3 4 5 6 7

1.3 Obtaining magnitude and phase information from FFT

For the discussion here, lets take an arbitrary cosine function of the form x(t) = Acos (2π fct + φ ) and proceed
step by step as follows
• Represent the signal x(t) in computer (discrete-time) and plot the signal (time domain)
• Represent the signal in frequency domain using FFT (X[k])
• Extract amplitude and phase information from the FFT result
• Reconstruct the time domain signal from the frequency domain samples

1.3.1 Discrete-time domain representation

Consider a cosine signal of amplitude A = 0.5, frequency fc = 10Hz and phase φ = π/6 radians (or 30◦ )

x(t) = 0.5 cos 2π10t + π/6 (1.26)

In order to represent the continuous time signal x(t) in computer memory (Figure 1.12), we need to sample the
signal at sufficiently high rate (according to Nyquist sampling theorem). I have chosen a oversampling factor
1.3 Obtaining magnitude and phase information from FFT 17

of 32 so that the sampling frequency will be fs = 32 × fc , and that gives 640 samples in a 2 seconds duration
of the waveform record.

Program 1.12: Representing and storing a signal in computer memory


A = 0.5; %amplitude of the cosine wave
fc=10;%frequency of the cosine wave
phase=30; %desired phase shift of the cosine in degrees
fs=32*fc;%sampling frequency with oversampling factor 32
t=0:1/fs:2-1/fs;%2 seconds duration

phi = phase*pi/180; %convert phase shift in degrees in radians


x=A*cos(2*pi*fc*t+phi);%time domain signal with phase shift
figure; plot(t,x); %plot the signal

x(t) = 0.5 cos (2π10t + π/6)


0.5
x(t)

-0.5
0 0.5 1 1.5 2
time (t seconds)

Fig. 1.12: Finite record of a cosine signal

1.3.2 Representing the signal in frequency domain using FFT

Let’s represent the signal in frequency domain using the FFT function. The FFT function computes N-point
complex DFT. The length of the transformation N should cover the signal of interest otherwise we will some
loose valuable information in the conversion process to frequency domain. However, we can choose a reason-
able length if we know about the nature of the signal. For example, the cosine signal of our interest is periodic
in nature and is of length 640 samples (for 2 seconds duration signal). We can simply use a lower number
N = 256 for computing the FFT. In this case, only the first 256 time domain samples will be considered for
taking FFT. However, we do not need to worry about loss of any valuable information, as the 256 samples will
have sufficient number of cycles to extract the frequency of the signal.

Program 1.13: Represent the signal in frequency domain using FFT


N=256; %FFT size
X = 1/N*fftshift(fft(x,N));%N-point complex DFT

In the code above, fftshift is used only for obtaining a nice double-sided frequency spectrum that delin-
eates negative frequencies and positive frequencies in order. This transformation is not necessary. A scaling
factor 1/N was used to account for the difference between the FFT implementation in Matlab and the text
definition of complex DFT as given in equation 1.19.
18 1 Essentials of Signal Processing

1.3.2.1 Extract amplitude of frequency components (amplitude spectrum)

The FFT function computes the complex DFT and the hence the results in a sequence of complex numbers of
form Xre + jXim . The amplitude spectrum is obtained
q
2
|X[k]| = Xre2 + Xim (1.27)

For obtaining a double-sided plot, the ordered frequency axis, obtained using fftshift, is computed based
on the sampling frequency and the amplitude spectrum is plotted (Figure 1.13).

Program 1.14: Extract amplitude information from the FFT result


df=fs/N; %frequency resolution
sampleIndex = -N/2:N/2-1; %ordered index for FFT plot
f=sampleIndex*df; %x-axis index converted to ordered frequencies
stem(f,abs(X)); %magnitudes vs frequencies
xlabel('f (Hz)'); ylabel('|X(k)|');

Amplitude spectrum
0.25

0.2
|X(k)|

0.15

0.1

0.05 f (Hz)
0
-30 -20 -10 0 10 20 30

Fig. 1.13: Extracted amplitude information from the FFT result

1.3.2.2 Extract phase of frequency components (phase spectrum)

Extracting the correct phase spectrum is a tricky business. I will show you why it is so. The phase of the
spectral components are computed as  
Xim
∠X[k] = tan−1 (1.28)
Xre
The equation 1.28 looks naive, but one should be careful when computing the inverse tangents using com-
puters. The obvious choice for implementation seems to be the atan function in Matlab. However, usage of
atan function will prove disastrous unless additional precautions are taken. The atan function computes the
inverse tangent over two quadrants only, i.e, it will return values only in the [−π/2, π/2] interval. Therefore,
the phase need to be unwrapped properly. We can simply fix this issue by computing the inverse tangent over
all the four quadrants using the atan2(Ximg , Xre ) function. Let’s compute and plot the phase information using
atan2 function and see how the phase spectrum looks.
1.3 Obtaining magnitude and phase information from FFT 19

Program 1.15: Extracting phase information from the FFT result using atan2 function
phase=atan2(imag(X),real(X))*180/pi; %phase information
plot(f,phase); %phase vs frequencies

200 Phase spectrum

100
X[k]

-100
f (Hz)
-200
-150 -100 -50 0 50 100 150

Fig. 1.14: Extracted phase information from the FFT result - phase spectrum is noisy

The phase spectrum in Figure 1.14 is completely noisy, which is unexpected. The phase spectrum is noisy
due to fact that the inverse tangents are computed from the ratio of imaginary part to real part of the FFT
result. Even a small floating rounding off error will amplify the result and manifest incorrectly as useful phase
information [4]. To understand, print the first few samples from the FFT result and observe that they are
not absolute zeros (they are very small numbers in the order 10−16 . Computing inverse tangent will result in
incorrect results.
>> X(1:5)
ans =
1.0e-16 *
-0.7286 -0.3637 -0.2501i -0.4809 -0.1579i -0.3602 -0.5579i 0.0261 -0.495i
>> atan2(imag(X(1:5)),real(X(1:5)))
ans =
3.1416 -2.5391 -2.8244 -2.1441 -1.5181

The solution is to define a tolerance threshold and ignore all the computed phase values that are below the
threshold.

Program 1.16: Extracting phase information from FFT - using a tolerance threshold
X2=X;%store the FFT results in another array
%detect noise (very small numbers (eps)) and ignore them
threshold = max(abs(X))/10000; %tolerance threshold
X2(abs(X)<threshold)=0;%maskout values below the threshold
phase=atan2(imag(X2),real(X2))*180/pi; %phase information
stem(f,phase); %phase vs frequencies

The recomputed phase spectrum is plotted in Figure 1.15. The phase spectrum has correctly registered the
30◦ phase shift at the frequency f = 10Hz. The phase spectrum is anti-symmetric (φ = −30◦ at f = −10Hz
), which is expected for real-valued signals.
20 1 Essentials of Signal Processing

Phase spectrum
40

20
X[k]

-20
f (Hz)
-40
-30 -20 -10 0 10 20 30

Fig. 1.15: Extracted phase information from the FFT result - recomputed phase spectrum

1.3.3 Reconstructing the time domain signal from the frequency domain samples

Reconstruction of the time domain signal from the frequency domain sample is pretty straightforward. The
reconstructed signal, shown in Figure 1.16, has preserved the same initial phase shift and the frequency of the
original signal. Note: The length of the reconstructed signal is only 256 sample long ( 0.8 seconds duration),
this is because the size of FFT is considered as N = 256. Since the signal is periodic it is not a concern. For
more complicated signals, appropriate FFT length (better to use a value that is larger than the length of the
signal) need to be used.

Program 1.17: Reconstructing a signal from frequency domain samples


x_recon = N*ifft(ifftshift(X),N); %reconstructed signal
t = [0:1:length(x_recon)-1]/fs; %recompute time index
plot(t,x_recon);%reconstructed signal

reconstructed signal
0.5
x(t)

-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
time (t seconds)

Fig. 1.16: Reconstructed time-domain signal from frequency domain samples


Random documents with unrelated
content Scribd suggests to you:
gaven, kwamen drie deuren uit, welke blijkbaar toegang gaven tot de
voornaamste vertrekken van de villa.

De beide dragers keken om naar Raffles, alsof zij diens verdere bevelen
wachtten.

Raffles gebood hun, Tatiana neer te leggen.

Terwijl hij zijn wapen op hen gericht hield, begon hij nu met zachte, maar
niet minder bevelende stem:

„Gij hebt drie weken geleden den Schot Mc Allan van alles beroofd en hem
49,000 pond, in Engelsche banknoten van duizend pond, afgenomen. Gij
moet mij dat geld teruggeven.”

„Wij hebben het niet meer,” stamelde de oude bevend.

„Je liegt,” antwoordde Raffles bedaard en toen de oude hierop niets kon
antwoorden, vervolgde hij:

„Jullie hebt de keus, òf je geeft het geld terug, dan zal ik jullie met rust
laten en mij niet meer om je bekommeren, òf ge weigert, dan roep ik
onmiddellijk de politie op, nadat ik het je eerst, door middel van dit wapen,
onmogelijk heb gemaakt om te vluchten.”

„Behoort gijzelf niet tot de politie?” waagde de oude het nu, zeer verbaasd,
te vragen.

„Neen,” antwoordde Raffles, glimlachend bij de gedachte dat men hem


voor een detective had gehouden.

De oude man scheen een oogenblik na te denken, maar Raffles gunde


hem niet veel tijd.

„Nu, vlug een beetje, ik wacht op antwoord,” beet hij hem toe.

Aarzelend begon de oude:


„Ik heb u de waarheid gezegd, wij hebben nog slechts een deel van het
geld, als gij ons wilt volgen, kunt gij er u van overtuigen.”

„Goed,” antwoordde Raffles. „Jullie gaat vooruit, maar als je mij een poets
denkt te spelen, rekent er dan op, dat uw laatste oogenblik is
aangebroken.”

De oude man opende een der deuren, die op de vestibule uitkwamen en


trad, door den chauffeur gevolgd, binnen.

„Maakt licht!” beval Raffles en in hetzelfde oogenblik brandde een groote


kroon, die in het midden van de kamer aan het plafond hing.

Raffles trad binnen en overzag met een enkelen blik het vertrek.

De oude ging naar een schrijftafel en wilde een der laden openen.

„Halt!” riep Raffles. „Wat is daarin?”

„De rest van het geld,” antwoordde de oude man.

„Geen wapens?”

„Neen,” klonk het terug.

„Kerel, ik geloof je niet,” sprak Raffles.

Hij beval den chauffeur in den meest verwijderden hoek van het vertrek te
gaan staan met opgeheven armen.

De man gehoorzaamde. [12]

Nu naderde Raffles den oude en, terwijl hij hem den mond van het pistool
tegen een der slapen drukte, beval hij hem, de schrijftafel te openen.

„Als zich in het schrijfbureau iets bevindt, wat je woorden logenstraft,


schiet ik.”
„De schrijftafel bevat niets dan boeken en de rest van het geld,”
antwoordde de bedreigde sidderend van angst.

„Open ze dan!”

Raffles zag, dat de oude man de waarheid had gesproken.

Voor zijn oogen lag zijn eigen portefeuille, dezelfde, die hij aan boord van
de „Senegambia” aan Charly Brand had gegeven.

Raffles nam ze op en opende haar, zonder de beide mannen uit het oog te
verliezen.

Er waren nog 19 banknoten in van duizend pond.

„Waar is de rest van het geld?” vroeg Raffles, „maar spreek de waarheid!”

De oude aarzelde geen oogenblik.

„Ik heb het gebruikt om dit huis te koopen, dat wij vroeger in huur
hadden.”

„Onder welken naam zijt gij eigenaar ervan geworden?”

„Ik heet Gregor Komartscheff.”

„Zijt gij Rus?”

„Van Russische afkomst, maar Turksch onderdaan.”

„En Tatiana?”

„Is mijn dochter.”

„En hij?” Raffles wees met zijn revolver naar den chauffeur.

„Dat is mijn neef Andrej”.

„Drijft gij uw schurkachtig bestaan reeds lang?” informeerde Raffles


„Neen, mijnheer,” antwoordde Komartscheff, „en geloof mij, het doel van
onze rooverijen is minder schurkachtig dan de daad. Het geld, dat wij
bemachtigen, dient om onze ongelukkige broeders in Turkije te bevrijden.”

Lord Lister was te wantrouwend van aard om zonder slag of stoot een
dergelijk sentimenteel verhaal te gelooven.

Anderzijds echter was, na alles wat hij hier had gezien, de schijn vóór den
ouden man.

Hij nam de portefeuille met de rest van het geld en stak dit alles bij zich.

Daarop sprak hij op minder dreigenden toon tot het tweetal:

„Uw streven, om rijken leegloopers de zakken te lichten, ten einde hun


geld voor nuttiger doeleinden te besteden, is mij niet geheel onsympathiek
en het zou best mogelijk kunnen zijn, dat wij tot een overeenkomst
kwamen.

„Als gij openhartig tegenover mij zijt, hebt gij niets van mij te vreezen,
zelfs al zou het ontbrekende geld niet weer voor den dag komen.

„Ik zal morgenmiddag met mijn vriend Mc Allan, denzelfden, dien gij drie
weken geleden geplunderd hebt, bij u komen en als gij mij kunt bewijzen,
dat uwe verhalen op waarheid gebaseerd zijn, wil ik u in meer dan een
opzicht van dienst zijn.

„Voorloopig vertrouw ik u nog niet. Gaat mij dus beiden voor en brengt mij
weer naar buiten. Als ik weg ben, moet gij Tatiana naar bed brengen. Zij
zal in den loop van den morgen vanzelf uit haar verdooving ontwaken.

„Ziezoo, wijst mij nu den weg.”

Beide mannen liepen voor hem uit en na eenige minuten had Raffles het
huis in de avenue van het Bois de Boulogne verlaten.

Hij liep de donkere straten door en de gebeurtenissen van dien dag, vanaf
de ontmoeting in het Bois de Boulogne tot aan het dramatische einde
passeerden in zijn gedachten nog eens de revue.

Het raadselachtige gedrag van het jonge meisje was hem nu begrijpelijk.
Het verhaal van den ouden man voldoende om de wonderlijke houding van
Tatiana te verklaren. Maar zouden de woorden van Komartscheff waarheid
bevatten? [13]

Het viel Raffles niet moeilijk, er geloof aan te schenken. Maar hij hield er
niet van, alleen zijn gevoel te laten werken waar het zaken betrof, die
slechts konden worden opgehelderd door een logisch denkend verstand.

Toch doemde telkens weer de liefelijke verschijning van Tatiana voor hem
op, naast het beeld van ongekunsteld leed, dat de gedachte aan den
ouden Komartscheff in hem wakker riep en toen Raffles tegen drie uur in
den morgen zijn bed opzocht, hoopte hij van ganscher harte, dat het
resultaat van zijn onderzoek naar de bewoners der villa niet in tegenspraak
zou zijn met hun eigen mededeelingen.

[Inhoud]
VIERDE HOOFDSTUK.
IN DE CATACOMBEN.
Tatiana Komartscheff ontwaakte uit haar verdooving.

De zon stond hoog aan den hemel en haar stralen schenen op het bed,
waarop het jonge meisje met groote zorg door haar vader was neergelegd.

Nu sloeg zij de oogen op en langzamerhand keerde haar bewustzijn terug.

Zij hief het hoofd op en keek in de kamer rond.

In een hoek van het vertrek zat haar vader.

„Papa, wat is er gebeurd?” klonk het nu op angstigen toon van haar lippen.

De oude man stond op, sidderend en bleek naderde hij het bed zijner
dochter.

„Mijn lieve kind, wij zijn verraden, alles is ontdekt.”

Verschrikt sprong Tatiana op.

„Papa, laat ons vluchten, wij zullen elders de middelen vinden om ons
onderdrukt volk in zijn strijd tegen het tyrannieke juk te helpen en te
steunen.”

De oude schudde zijn hoofd.

In korte woorden vertelde hij haar de gebeurtenissen van den laatsten


nacht.

In dien tusschentijd kwam Andrej de kamer binnen.

Hij bleef zwijgend bij de deur staan en zijn blik hing met slaafsche
bewondering aan de trekken van de schoone Tatiana.
Komartscheff had zijn verhaal gedaan en Tatiana, die zich in de kussens
had opgericht, vroeg:

„Denkt u, dat die heer werkelijk terug zal komen?”

„Ja,” antwoordde haar vader. „Hij zei, dat hij zijn vriend Mc. Allan, den
Schot, zou meebrengen.” [14]

„De arme man, die drie weken geleden in onze handen viel!” riep het jonge
meisje uit, terwijl een straal van vreugde haar gelaat verhelderde.

Een uitdrukking van haat en minachting vertoonde zich in Andrejs oogen


en woedend mompelde hij eenige onverstaanbare woorden.

Komartscheff keek hem vragend aan en op ontstemden toon sprak Andrej:

„De groote belangstelling van Tatiana voor dien knappen Schot leek mij
dadelijk een slecht voorteeken en het is zoo uitgekomen. Het lijkt er nu
zelfs op, alsof zij er zich op verheugt, hem weer te zullen zien. Als zij zulke
gedachten in zich omdraagt, zal de zaak van ons volk daaronder lijden.”

Tatiana wierp een blik vol minachting op den jongen man, en zonder
aarzelen sprak zij:

„Jij zoudt er natuurlijk niets tegen hebben, als ik de belangen van ons volk
aan jouw persoon opofferde, maar ik verzeker je, dat dit nooit zal
gebeuren.”

„Er is nu geen tijd om te twisten, laat ons liever overleggen, wat ons te
doen staat,” onderbrak Komartscheff het gesprek.

„Er valt niet veel te overleggen,” mompelde Andrej. „Als die twee zich
werkelijk hier wagen, zou het het beste zijn, hun voor eeuwig den mond te
snoeren.”

Met een blik vol ontzetting staarde Tatiana hem aan.


Komartscheff stond op, zijn gelaat was ernstig en een uitdrukking van
kalme waardigheid lag op zijn gelaat, toen hij tot zijn neef sprak:

„Wij hebben geroofd en de bezittingen van anderen gebruikt voor ons doel,
maar ik weet, dat ik al mijn daden voor mijn Hoogsten Rechter kan
verantwoorden. Nimmer echter zullen deze handen, die zich uitstrekten
naar het geld van anderen, om het onzen onderdrukten broeders aan te
bieden, bevlekt worden met het bloed van onschuldige menschen!”

Andrej wilde antwoorden, toen in hetzelfde oogenblik de bel weerklonk.

Beide mannen gingen de kamer uit.

De oude huishoudster, die elken dag haar bezigheden in de villa kwam


verrichten, opende de deur en liet Raffles en Charly binnen.

Toen de oude vrouw zich had verwijderd, vroeg Raffles:

„Is uw dochter ontwaakt?”

„Ja, een uur geleden,” antwoordde Komartscheff.

„En mogen wij haar zien?” informeerde Raffles verder.

„Zij ligt nog in bed,” sprak Komartscheff, „maar als de heeren met ons
willen binnengaan,” en hij opende de deur van de slaapkamer van Tatiana.

De oogen van het jonge meisje vulden zich met tranen toen zij de beide
heeren zag, die bestemd waren geweest om haar slachtoffers te worden.
Heftig snikkend viel zij in de kussens terug.

Raffles was verbaasd bij het zien van haar ontroering, die zoo
ongekunsteld was, dat hij niet meer kon twijfelen aan de waarheid van
Komartscheffs verhaal.

Charly Brand was diep getroffen. Een gevoel van oneindig medelijden
maakte zich van hem meester en bedeesd trad hij naar het jonge meisje
toe.
„Ik bid u, wees kalm en droog uw tranen. Mijn vriend heeft mij de
opheldering, die uw vader hem gaf, medegedeeld, en ik geloof zonder
eenig voorbehoud aan de waarheid er van.”

Een blik vol innige dankbaarheid trof Charly.

Zij stak hem haar smalle, blanke hand toe, die hij eenigen tijd in de zijne
hield en met trillende lippen smeekte zij:

„Vergeef mij, wat ik u deed!”

Het kostte Charly moeite om zijn tranen te bedwingen.

„Ik heb u reeds lang vergeven en mijn vriend en ik zijn hierheen gekomen,
niet om ons te wreken, maar om u te helpen.”

Raffles had met een glimlach de twee gadegeslagen.

Nu kwam hij een stap nader en sprak: [15]

„Dus, heeren, wij moeten nu niet sentimenteel worden, maar, practisch en


kalm overleggen, wat ons te doen staat.”

Hij wendde zich tot Komartscheff.

„Mijn naam is Donald Harrison en ik ben Amerikaan. Ik geloof, dat gij


hedennacht de waarheid hebt gesproken en daarom wil ik niet alleen geen
rekenschap hebben van hetgeen gij hebt gedaan, maar ik ben zelfs bereid,
u in het belang van het door u beoogde doel, verder te helpen.

„Als eerste voorwaarde stel ik echter den eisch, dat uw dochter niet meer
gebruikt wordt voor zulke schandelijke dingen, die haar onwaardig zijn.”

Met een woedenden blik wendde Andrej zich tot den Amerikaan:

„Om welke reden maakt gij u bezorgd over het lot van deze dame?”

Raffles keek den jongen man verbaasd aan.


„Niet voor mijzelf, lieve vriend, maar in het belang van mijn vriend Mc
Allan.”

Een diepe blos kleurde bij die woorden de wangen van Tatiana en Charly
boog zich, als om de woorden van zijn vriend te bekrachtigen, over het
fijngevormde handje om er een langen kus op te drukken.

Slechts Andrejs misnoegen scheen grooter te worden, maar niemand lette


hierop.

Raffles vervolgde, terwijl hij zich tot Komartscheff richtte:

„Het huis, dat gij met het geld van mijn vriend hebt gekocht, wordt mijn
eigendom.

„Gij zult met uw dochter en uw neef de nog onbewoonde eerste étage van
de villa betrekken. Deze vertrekken gelijkvloers blijven ter beschikking van
mijn vriend en mij.”

Komartscheff scheen een oogenblik na te denken, daarop sprak hij met


zachte stem:

„Ik moet natuurlijk elk uwer voorwaarden aannemen, maar zullen wij onze
zaken daarboven verder drijven?”

„Neen, dat verbied ik u,” antwoordde Raffles.

„Maar wij hebben geld noodig voor onze heilige zaak,” klaagde
Komartscheff.

„Dat zal ik u verschaffen,” verzekerde de voorgewende Amerikaan. „Ik drijf


hier in Frankrijk groote zaken en de opbrengst van mijn ondernemingen zal
grootendeels uwe zaak ten goede komen.

„Ik denk, dat dit u aangenaam zal zijn, want gij loopt dan geen gevaar
meer, een menschenleven te verwoesten en de ziel van uw kind te
vergiftigen.”
Komartscheff keek vol innige dankbaarheid op naar den man, die hem als
een redder was verschenen.

Toen scheen hij een oogenblik na te denken. Eindelijk sprak hij:

„Al zouden de omstandigheden mij ook niet dwingen, uwe voorwaarden


aan te nemen, ik zou dit onder alle omstandigheden toch doen, want gij
zijt grootmoedig en edel. Eén verzoek wilde ik nog tot u richten.”

„Spreek,” antwoordde Harrison.

Na eenige aarzeling begon Komartscheff weer:

„Laat ons deze vertrekken behouden, want alleen Tatiana en ik wonen hier.
Andrejs woning bevindt zich in een eenzaam gelegen huis in de Rue
Bayen, het is door een geheime onderaardsche gang met deze villa
verbonden.”

„Dat is interessant,” liet Raffles zich ontvallen, „daar moet ik meer van
weten.”

„Ik heb geen enkele reden, u iets te verbergen,” sprak Komartscheff, „ik
verzoek u, mij te volgen.”

Hij opende een deur, die van de slaapkamer toegang gaf tot een zijvertrek.

Raffles trad binnen en zag vol verbazing een groote ruime kamer, die geen
enkel meubel bevatte.

Alleen een kleine steendrukpers, een smeltoven, een zetkast en een zeer
primitieve, ruw houten plank aan den muur, waarop fleschjes en kleine
doosjes onordelijk door elkaar stonden, bevonden zich in deze ruimte, die
haar licht kreeg van een groot, nu echter door gordijnen gesloten raam.
[16]

In een hoek tegenover het venster bevond zich in schuine richting een met
rijk beeldhouwwerk versierde schoorsteen.
Verrast over de vreemde meubelen, die deze kamer bevatte, bleef Raffles
een oogenblik op den drempel staan.

Komartscheff wachtte zijn vragen niet af, maar begon dadelijk uit te
leggen:
„Hier is mijn laboratorium, ik ben scheikundige van beroep en hier in dit
vertrek vervaardig ik de bonbons, die Tatiana noodig heeft voor het
verdooven van onze slachtoffers. [17]

„Op deze kleine steendrukpers drukken wij vlugschriften, die van hier uit
met veel moeite in het Osmaansche Rijk worden binnengesmokkeld.”

„En waar bevindt zich de geheime gang?” vroeg de Amerikaan.

„Hier, kijk!”

Komartscheff was naar den schoorsteen gegaan; door een druk op een
veer, die handig in het snijwerk was verborgen, schoof hij den
schoorsteenmantel als een deur op zijde. Hij wees Raffles een smallen
ingang, die nu zichtbaar was geworden.

Raffles kwam naderbij.

Hij keek in de donkere opening en zag een trap, die naar beneden voerde,
maar waarvan het onderste gedeelte in de duisternis verloren ging.

„Breng licht,” beval hij Komartscheff, „wij zullen naar beneden gaan.”

In dit oogenblik verscheen Andrej op den drempel der deur, die naar de
slaapkamer leidde.

Met van woede verwrongen gelaat keek hij naar Raffles en met moeite
siste hij:

„Mijn woning zult gij met rust laten, de oude—” hij wees naar
Komartscheff—„mag zich door u laten overbluffen, ik niet.”

Met onverstoorbare kalmte keek Raffles den jongen man in de oogen.

„Als woorden niet voldoende zijn, heb ik andere middelen voor u.”

Daarop draaide hij hem vol minachting zijn rug toe.


Achter Andrej zag Raffles Charly staan, die de twistwoorden had gehoord.
Andrej scheen echter gekalmeerd te zijn en door Charly gevolgd, kwam hij
nu het vertrek binnen.

Komartscheff had intusschen een lantaarn, die op de plank stond,


aangestoken en ging nu met het licht langs de smalle trappen naar
beneden.

De Amerikaan volgde hem, achter hem liep Andrej en eindelijk de


voorgewende Schot Mc Allan.

Op verzoek van Komartscheff trok Charly den schoorsteenmantel, die als


deur dienst deed, achter zich dicht en bij het flakkerende licht van de
lantaarn daalden zij een steile wenteltrap van ongeveer 40 treden af.

De gang, die zij nu bereikten, kon 12 à 15 meter lager liggen dan de


straat. De gang zelf was zoo breed, dat twee mannen elkaar konden
passeeren.

Lord Lister begreep, dat hij zich hier in een der diepe schachten bevond,
welke nog heden ten dage als de overblijfselen der oude catacomben het
onderaardsche Parijs doorkruisen.

Vermolmde doodshoofden en half verteerde beenderen, die op den bodem


lagen, bewezen, dat het vermoeden van Lord Lister juist was.

Langzaam bewogen de vier mannen zich voorwaarts bij het licht der
lantaarn.

Plotseling voelde Raffles, dat Andrej hem voorbijdrong.

Voordat hij begreep, wat deze van plan was, had Andrej zich tusschen hem
en Komartscheff geplaatst en terzelfder tijd weerklonk een slag. De jonge
man had de lantaarn op den grond geworpen, het licht doofde uit en een
ondoordringbare duisternis omgaf hen allen.

Dadelijk begreep Raffles den ernst van het oogenblik. Hij wilde snel zijn
revolver en electrische zaklantaarn te voorschijn halen, maar reeds voelde
hij zich door twee armen vastgegrepen en op den grond geslingerd.

Een sterke hand omklemde zijn hals en met dreigende stem klonk het hem
in de ooren:

„Schurk, maak licht of ik wurg je!”

Raffles herkende de stem van Charly Brand, die in de meening was, Andrej
te pakken te hebben.

Hij wilde Charly waarschuwen, maar tevergeefs trachtte hij een woord te
spreken; als in een schroef was zijn hals vastgeklemd.

Maar daar drong een zwakke lichtstraal door de duisternis en met groote
snelheid naderde Tatiana de groep. Zij hield een lantaarn in haar
linkerhand, die een schitterend licht verspreidde.

In hetzelfde oogenblik sloop Andrej naar Charly toe, die over Lord Lister
gebogen stond. Hij hield een blinkenden dolk in zijn opgeheven hand. (Zie
het titelblad.)

Een heesche lach kwam van de lippen van den [18]schurk en nog voordat
Charly op kon kijken, was de dolk in zijn zijde gedrongen.

Met een kreet wilde Charly opstaan, maar bewusteloos viel hij op Raffles
neer, die zich nu met inspanning van al zijn krachten van den grond
oprichtte.

Lord Lister overzag met een enkelen blik den toestand en begreep
onmiddellijk, wat hier gebeurd was.

Door een vuistslag neergeveld lag de oude man naast de lantaarn op den
grond. Vlak bij Raffles was Charly neergezonken en doodsbleek stond
Andrej tegen den muur, het bebloede wapen in de hand houdend.

Met een vloek wilde de schurk zich nu op Tatiana werpen, maar Raffles
was hem vóór. In zijn rechterhand het pistool geklemd houdend, riep hij
den jongen man toe:
„Terug, of ik schiet.”

Andrej wilde zich op zijn nieuwen vijand storten, maar terwijl hij zich
omdraaide, gleed zijn voet uit, hij viel en zijn eigen moordend wapen
drong hem in het hart.

Een bloedstroom kwam te voorschijn, een korte doodstrijd volgde en


Andrej was een lijk.

Eerst nu zag Tatiana, dat Mc Allan gewond was. Met een kreet van schrik
trok zij de kleeren van de wond, waarna zij haar zakdoek gebruikte om het
bloed te stelpen.

Raffles, die wel zag, dat Komartscheff uit zijn bewusteloosheid ontwaakte,
schoof de bevende Tatiana op zijde.

„Laat dat, kindlief, ik zal onzen vriend naar de villa terugdragen. Ik hoop,
dat zijn wond ongevaarlijk is, help gij uw vader, die uw steun noodig
heeft.”

Daarop nam hij Charly op en droeg hem naar de trap terug.

Geleund op den arm zijner dochter volgde de oude Komartscheff.

Met moeite beklom men de trap en terwijl de oude man uitgeput in een
stoel neerviel, legde Raffles met hulp van Tatiana den gewonden vriend op
het bed van het jonge meisje.

Een vluchtig onderzoek had hem ervan overtuigd, dat de wond inderdaad
van onschuldigen aard was. Vóór alles moest door een stevig verband
verder bloedverlies voorkomen worden.

Met vochtige oogen hoorde Tatiana’s vader naar Raffles’ verhaal over het
gebeurde in de onderaardsche gang.

Toen de oude geheel weer op zijn verhaal was gekomen, verzocht Raffles
hem, nu nogmaals den tocht te ondernemen naar de woning aan het
andere einde der gang.
Hij durfde met alle gerustheid zijn vriend aan de zorgen van het jonge
meisje toevertrouwen en zonder uitstel begaven de twee mannen zich
weer op weg.

De gang had overal dezelfde afmetingen.

Eindelijk, nadat het tweetal een weg van twee kilometer had afgelegd,
bleef de grijze gids plotseling staan.

Raffles zag bij het schijnsel der lantaarn de afgesleten treden van een
steenen trap, die niet zoo hoog was, als die, welke naar de villa leidde.

De zes smalle treden voerden naar een deur, welke op bijna onzichtbare
wijze in den muur was aangebracht en die nu door Komartscheff werd
geopend.

Het heldere daglicht scheen beiden mannen in het gelaat.

Raffles stak zijn electrische lantaarn in den zak en volgde Komartscheff in


een klein kamertje, welks schoorsteen, evenals in de villa der Avenue du
Bois de Boulogne, den toegang naar de catacomben bedekte.

Het scheen een slaapvertrek te zijn, want in een der hoeken stond een
bed.

De smalle, ouderwetsche ramen zagen uit op een tuin. Dikke gordijnen, die
tot op den grond neerhingen, verhinderen om een blik naar binnen te
slaan.

Raffles trad naar een der vensters en opende het gordijn. Hij zag, dat het
vertrek zich gelijkvloers bevond en aan de andere zijde van den tuin
bemerkte hij een woonhuis van één verdieping, welks front waarschijnlijk
aan de straatzijde lag. De kamer, waarin hij zich bevond, behoorde tot een
afzonderlijk gelegen tuinhuis.

Komartscheff vertelde hem, dat zijn vermoedens [19]juist waren. Het


tuinhuis, dat slechts uit twee vertrekken bestond, die op een klein portaal
uitkwamen, behoorde tot het huis in de Rue Bayen, dat door den eigenaar,
een ouden vrijgezel Menuisier, geheel alleen bewoond werd.

Deze heer Menuisier was het onderwerp der gesprekken van alle
babbelzieke vrouwen uit Ternes, zoo heette het stadsgedeelte, waarin deze
woning lag.

Zijn gierigheid was spreekwoordelijk en men verdiepte zich in allerlei


gissingen omtrent den oorsprong van zijn onmetelijk vermogen.
Twijfelachtige ondernemingen en woeker schenen de hoofdbronnen van
zijn kapitaal te zijn.

Hij oefende zijn woekerhandel reeds lang niet meer uit en leefde stil, maar
zijn onverzadiglijke gierigheid verhinderde hem, van zijn schatten te
genieten.

Hij leefde met zijn oude huishoudster, van wie men vertelde, dat zij
vroeger zijn beminde was geweest en was blij, dat hij een goed
betalenden huurder had gevonden voor zijn tuinhuis, van welks
onderaardschen uitgang hij geen vermoeden had.

Raffles had met groote belangstelling naar de verhalen van Komartscheff


geluisterd.

Deze heer Menuisier scheen hem bijzonder te interesseeren en het plan


kwam onmiddellijk bij hem op om dezen vroegeren woekeraar tot den
eerstvolgenden zijner slachtoffers te maken.

Zonder Komartscheff hiervan iets te laten merken, begon hij met dezen
den terugtocht.

Eerst moest Charly weer op de been gebracht en het lijk van Andrej
verwijderd worden. Dit laatste kon het gemakkelijkst geschieden door hem
een graf te graven in den bodem van de onderaardsche gang.

Dit onaangename werk moest Raffles alleen op zich nemen, want Charly
lag hulpeloos op het ziekbed en op Komartscheff’s steun viel bij dit werk
niet te rekenen.
Toen de avond aanbrak, begon de groote onbekende zijn werk. Voorzien
van een houweel en spade ging hij naar beneden, naar de plek, waar het
gevecht had plaats gehad.

Het lijk van Andrej lag in een bloedplas, waarin zacht en spookachtig de
waterdroppels van het vochtige dak der gang neervielen! Zonder zijn
houweel noodig te hebben, had hij binnen een kwartier een gat van een
meter diep in den leemachtigen bodem gegraven. Hierin legde hij het lijk.

Daarop wierp hij de natte, kleverige stukken aarde weer in de opening en


nadat nog eens een kwartier was verloopen, waren alle sporen van het
bloedige gevecht verdwenen.

Vermoeid leunde Raffles tegen den muur. De ongewone arbeid in gebukte


houding had hem veel meer vermoeid dan hij had gedacht.

Maar hij had tijd noch lust om lang uit te rusten.

Hij legde zijn werktuigen op den grond, nam zijn lantaarn op en ging de
gang verder in, want hij wilde het wonderlijke tuinhuis nog eens aan zijn
onderzoekende blikken onderwerpen.

Spoedig had hij het eind der gang, waar het tuinhuis lag, bereikt.
Voorzichtig doofde hij het licht der lantaarn uit en opende de
geheimzinnige deur. Het zwakke licht, dat door de vensters binnendrong,
was hem voldoende.

Met een uitdrukking van voldoening liet hij zijn blikken door het vertrek
gaan. Het resultaat van dit nachtelijk onderzoek scheen zijn wenschen te
bevredigen; het plan, dat in hem was opgekomen, nam vastere vormen
aan.

Voorzichtig verdween hij weer achter den schoorsteen en sloot de deur


aan de buitenzijde.

Hij stak het licht in de lantaarn weer aan en terwijl zijn werkzaam brein
zich bezighield met het uitwerken zijner nieuwe plannen, begaf Raffles zich
weer naar de villa in de Avenue du Bois de Boulogne. [20]
[Inhoud]
VIJFDE HOOFDSTUK.
TATIANA.
De kamer, die tot dusverre als slaapvertrek van Tatiana had dienst gedaan,
had een groote verandering ondergaan.

Mc Allan had hier nu zijn intrek genomen om te herstellen van zijn wonde,
die gelukkig van ongevaarlijken aard bleek te zijn. De dolk was in zijn
vleesch gedrongen, zonder edele deelen te hebben geraakt, maar Charly
had veel bloedverlies geleden.

Toen Raffles uit de Catacomben was teruggekeerd, had hij alles in


gereedheid gevonden voor de verpleging van den patiënt.

Tatiana had met behulp der huishoudster in haar eigen kamer alles in orde
gemaakt.

Het bed, waarop zij kort geleden zelf uit haar verdooving was ontwaakt,
had men vervangen door een divan. Hierop droeg zij, met inspanning van
al haar krachten, den gewonde, en toen Raffles met Komartscheff
terugkeerde, vond hij het meisje vol angst over zijn vriend gebogen, die, in
dekens gehuld en op zachte kussens neergevleid, nog steeds bewusteloos
was.

Het gelukte den kalmen Amerikaan spoedig, zichzelf en de anderen gerust


te stellen. Eerst bracht hij met behulp van zacht prikkelende middelen, die
hij in het laboratorium van Komartscheff vond, zijn vriend, al was het ook
slechts tijdelijk, weer tot bewustzijn.

Daarop onderzocht hij de wond, waarop hij een zorgvuldig aangebracht


verband legde en nu besloot hij, geen dokter te halen, om het gevaar niet
te loopen, hun gemeenschappelijk geheim te moeten verraden.

Zoo moest Mc Allan dus zonder geneeskundige hulp herstellen.


Charly was weer in zijn toestand van bewusteloosheid teruggekeerd, die
eenige dagen aanhield en toen plaats maakte voor een gevoel van
wezenloosheid, zoodat hij niets om zich heen herkende.

Hij zag niets van het geheimzinnige werk, dat Raffles verrichtte, evenmin
als de opofferende zorg van het blonde jonge meisje, dat dag en nacht
niet van zijn bed week. Hij merkte niet op, hoe een uitdrukking van
vreugde zich over haar lief gelaat verspreidde, als in zijn koortsvlagen de
naam „Tatiana” van zijn bleeke lippen vernomen werd.

Dit waren voor Tatiana Komartscheff oogenblikken van het hoogste geluk.
Zij begreep dan, dat de jonge man haar niet haatte of verachtte, dat hij
haar had vergeven, en zij verdubbelde nog haar zorgen voor den zieke.

Ook de verhouding tusschen Raffles en haar was vriendschappelijker


geworden. De zonderlinge Amerikaan bracht uren door in de kamer met
den geheimen uitgang, en Tatiana was zoozeer in beslag genomen door
haar zorg voor den patiënt, dat zij niet lette op de geluiden, die
herhaaldelijk uit dat vertrek tot haar doordrongen.

Toen op zekeren dag Charly plotseling onrustiger dan anders was, klopte
het angstige meisje op de deur van de kamer, waarin de Amerikaan zich
bevond.

„Binnen!” klonk het en zij opende snel de deur.

Een oogenblik bleef zij verbaasd staan, want er was zooveel in de kamer
veranderd, dat het haar opviel.

Vóór alles zag zij, dat de steendrukpers en de plank met de chemicaliën


van haar vader verdwenen waren, [21]maar haar gedachten waren te zeer
vervuld met den patiënt, dan dat zij hierover langer dan een oogenblik
nadacht.

Zij deelde den Amerikaan den toestand van Mc Allan mede, en Raffles
haastte zich naar de legerstede van zijn vriend. Hij kwam al spoedig tot de
overtuiging, dat een zware droom den armen jongen onrustig maakte, en
schertsend sprak hij tot Tatiana, dat de zieke van zijn verpleegster
droomde.

Een diepe blos bedekte het gelaat van het meisje en zonder eenige
bedoeling, alleen om het gesprek een andere wending te geven, vroeg zij,
waarom de veranderingen in het aangrenzende vertrek waren
aangebracht.

Raffles werd plotseling ernstig.

„Mijn kind,” sprak hij, „vraag niet alles. Het is dikwijls gevaarlijk, te weten!”

Met een vriendelijken glimlach streelde hij haar wang en keerde daarna in
zijn kamer terug.

Ook Tatiana begaf zich weer naar haar plaats aan het ziekbed. De patiënt
scheen rustiger te zijn geworden.

Tatiana zat in den leunstoel, die naast den divan stond, waarop Mc Allan
lag. Haar blond hoofdje zonk achterover, vermoeid van het lange waken,
en de slaap sloot haar oogen.

In de kamer heerschte een diepe rust, de regelmatige tik van de pendule


scheen de stilte nog volkomener te maken.

Raffles, die even op den drempel was verschenen, had hoed en stok
opgenomen en was uitgegaan.

Patiënt en verpleegster sliepen. Het hoofd van den zieke schoof onrustig
op zijn kussen heen en weer en eindelijk opende Charly de oogen.

Verbaasd keek hij door het vertrek. Hij moest lang nadenken, voordat hij
zich kon herinneren, wat er was gebeurd. Weer doorleefde hij het
voorgevallene in de catacomben en nogmaals voelde hij het moordende
staal in zijn zijde dringen.

Daarna liet hem zijn geheugen in den steek, hij wist niet, wat er verder
met hem gebeurd was.
Plotseling viel zijn blik op het sluimerende meisje, dat naast den divan in
een stoel rustte.

Een vreugdestraal verhelderde zijn gelaat.

Zij, die hem in zijn droomen had bijgestaan als een reddende engel, zij
was dus werkelijk in zijn nabijheid.

Hoe lang hij hier had gelegen wist hij niet, maar zij had bij hem gewaakt,
volhardend en trouw totdat de slaap haar had overvallen.

Een gevoel van innige dankbaarheid maakte zich van hem meester en vol
ontroering keek hij naar het sluimerende meisje.

Maar wat was dat?

Tatiana sliep niet rustig; zij droomde en twee dikke tranen rolden over haar
wangen.

De herstellende kon zijn medelijden niet langer bedwingen. Met zachte


stem riep hij:

„Tatiana!”

Het meisje opende de oogen.

Zij ontwaakte als uit een bangen droom en haar verlegen blik viel op
Charly, die zich half had opgericht.

„Om Godswil, wat doet gij, gij moogt u nog niet bewegen!”

Tatiana was verschrikt opgesprongen en dwong met zachte hand den


patiënt weer te gaan liggen.

Glimlachend gehoorzaamde Charly, maar hij hield haar hand in de zijne


toen hij geruststellend sprak:

„Ik voel mij volkomen gezond. Mijn wond is zeker reeds genezen, maar gij
zijt bedroefd, gij hebt in den slaap geweend!”
Met een weemoedigen klank in haar stem antwoordde Tatiana:

„Ik heb in mijn droom de ontzettende gebeurtenissen uit mijn jeugd


doorleefd. Het ongeluk van mijn familie riep mijn tranen te voorschijn. Als
gij al mijn verdriet kendet, zoudt gij mij niet meer verachten!”

„Ik u verachten!” Charly richtte zich weer op. „Ik [22]aanbid u, Tatiana, ik
ben het toeval dankbaar, dat mij in uw nabijheid voerde, ik dank Andrej
voor de verwonding, die hij mij toebracht, want gij hebt mij genezen.
Tatiana, hoe zou ik u kunnen verachten, ik, die u liefheb!”

Het meisje trok haar hand uit de zijne en stond op.

„Neen, ga niet verder. Ik kan u niet antwoorden, voordat gij mijn


geschiedenis kent. Gij moet weten, wat mijn armen vader en mij er toe
heeft geleid om het beroep te kiezen, waardoor gij mij hebt leeren kennen
en waarvan gij en uw vriend bijna de slachtoffers waart geworden. Als gij
mij liefhebt, zult gij eerst weten, dat ik ook uwe achting verdien.”

Met gloeiende wangen en schitterende oogen stond zij tegenover den


verbaasden Mc Allan.

„Maar Tatiana, blijf toch kalm,” sprak hij op bezorgden toon.

„Ik ben kalm,” antwoordde zij met een glimlach. „Wilt gij naar mij
luisteren?”

En toen hij bevestigend knikte, begon Tatiana Komartscheff haar verhaal.

[Inhoud]
ZESDE HOOFDSTUK.
DE GESCHIEDENIS VAN GRAAF KOMARTSCHEFF.
„Onze familie, dat wil zeggen die van mijn vader, is van Russische afkomst
en er bestonden reeds graven Komartscheff onder de regeering van Iwan
den Verschrikkelijke. Zij waren rijke schapenfokkers in de vlakten van
Ukraine.

„Onder Czaar Alexander I moest mijn overgrootvader om politieke redenen


vluchten. Hij was oud en weduwnaar en slechts een zoon leefde met hem
samen op zijn bezittingen.

„In den nacht verlieten zij hun woonplaats. Wat zij aan geldswaarde
bezaten, namen zij mee en na lang ronddolen vestigden zij zich op Turksch
gebied, in het tegenwoordige Bulgarije, waar zij veilig waren voor de
Russische wetten.

„In de provincie Oost-Roumelië, bij de kleine stad Aitos, op eenige mijlen


afstands van de Zwarte Zee, gingen de beide vluchtelingen in een der
dalen van het Balkangebergte wonen.

„Voor een paar duizend roebel kregen zij land van den Pascha, die als
gouverneur het district bestuurde.

„Deze gouverneur, Elemer Pascha heette hij, was een welwillend,


rechtvaardig mensch, die zich erover verheugde, dat de wilskracht en lust
tot werken van mijn overgrootvader en zijn zoon de bevolking, die deels uit
Osmaansche Mohamedanen, deels uit Bulgaarsche Christenen bestond,
aanspoorde om hun gewone onverschilligheid en werkeloosheid te laten
varen.

„Elemer Pascha was tevreden over het goede voorbeeld, dat de


Komartscheffs, die hun graventitel hadden afgelegd, gaven, want zijn
district werd een toonbeeld van welvaart voor het geheele Osmaansche
Rijk.
„Geen enkele andere gouverneur uit het onmetelijke Rijk van den Sultan
zond zoo geregeld de inkomsten zijner belastingen op naar Konstantinopel.

„Mijn overgrootvader stierf en zijn zoon, die was getrouwd met de dochter
van een Bulgaarschen Wojwode, wiens bezitting aan de onze grensde,
nam het beheer der goederen over.

„Een jaar na den dood van mijn overgrootvader werd mijn vader geboren.
[23]

„De volksontwikkeling begon in dien tijd in de Balkanstaten reeds beter te


worden en mijn vader werd als knaap voor zijn studies naar Weenen
gezonden.

„Hij keerde volwassen terug, om zijn ouders te begraven, die in zekeren


nacht beide door een bende roovers, die de bezitting hadden geplunderd,
werden vermoord.

„De Pascha, die in Aitos resideerde—Elemer Pascha was reeds lang dood
en geen zijner opvolgers had zijn populariteit geërfd—haalde de schouders
op toen mijn vader hem het gebeurde verhaalde.

„Het volk mompelde, dat hij gemeene zaak maakte met de roovers en dat
in Stamboel de gunstelingen van den Sultan, die zelf van deze dingen niets
wist, benden samenstelden, om in de provincies te gaan plunderen.

„In onmachtige woede moest mijn vader zich in zijn lot schikken. Hij nam
het landgoed onder zijn beheer en zette het bedrijf verder voort.

„Daarop koos hij een nieuwen vertegenwoordiger, een Armeniër, en keerde


naar Weenen terug.

„Hier woonde zijn beminde, de eenige dochter van een niet zeer
vermogend Oostenrijksch overste.

„In Weenen, ten huize van de ouders der bruid, werd het huwelijk gesloten
en mijn vader nam zijn jonge vrouw mee naar de kust van de Zwarte Zee.

You might also like