How to generate correlated noise

10 vues (au cours des 30 derniers jours)
ric1321
ric1321 le 8 Août 2018
Hi to everyone. I have to generate some correlated noise with Gaussian-like pdf and autocorrelation. It's quite simple in theory: incorrelated Gaussian noise generated with randn(1,...) filtered with a 1D Gaussian FIR filter, whose impulse response is equal to the desired noise autocorrelation. My issue is to implement the Gaussian FIR filter. I could use gaussdesign(bt,span,sps): - bt: the 3dB passband - span: number of symbols - sps: samples per symbol But I don't know how to use 'span' and 'sps'.

Réponses (1)

Anudeep Kumar
Anudeep Kumar le 30 Juin 2025
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:

Catégories

En savoir plus sur Digital and Analog Filters dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by