Engee documentation

gaussdesign

The design of the Gaussian FIR filter for pulse generation.

Library

EngeeDSP

Syntax

Function call

  • h = gaussdesign(bt,span,sps) — designs a low-frequency FIR filter with Gaussian pulse generation and returns a vector h filter coefficients. The filter is truncated to characters span, and each period of the symbol contains counts sps. Filter order sps*span must be even.

Arguments

Input arguments

# bt is the product of the bandwidth by level 3 dB per symbol duration

+ positive real scalar

Details

The product of the bandwidth by level 3 dB per symbol duration, given as a positive real scalar. Bandwidth by level 3 dB is measured in hertz, the duration of the symbol is in seconds. Smaller values bt lead to a longer pulse duration.

# span — number of characters

+ 3 (by default) | positive integer scalar

Details

The number of characters specified as a positive integer.

# sps — number of counts per symbol

+ 2 (by default) | positive integer scalar

Details

The number of samples per symbol period (oversampling factor), set as a positive integer.

Output arguments

# h — FIR filter coefficients

+ vector-string

Details

Coefficients of the Gaussian FIR filter for pulse generation, returned as a string vector. The coefficients are normalized in such a way that the nominal gain in the passband is always equal to 1.

Data types

Float64

Examples

Gauss Filter for GSM GMSK digital cellular communication system

Details

We point out that the modulation used to transmit bits is Gaussian Minimum-Shift Keying (GMSK). The bandwidth of this pulse is 3 dB, which corresponds to 0.3 bit rates. The filter should be trimmed to 4 characters, and each character represent 8 counts.

import EngeeDSP.Functions: gaussdesign, impz

bt = 0.3
span = 4
sps = 8
h = gaussdesign(bt, span, sps)

n_max = span * sps + 1
n = collect(1:n_max)

plot(n, impz(h),
     seriestype = :stem,
     marker = :circle,
     title = "Impulse Responce",
     xlabel = "n (samples)",
     ylabel = "Amplitude",
     legend = false)

gaussdesign 1

Algorithms

The impulse response of a Gaussian filter is determined by the expression

Where

— this is the product of the bandwidth by the symbol time, determined by the argument bt, where — the bandwidth of the filter by level 3 dB, a — symbol time. The number of characters between the beginning and the end of the pulse (span) and the number of counts per character (sps) determine the length of the impulse response: .

Literature

  1. Krishnapura, N., S. Pavan, C. Mathiazhagan, and B. Ramamurthi. «A baseband pulse shaping filter for Gaussian minimum shift keying.» Proceedings of the 1998 IEEE International Symposium on Circuits and Systems. Vol. 1, 1998, pp. 249–252.

  2. Rappaport, Theodore S. Wireless Communications: Principles and Practice. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 2002.