What is actually Normalized Frequency?
Mostrar comentarios más antiguos
I mean how could we define or describes it? I am new to MATLAB. I have calculated the the Frequency of 1st zero, Level of 1st slobe, Level of 2nd slobe and level of 3rd slobe in Rectangular, Triangular, Hann, Hamming, Blackman etc type in Frequency Domain after typing "wintool" in the window command of the MATLAB. Thanks
Respuesta aceptada
Más respuestas (1)
George Fodor
el 7 de Dic. de 2018
Editada: George Fodor
el 7 de Dic. de 2018
23 votos
Normalization means to have a measure for a signal in the same, fixed, easy to use range such as [0,..,1] and this measure should not have physical units.
For normalizing the frequency f to a value fn in range [0,...,1], the most obvious way is to divide f by the sampling frequency fs:
fn = f / fs (1)
Formula (1) is a number (no units) showing how many sampling periods with frequency fs are in the sampled signal f.
However, according to Nyquist-Shannon theorem, the sampling frequency is always at least two times the frequency f. Thus (1) is never larger than 1/2. To have fn in the range [0, 1], we multiply (1) with a factor 2:
fn = 2 * f / fs (2)
Now if we replace fs to be the Nyquist frequency, fs=2*f then we obtain fn=1. For higher sampling frequencies than Nyquist frequency, the value fn will be less than one since we divide 2*f by an increasingly large number, thus we obtain the range [0,..,1] for fn as we wanted. If one would not use the multiplier 2 in (2), then the range would be always [0,...,1/2] which is not so nice.
In graphical representations in Matlab, the normalized frequency is shown as “(x pi rad/sample)”. This comes from the following calculation. It is known that omega in [rad/sec] and f in [Hz] are related by the formula:
It means
f = omega / (2*pi) (4)
Replacing f above in (2) gives:
fn = 2*omega/(2*pi) / fs = (omega / pi) / fs (5)
We multiply (5) by pi and obtain:
fn * pi = omega / fs (6)
Now (omega / fs) has units [rad/sec] / [sample / sec] = [rad/sample]
Therefore we have fn in units [pi * rad / sample] as shown in graphics. However, creating a unit in this way is somewhat misleading since the relative frequency has no units, as seen in formula (1).
7 comentarios
Thanks very much George for your effort and time for explaining the normalisation. That was extremely useful. And I strongly believe that the beginning of every matlab tutorial on signal processing should show what you just wrote. That was excellent.
Hello again George! For eqn (6), the updated normalised frequency could be labelled as something arbitrary - such as fn1, right? So fn1 = pi*fn, where fn is the value obtained from eqn (5). So the final "units" of fn1 is still rad/sample (since a multiplication of pi doesn't change the units, although the multiplication of pi is a scaling factor), right? Thanks George!
Another thing is ... if we normalise angular frequency --- such as:
wn = w/ws gives one normalised form.
then wn1 = 2w/ws gives another one.
Then wn1 = 2w/(2.pi.fs) = w/(pi.fs) --- yet another normalised form.
And finally wn2 = pi.wn1 = omega/fs (which is equation 6).
Qiang Yang
el 2 de Jul. de 2020
Thanks, it is very helpful!
Zhao Lu
el 15 de Mayo de 2021
Appreciate.
Robbin Roddewig
el 5 de Abr. de 2022
Hate to be picky but the sampling theorem is not twice the highest frequency but more than twice. If you sampled a sine wave twice per cycle you could get a series of zeros (sampling always at the zero crossings). With nothing but zeros you have an infinite number of sine waves (including no sine wave) that would fit those samples. The Nyquist frequency is 1/2 the sample rate but the Nyquist freqeuncy is not the highest frequency that can be accurately represented with that sampling rate.
Jan
el 28 de Jul. de 2022
I agree with @Kenny's first comment that a MATLAB course on signal processing should start with @George Fodor's statement. Perhaps every help page that uses the normalized frequency should have a fold out window (hidden by default) as a reminder. Especially, since the script
b = fir1(48,[0.35 0.65]);
freqz(b,1,512)
plots the magnitde and phase of the corresponding transfer function on a normalized frequency axis spanning [0,1), while the code
b = fir1(48,[0.35 0.65]);
[h, w] = freqz(b,1,512);
The help page that includes the above code (fir1) describes a bandpass filter based on a Hamming window with the 'normalized cutoff frequencies' 0.35 and 0.65, which are both neccesarily below Nyquist. Clearly the 1 in the plot and the pi in the w-vector both represent the Nyquist frequency, but the description should really be clearer in that regard.
N/A
el 25 de Jun. de 2023
Sorry but according to (6), should the unit of fn be rad/sample/pi, or rad/(sample*pi)? How come it is pi*rad/sample?
Categorías
Más información sobre Descriptive Statistics en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!