I understand you want to generate correlated noise with Gaussian-like pdf and autocorrelation and you are facing difficulty in 'gaussdesign' function especially the parameters 'span' and 'sps'.
As per the documentation here is what each parameter means:
- bt: The bandwidth-time product. It controls the width of the Gaussian pulse in the frequency domain. A typical value is between 0.3 and 0.5.
- sps: This defines how many samples we want to represent one symbol.Think of it as the resolution of our filter. A higher sps means a smoother and more accurate representation of the Gaussian shape. For instance: If sps = 8, then each symbol is represented by 8 samples.
- span – Filter Span in SymbolsThis defines how many symbols the filter spans. It controls the total length of the filter in terms of symbols. Total filter length = span × sps samples For example: If span = 6 and sps = 8, then the filter will have 6 × 8 = 48 taps (coefficients).
bt = 0.3;
span = 6;
sps = 8;
gFilter = gaussdesign(bt, span, sps);
- We get a filter with 48 coefficients.
- The filter spans 6 symbols, each represented by 8 samples.
- The shape of the filter is Gaussian, and its impulse response approximates a Gaussian function.
This will give you a 1D FIR filter with a Gaussian shape. We can then use it to filter white Gaussian noise:
whiteNoise = randn(1, 1000); % Generate white Gaussian noise
correlatedNoise = conv(whiteNoise, gFilter, 'same'); % Apply Gaussian filter
I have attached the documentation of 'guassdesign' for your reference: