You are on page 1of 14

Program

%hamming window computation


clc;
close all;
clear all;
rp=input('Enter the passband ripple: ');
rs=input('Enter the stopband ripple: ');
fp=input('Enter the passband frequency: ');
fs=input('Enter the stopband frequency: ');
f=input('Enter the sampling frequency: ');
wp=2*fp/f;
ws=2*fs/f;
num=-20*log10(sqrt(rp*rs))-13;
dem=14.6*(fs-fp)/f;
n=ceil(num/dem);
n1=n+1;
if(rem(n,2)~=0)
n1=n;
n=n-1;
end
disp('The order is:');n
y=hamming(n1);

%lowpass filter
b=fir1(n,wp,y);
[h,om]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,1);
plot(om/pi,m);
ylabel('Gain in dB---->');
xlabel('Frequency in rad/sec---->');

%highpass filter
b=fir1(n,wp,'high',y);
[h,om]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,2);
plot(om/pi,m);
ylabel('Gain in dB---->');
xlabel('Frequency in rad/sec---->');
%bandpass filter
wn=[wp ws];
b=fir1(n,wn,y);
[h,om]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,3);
plot(om/pi,m);
ylabel('Gain in dB---->');
xlabel('Frequency in rad/sec---->');
%bandstop filter
b=fir1(n,wn,'stop',y);
[h,om]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,4);
plot(om/pi,m);
ylabel('Gain in dB---->');
xlabel('Frequency in rad/sec---->');
OUTPUT

Enter the passband ripple: .05


Enter the stopband ripple: .03
Enter the passband frequency: 1300
Enter the stopband frequency: 1600
Enter the sampling frequency: 7400
The order is:

n=

26
RESULT
Thus the matlab program to design a FIR filter using hamming window
was written and the output was verified.
In signal processing, a window function (also known as an apodization
function or tapering function[1]) is a mathematical function that is zero-
valued outside of some chosen interval. For instance, a function that is
constant inside the interval and zero elsewhere is called a rectangular
window, which describes the shape of its graphical representation. When
another function or a signal (data) is multiplied by a window function, the
product is also zero-valued outside the interval: all that is left is the part
where they overlap; the "view through the window". Applications of
window functions include spectral analysis, filter design, and
beamforming.
A more general definition of window functions does not require them to
be identically zero outside an interval, as long as the product of the
window multiplied by its argument is square integrable, that is, that the
function goes sufficiently rapidly toward zero.[2]
In typical applications, the window functions used are non-negative
smooth "bell-shaped" curves,[3] though rectangle and triangle functions
and other functions are sometimes used.

Applications

Typical window function frequency response, showing main lobe, side


lobe level, and side lobe fall-off.
Applications of window functions include spectral analysis and the
design of finite impulse response filters.
Spectral analysis
The Fourier transform of the function is zero, except at
frequency . However, many other functions and data (that is, waveforms) do
not have convenient closed form transforms. Alternatively, one might be
interested in their spectral content only during a certain time period.
In either case, the Fourier transform (or something similar) can be applied
on one or more finite intervals of the waveform. In general, the transform is
applied to the product of the waveform and a window function. Any window
(including rectangular) affects the spectral estimate computed by this method.

Figure 1: Zoom view of spectral leakage


Windowing
Windowing of a simple waveform, like causes its Fourier
transform to develop non-zero values (commonly called spectral leakage) at
frequencies other than ω. The leakage tends to be worst (highest) near ω and
least at frequencies farthest from ω.
If the signal under analysis is composed of two sinusoids of different
frequencies, leakage can interfere with the ability to distinguish them spectrally.
If their frequencies are dissimilar and one component is weaker, then leakage
from the larger component can obscure the weaker’s presence. But if the
frequencies are similar, leakage can render them unresolvable even when the
sinusoids are of equal strength.
The rectangular window has excellent resolution characteristics for
signals of comparable strength, but it is a poor choice for signals of disparate
amplitudes. This characteristic is sometimes described as low-dynamic-range.
At the other extreme of dynamic range are the windows with the poorest
resolution. These high-dynamic-range low-resolution windows are also poorest
in terms ofsensitivity; this is, if the input waveform contains random noise close
to the signal frequency, the response to noise, compared to the sinusoid, will be
higher than with a higher-resolution window. In other words, the ability to find
weak sinusoids amidst the noise is diminished by a high-dynamic-range
window. High-dynamic-range windows are probably most often justified
in wideband applications, where the spectrum being analyzed is expected to
contain many different signals of various strengths.
In between the extremes are moderate windows, such
as Hamming and Hann. They are commonly used in narrowband applications,
such as the spectrum of a telephone channel. In summary, spectral analysis
involves a tradeoff between resolving comparable strength signals with similar
frequencies and resolving disparate strength signals with dissimilar frequencies.
That tradeoff occurs when the window function is chosen.
Discrete-time signals
When the input waveform is time-sampled, instead of continuous, the
analysis is usually done by applying a window function and then adiscrete
Fourier transform (DFT). But the DFT provides only a coarse sampling of the
actual DTFT spectrum. Figure 1 shows a portion of theDTFT for a
rectangularly-windowed sinusoid. The actual frequency of the sinusoid is
indicated as "0" on the horizontal axis. Everything else is leakage. The unit of
frequency is "DFT bins"; that is, the integer values on the frequency axis
correspond to the frequencies sampled by the DFT. So the figure depicts a case
where the actual frequency of the sinusoid happens to coincide with a DFT
sample, and the maximum value of the spectrum is accurately measured by that
sample. When it misses the maximum value by some amount [up to 1/2 bin], the
measurement error is referred to as scalloping loss (inspired by the shape of the
peak). But the most interesting thing about this case is that all the other samples
coincide with nulls in the true spectrum. (The nulls are actually zero-crossings,
which cannot be shown on a logarithmic scale such as this.) So in this case, the
DFT creates the illusion of no leakage. Despite the unlikely conditions of this
example, it is a popular misconception that visible leakage is some sort of
artifact of the DFT. But since any window function causes leakage, its
apparent absence (in this contrived example) is actually the DFT artifact.
Noise bandwidth
The concepts of resolution and dynamic range tend to be somewhat
subjective, depending on what the user is actually trying to do. But they also
tend to be highly correlated with the total leakage, which is quantifiable. It is
usually expressed as an equivalent bandwidth, B. Think of it as redistributing
the DTFT into a rectangular shape with height equal to the spectral maximum
and width B. The more leakage, the greater the bandwidth. It is sometimes
called noise equivalent bandwidth or equivalent noise bandwidth, because it is
proportional to the average power that will be registered by each DFT bin when
the input signal contains a random noise component (or is just random noise). A
graph of the power spectrum, averaged over time, typically reveals a flat noise
floor, caused by this effect. The height of the noise floor is proportional to B. So
two different window functions can produce different noise floors.
Processing gain
In signal processing, operations are chosen to improve some aspect of
quality of a signal by exploiting the differences between the signal and the
corrupting influences. When the signal is a sinusoid corrupted by additive
random noise, spectral analysis distributes the signal and noise components
differently, often making it easier to detect the signal's presence or measure
certain characteristics, such as amplitude and frequency. Effectively, the signal
to noise ratio (SNR) is improved by distributing the noise uniformly, while
concentrating most of the sinusoid's energy around one frequency. Processing
gain is a term often used to describe an SNR improvement. The processing gain
of spectral analysis depends on the window function, both its noise bandwidth
(B) and its potential scalloping loss. These effects partially offset, because
windows with the least scalloping naturally have the most leakage.
For example, the worst possible scalloping loss from a Blackman–Harris
window (below) is 0.83 dB, compared to 1.42 dB for a Hann window. But the
noise bandwidth is larger by a factor of 2.01/1.5, which can be expressed
in decibels as: 10 log10(2.01 / 1.5) = 1.27. Therefore, even at maximum
scalloping, the net processing gain of a Hann window exceeds that of a
Blackman–Harris window by: 1.27 +0.83 -1.42 = 0.68 dB. And when we
happen to incur no scalloping (due to a fortuitous signal frequency), the Hann
window is 1.27 dB more sensitive than Blackman–Harris. In general (as
mentioned earlier), this is a deterrent to using high-dynamic-range windows in
low-dynamic-range applications.

Filter design

Sine integral, showing part of frequency response for a truncated low-


pass filter.
Main article: Filter design
Windows are sometimes used in the design of digital filters, for example
to convert an "ideal" impulse response of infinite duration, such as a sinc
function, to a finite impulse response (FIR) filter design. Window choice
considerations are related to those described above for spectral analysis, or can
alternatively be viewed as a tradeoff between "ringing" and frequency-domain
sharpness.[4]
Hamming window

Hamming window; B=1.37


The "raised cosine" with these particular coefficients was proposed
by Richard W. Hamming. The window is optimized to minimize the maximum
(nearest) side lobe, giving it a height of about one-fifth that of the Hann
window, a raised cosine with simpler coefficients.[8][9]

[note 1]

 Note that:

Hamming
The Hamming window is a modified version of the Hanning window.
The shape of the Hamming window is similar to that of a cosine wave. The
following equation defines the Hamming window.
(
D)
for n = 0, 1, 2, …, N – 1
where N is the length of the window and w is the window value.
The following front panel shows a Hamming window with N = 32.

The Hanning and Hamming windows are similar, as shown in the


previous two front panels. However, in the time domain, the Hamming window
does not get as close to zero near the edges as does the Hanning window.
The Hamming window is determined by choosing in (3.1)
(with ) to cancel the largest side lobe [88].4.1 Doing this results in the
values

The peak side-lobe level is approximately dB for the Hamming


4.2
window [88]. It happens that this choice is very close to that which minimizes
peak side-lobe level (down to dB--the lowest possible within the
generalized Hamming family) [176]:
Since rounding the optimal to two significant digits gives , the
Hamming window can be considered the ``Chebyshev Generalized Hamming
Window'' (approximately). Chebyshev-type designs normally
exhibit equiripple error behavior, because the worst-case error (sidelobe level in
this case) is minimized. However, within the generalized Hamming family, the
asymptotic spectral roll-off is constrained to be at least dB per octave due to
the form (3.1) of all windows in the family. We'll discuss the true Chebyshev
window in §3.9 below; we'll see that it is not monotonic from its midpoint to an
endpoint, and that is is in fact impulsive at its endpoints. (To peek ahead at a
Chebyshev window and transform, see Fig.B.34.) Generalized Hamming
windows can have a step discontinuity at their endpoints, but no impulsive
points.

Figure 3.4: A Hamming window and its transform.


The Hamming window and its DTFT magnitude are shown in Fig.3.4.
Like the Hann window, the Hamming window is also oneperiod of a raised
cosine. However, the cosine is raised so high that its negative peaks
are above zero, and the window has adiscontinuity in amplitude leaving the
window (stepping discontinuously from 0.08 to 0). This makes the side-lobe
roll-off rate very slow. On the other hand, the worst-case side lobe plummets
to dB, which is the purpose of the Hamming window. This is 10 dB better
than the Hann case of Fig.3.3 and 28 dB better than the rectangular window.
The main lobe is approximately wide, as is the case for all members of the
generalized Hamming family ( ).
Due to the step discontinuity at the window boundaries, we expect a
spectral envelope which is an aliased version of a dB per octave (i.e., a
roll-off is converted to a ``cosecant roll-off'' by aliasing, as derived in §1.5 and
illustrated in Fig.1.12). However, for the Hamming window, the side-lobes
nearest the main lobe have been strongly shaped by the optimization. As a
result, the nearly dB per octave roll-off occurs only over an interior interval
of the spectrum, well between the main lobe and half the sampling rate. This is
easier to see for a larger , as shown in Fig.3.5, since then the optimized side-
lobes nearest the main lobe occupy a smaller frequency interval about the main
lobe.
Figure 3.5: A longer Hamming window and its transform.
Since the Hamming window side-lobe level is more than 40 dB down, it
is often a good choice for ``1% accurate systems,'' such as 8-bit
audio signal processing systems. This is because there is rarely any reason to
require the window side lobes to lie far below the signal
quantization noise floor. The Hamming window has been extensively used in
telephone communications signal processing wherein 8-bit CODECs have been
standard for many years (albeit -law encoded). For higher quality audio signal
processing, higher quality windows may be required, particularly when those
windows act as lowpass filters

Current speech, speaker and language recognition applications perform well


under clinical laboratory setting but robust recognition under variable
environments, handsets and transmission channels remains a constantly
challenging problem. A major source of problems are the spectral front-ends
based on either discrete Fourier transform (DFT) or linear prediction (LP).
The short-term spectrum is subject to many harmful variations.Due to
such variations, complex feature normalization, channelcompensation and score
normalization are required .In this paper, our focus is on the most popular
speechfront-end, the mel-frequency cepstral coefficients (MFCCs) [2].MFCC
computation begins by multiplying a short-term frame of speech by a tapered
window function [3] and computing the DFT of the windowed frame. The DFT
magnitude spectrum is then smoothed by using a psychoacoustically motivated
filterbank, followed by logarithmic compression and, finally, discrete cosine
transform (DCT). The final feature vector is usually appended with the first and
second order time derivatives (¢ and ¢2features) and further processed by
cepstral mean and variance normalization (CMVN) and other feature
normalizations. In this paper our goal is to make the first step, computation of
the base MFCCs, more robust.
From a statistical point of view, we imagine that, for every short-term
speech frame there exists a “true” random process which generates that
particular frame; an example would be a digital filter driven with random inputs
but with fixed filter coefficients. For speech signals, we imagine that there exists
a speaker- and phoneme-dependent random process from which the actual
speech sounds are generated from. This abstract viewpoint, in the context of
automatic speaker recognition, is well-modeled by the Gaussian mixture model
(GMM) back-end for cepstral features [4]. The means of GMMrepresent
speaker-dependent information and variances model uncertainty in the observed
vectors. In this paper, our goal is to reduce that uncertainty by using better
MFCC estimator. For different acoustic realizations of the same phoneme
spoken by the same speaker, a good MFCC estimator would produce “similar”
MFCC vec- tors. In statistical terms, we wish to have an MFCC estimator with
small variance. Naturally, we should also require the esti mated cepstrum to be,
on average, close to the true cepstrum and therefore have small bias. These bias
and variance [5] can quantitatively be analyzed, without any model of the
speech production mechanism itself, but by imposing a mathematical model of
the random process corresponding to a single speech frame (e.g. Gaussian zero-
mean stationary process as in [6]). The bias and variance can intuitively be
understood by considering the degree of smoothness in a spectrum estimate.
Smooth spectrum, such as the DFT spectrum after MFCC filterbank
averaging or an all-pole spectrum [7, 8] with a small number of poles, have a
small variance because they produce similar spectra for different instances of
the same random pro-cess. However, over-smoothing increases the bias because
of decreased spectral resolution. A good spectrum (and cepstrum) estimate,
therefore, should have low variance to be ro-bust against noise and other
nuisance factors but also retain lowenough bias to be accurate enough
representation for the given classification task.
What are the bias and variance of the typicalMFCC estima-tion procedure
and could they be improved? We first note that the Hamming-type of time-
domain window reduces the spectral leakage resulting from the convolution of
the signal and win-dow function spectra. The windowing, therefore, reduces the
bias. The variance, unfortunately, remains high [5]. One way to reduce the
variance of the MFCC estimator is to replace the Hamming window DFT
spectrum estimate by a so-called multi-taper spectrum estimate [6,9,10]. The
idea in multitapering, as illustrated in Fig. 1, is to pass the analysis frame
through differ-ent window functions and form the final spectrum estimate as a
weighted average of the individual sub-spectra. The window functions or tapers
are designed so that the estimation errors in the individual sub-spectra are
approximately uncorrelated. Averaging these uncorrelated spectra gives a low-
variance spectrum estimate and, consequently, low-variance MFCC estimate as
well. The multitaper method is similar to the well-known Welch’s method
which forms a time-averaged spectrum over multiple frames. Multitapers,
however, focus only on one frame and therefore make more efficient use of the
limited data. Although multitapering guarantees low variance spectrum
estimate, it has not gained much attention in speech process- ing so far [11].
One reason could be that, since there exists a number of different multitapers to
choose from, it may not be clear which suits well for modeling speech signals. It
is our goal, therefore, to carry out a comparative evaluation of different
multitaper techniques and compare their performance to conventional single-
taper technique.

You might also like