# gaussian_convolution_kernel

`Graph.gaussian_convolution_kernel(std, offset=0)`

Create a convolution kernel representing a normalized Gaussian.

Use this kernel to allow angular frequencies in the range roughly determined by its width, and progressively suppress components outside that range.

### Parameters

**std**(*float**or**Tensor*) – Standard deviation $\sigma$ of the Gaussian in the time domain. The standard deviation in the frequency domain is its inverse, so that a high value of this parameter lets fewer angular frequencies pass.**offset**(*float**or**Tensor**,**optional*) – Center $\mu$ of the Gaussian distribution in the time domain. Use this to offset the signal in time. Defaults to 0.

### Returns

A node representing a Gaussian function to use in a convolution.

### Return type

### SEE ALSO

`Graph.convolve_pwc`

: Create an Stf by convolving a Pwc with a kernel.

`Graph.sinc_convolution_kernel`

: Create a convolution kernel representing the sinc function.

## Notes

The Gaussian kernel that this node represents is defined as:

$K(t) = \frac{e^{-(t-\mu)^2/(2\sigma^2)}}{\sqrt{2\pi\sigma^2}}.$In the frequency domain, this Gaussian has standard deviation $\omega_c= \sigma^{-1}$. The filter it represents therefore passes angular frequencies roughly in the range $[-\omega_c, \omega_c]$.

For more information on Stf nodes see the Working with time-dependent functions in Boulder Opal topic.

## Examples

Filter a signal by convolving it with a Gaussian kernel.

```
>>> gaussian_kernel = graph.gaussian_convolution_kernel(std=1.0, offset=3.0)
>>> gaussian_kernel
<ConvolutionKernel: operation_name="gaussian_convolution_kernel">
>>> signal
<Pwc: name="alpha", operation_name="pwc_signal", value_shape=(), batch_shape=()>
>>> filtered_signal = graph.convolve_pwc(pwc=signal, kernel=gaussian_kernel)
>>> filtered_signal
<Stf: operation_name="convolve_pwc", value_shape=(), batch_shape=()>
```

Refer to the How to characterize a transmission line using a qubit as a probe user guide to find the example in context.