MATLAB Answers


How generating band limited white noise with matlab

Asked by Randy82
on 30 Jun 2013

In matlab I use if true % code randn(1,length(N)) end to generate white noise... Now I would like to generate band limited white noise (e. g. from 240 to 435 Hz). How must I code that in matlab!?


2 Answers

Answer by Wayne King
on 2 Jul 2013
 Accepted answer

That's not a very good approximation to a bandpass filter between 240 and 435 Hz.

Look at your magnitude response:


If you're going to use the window method, can you up the order significantly?

Compare your filter to:

[B1,A1] = fir1(48,[fd fu]/fn);

Now you can do:

noise_limited = filter(B1,A1,white_noise);


Answer by Wayne King
on 30 Jun 2013
Edited by Wayne King
on 30 Jun 2013

band limited white noise is not possible. White noise by definition has a flat power spectral density function.

You can generate a white noise sequence and then filter that sequence to generate a band-limited noise but that noise will not be white.

You do not tell us what the sampling frequency is, which is a critical piece of information to have in designing the filter (you cannot design the filter without it), but I'll assume 2,000 Hz in the following example.

    d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2', 150,240,435,550,60,0.5,60,2000);
    Hd = design(d);
    y = filter(Hd,randn(1000,1));

You can view the filter's magnitude response


I've also given you a minimum-order design with 60-dB of stopband attenuation. If you need less stopband attenuation, you can specify that, or if you wish to specify your filter with a certain order, you can also do that with fdesign.bandpass


Ok, there are a lot of parameters i need to design the filter... My sampling frequency is e.g.

fs = 2000;

What about to generate band limited noise in this way:

fn = 0.5*fs;
fd = 240;
fu = 435;
[B, A] = fir1(10,[fd fu]/fn);
noise_limited = filter(B, A, white_noise);

That works better - thanks!

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!