Simulink Assignment Help

The  solution shown below demonstrates the quality of our Simulink assignment help . It includes Simulink simulation model and a detailed report. Complex concepts in the area of Wireless communication such as coding and decoding principle, Viterbi  algorithm and convolutional codes are explained in simplistic manner.

Wireless Communications

Convolutional codes are a class of codes that enable correct transmission by taking up additional bandwidth, but instead of sending parity and check bits, it actually encodes the sequence in another longer sequence that has favorable properties. The codes are assumed to be binary as that is  Simulink assignment help the most frequent case in telecommunications.

Formal definition is that a binary convolutional code is denoted by a three-tuple (n, k, m) with the following significance: n output bits are generated whenever k input bits are received. The current n outputs are linear combinations of the present k input bits and the previous m × k input bits. This means that m designates the number of help with Simulink homework previous k-bit input blocks that must be memorized in the encoder and is called the memory order of the convolutional code.

As we will demonstrate in this project, the bandwidth is spent in a certain ratio but the resulting error rate is much smaller in the presence of the Gaussian white noise.

Theoretical background

Linear (n, k) block codes take k data symbols at a time and encode them into n code symbols. Long data sequences are broken up into blocks of k symbols and each block is encoded independently of all others. Convolutional encoders, on the other hand, convert an entire data sequence, regardless of its length, into a single code Simulink assignment help sequence by using convolution and multiplexing operations. In general, it is convenient to assume that both the data sequences (u0, u1, . . .) and the code sequences (c0, c1, . . .) are semi-infinite sequences and to express them in the form of power series:

The two power series are called data and code power series respectively. Argument D is called the delay operator. In practice, the summation is performed over a finite number of samples m – this number is the memory of the convolution code. A convenient was to implement a convolution is to use a shift register Simulink homework help with m memory cells. A general k-input, n-output convolutional encoder consists of k such shift registers, each of which is connected to wireless communications the outputs via n generator polynomials. By definition, a q-ary linear and time-invariant convolutional encoder help with Simulink assignment with k inputs and n outputs is specified by a k × n matrix G(D), called transfer function matrix, which consists of generator polynomials  (D), h = 1, 2, . . . , k, l = 1, 2, . . . , n, as follows

The total memory M of a convolutional encoder is the total number of memory elements in the encoder. The maximal memory order m of a convolutional encoder is the length of the Simulink project help longest input shift register. The constraint length K of a convolutional encoder is the maximum number of symbols in a single output stream that can be affected by any input symbol.

Decoding principle

The decoding is performed using a dynamic programming solution known as Viterbi algorithm. In its simplest and most common form, the Viterbi algorithm is a maximum likelihood (ML) decoding algorithm for convolutional codes. Recall that a ML decoder outputs the estimate if i is the index (or one of them selected at random if there are several) which maximizes the expression  , over all codewords c0, c1, c2, . . . . The conditional pmf  defines the Simulink assignment help  channel model with input X and output Y which is used, and v is the received (and possibly corrupted) codeword at the output of the channel.

The path metric µ(v|ci) for a received sequence v given a code sequence ci is computed as:

The second expression defines a symbol metric. The partial path metric µ (t) (v|ci) at time t, t = 1, 2, . . ., for a path, a received sequence v, and given a code sequence ci , is computed as:

The Viterbi algorithm makes use of the trellis diagram to compute the partial path metrics µ (t) (v|ci) at times t = 1, 2, . . . , N for a received v, given all code sequences ci that are candidates for a ML decision, in the following well defined and organized manner.

(1) Every node in the trellis is assigned a number that is equal to the partial path metric of the path that leads to this Simulink matlab help node. By definition, the trellis starts in state 0 at t = 0 and µ (0)(v|ci) = 0.

(2) For every transition from time t to time t + 1, all q (M+k) (there are q M states and q k different input frames at every time t) t-th branch metrics µ(v (t) |c (t) i ) for v given all t-th codeframes are computed.

(3) The partial path metric µ (t+1)(v|ci) is updated by adding the t-th branch metrics to the previous partial path metrics µ (t) (v|ci) and keeping only the maximum value of the partial path metric for each node in the trellis at time t + 1. The partial path that yields the Simulink assignment help maximum value at each node is called the survivor, and all other partial paths leading into the same node are eliminated from further consideration as a ML decision candidate. Ties are broken by flipping a coin.

(4) If t + 1 = N = n(L + m) where L is the number of data frames that are encoded and m is the maximal memory order of the encoder), then there is only one Simulink homework help survivor with maximum path metric µ(v|ci) = µ (N) (v|ci) and thus ˆc = ci is announced and the decoding algorithm stops. Otherwise, set t ← t + 1 and return to step 2.

The path with maximum path metric µ(v|ci) selected by the Viterbi decoder is the maximum likelihood path.

Simulink model

The following block diagram shows the main segments of the encoding-decoding system:


All the blocks have a specific function, and some of them need tweaking to achieve a sensible integrity of the system and correct results.

Convolutional Encoder

The Convolutional Encoder block encodes the signal from the Bernoulli Binary Generator. The example uses the industry Simulink assignment help standard rate 1/2 convolutional code, with constraint length 7, defined by the following diagram.


The encoder structure is described by a pair of binary numbers, having the same length as the code’s constraint length, that specify the connections from the delay cells to modulo-2 addition nodes. The binary number for the upper Simulink assignment solution addition node is 1111001. A 1 indicates that the bit in the corresponding delay cell (reading from left to right) is sent to the addition node, and a 0 indicates that the bit is not sent. The binary number for the lower addition node is 1011011 and converting these two Simulink assignment help binary numbers to octal gives the pair [171,133]. This pair is entered into the block’s dialog by typing poly2trellis(7, [171 133]) in the field for Trellis Structure.

Complex to Real-Imag

The Complex to Real-Imag block, labeled Re(u), receives the complex signal and outputs its real part. Since the output BPSK Modulator Baseband block has zero complex part, all of the signal’senergy is carried by the real part. It is not necessary to Simulink matlab help demodulate the signal, because the Viterbi Decoder block can accept unquantized inputs. The block is realized using a Real-Imag separator and a terminator for the imaginary output.

Viterbi Decoder

The Viterbi Decoder block decodes the signal using the Viterbi algorithm. The Decision Type parameter is set to Unquantized so that the block can accept real numbers from the make my Simulink homework Complex to Real-Imag block. The Traceback depth parameter, which is set to 96, is the number of branches in the trellis that the block uses to construct each traceback path. This produces a delay of 96 between the input and output of the block.

Setting Parameters in the Convolutional Code Model

The following modifications were done to tweak the model:

  1. Double-click the Bernoulli Binary Generator block and check the box next to Frame based outputs in the block’s dialog.
  2. Double-click the AWGN Channel block and make the following changes to the default parameters in the block’s dialog:
  • Set Es/No to -1.
  • Set Symbol period to 1/2. Since the code rate is 1/2, this setting causes the block to produce the same amount of noise per do my Simulink assignment channel symbol as it would without channel coding. For more information, see Verifying the Symbol Period.
  1. Double-click the Error Rate Calculation block and make the following changes to the default parameters in the block’s dialog:
  • Set Receive delay to 96. The Viterbi Decoder block creates a delay of 96, due to its Traceback depth setting.
  • Check the box next to Stop simulation.
  • Set Target number of errors to 100.

Adding a reference branch

In order to test and compare the results, another branch was added that doesn’t use convolutional encoding. The encoder block is removed and instead of a Viterbi decoder a BPSK demodulator is introduced. This block has no delays so there is a Simulink assignment help slight mismatch between the total number of samples registered in the upper and lower branch. The final Simulink model is shown below:



The simulation time can be selected to be arbitrarily large as the simulation stops after catching 100 errors in the convolution code branch. In the time span during which the Simulink project help convolutional branch caught 100 errors, the other branch caught 644 errors. The two error rates are 0.01596 an 0.1012 respectively, rounded to four significant digits.