Reply by robert bristow-johnson November 9, 20102010-11-09
On Nov 9, 9:11&#2013266080;am, "enricophpdsp" <enricophpdsp@n_o_s_p_a_m.yahoo.com>
wrote:
> hello, > > while designing any low pass filter we specify > > f= remez(234,[0 0.3 0.5 1],[ 1 1 0 0]); > we write [0 0.3 0.5 1] instead of [ o *pi, 0.3*pi, &#2013266080;0.5* pi, 1* pi] > saying that we are using normalised frequency. > but according to the definition of normalised frequency it is the frequency > divided by the sampling frequency. > so do these definitions clash? > and I want to remove 50 hz noise in my signal. so while designing filter > how should I normalise it?
MATLAB gets a lot of conventions wrong. in their firpm() or remez() function, they define "1" to be the nyquist frequency, which is half of the sampling frequency. normally, in normal usage, us normal DSP folk say that "normalized frequency" is the frequency (whether angular or not) that is divided by the sampling frequency. so in non-radian frequency (like Hertz, if it weren't normalized), f=1/2 means the nyquist frequency, and for radian or angular frequency, omega=pi means nyquist. in both cases, this is the same as saying that the sampling period is 1 unit of time. in MATLAB "1" means nyquist. and sometimes "1" means DC and N/2+1 means nyquist. they don't get any of these conventions right. r b-j
Reply by Tim Wescott November 9, 20102010-11-09
On 11/09/2010 06:11 AM, enricophpdsp wrote:
> hello, > > while designing any low pass filter we specify > > f= remez(234,[0 0.3 0.5 1],[ 1 1 0 0]); > we write [0 0.3 0.5 1] instead of [ o *pi, 0.3*pi, 0.5* pi, 1* pi] > saying that we are using normalised frequency. > but according to the definition of normalised frequency it is the frequency > divided by the sampling frequency. > so do these definitions clash? > and I want to remove 50 hz noise in my signal. so while designing filter > how should I normalise it?
"Normalization" means to scale everything by some sensible common factor. The huge pitfall in that definition is the word "sensible" -- what makes perfect sense to me may be the worst damn thing in the world for you. So you just can't count on something being normalized the way that you think would be sensible. How do you cope? One, read the fine manual. Two, test -- even if the manual tells you, you'll still want to double check. It doesn't take much time to design a simple low-pass filter then run a Bode plot, after all. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
Reply by tjc November 9, 20102010-11-09
>hello, > >while designing any low pass filter we specify > >f= remez(234,[0 0.3 0.5 1],[ 1 1 0 0]); >we write [0 0.3 0.5 1] instead of [ o *pi, 0.3*pi, 0.5* pi, 1* pi] >saying that we are using normalised frequency. >but according to the definition of normalised frequency it is the
frequency
>divided by the sampling frequency. >so do these definitions clash? >and I want to remove 50 hz noise in my signal. so while designing filter >how should I normalise it? > >thnx > >
Type "help firpm" in Matlab. (firpm is the replacement for remez in newer versions. It implements the same Parks-McClellan algorithm. It should work the same as remez, but I don't have access to an older version of matlab, so I can't test it.) The crucial part is: "F is a vector of frequency band edges in pairs, in ascending order between 0 and 1. 1 corresponds to the Nyquist frequency or half the sampling frequency." So, using firpm(234, [0 0.3 0.5 1],[ 1 1 0 0]) creates a lowpass filter with a cutoff starting at 0.3*fs/2 and ending at 0.5*fs/2. Since you (hopefully) know your sampling frequency, you should then be able to figure out the band edges to pass into firpm.
Reply by enricophpdsp November 9, 20102010-11-09
hello,

while designing any low pass filter we specify 

f= remez(234,[0 0.3 0.5 1],[ 1 1 0 0]);
we write [0 0.3 0.5 1] instead of [ o *pi, 0.3*pi,  0.5* pi, 1* pi]
saying that we are using normalised frequency.
but according to the definition of normalised frequency it is the frequency
divided by the sampling frequency.
so do these definitions clash?
and I want to remove 50 hz noise in my signal. so while designing filter
how should I normalise it?

thnx