1. The problem
This project involves designingandimplementing a narrow double notch filter to remove two undesired tones from an audio signal while leaving most of the signal untouched. In particular, we have a band-limited audio signal sampled sampling period of T=1/8192 seconds. This is a speech clip with a bandwidth of that of a phone signal. The digital signal can be found in the data file x.mat. The original analog signal is corrupted by the tones created by a phone when pressing the number 1. The tones created originally had continuous-time frequencies of f1=697Hz and f2=1209 Hz. You can listen to the file in MATLAB after loading it (using >>load x.mat), using the command >>sound(x,Fs).
You are going to process the sampled signal to remove the tones while keeping as much of the signal intact as possible. A discrete double notch filter with two pairs of finite poles and two pairs of finite zeros must be designed to surgically eliminate these undesired tones from the signal (using the pole-zero placement filter design method).
Once you know where you want your poles and zeros, specify H(z) and derive your system difference equation from H(z). Implement the system and processing the data in the file x.mat. Use the filter() command or put the difference equation for the system in a loop. Convince yourself the system is performing correctly by listening to the output signal.
ECE 425/525 Double Notch Filter Project
1. The problem
This project involves designing and implementing a narrow double notch filter to
remove two undesired tones from an audio signal while leaving most of the signal
untouched. In particular, we have a band-limited audio signal sampled sampling period
of T=1/8192 seconds. This is a speech clip with a bandwidth of that of a phone signal.
The digital signal can be found in the data file x.mat. The original analog signal is
corrupted by the tones created by a phone when pressing the number 1. The tones
created originally had continuous-time frequencies of f1=697 Hz and f2=1209 Hz. You
can listen to the file in MATLAB after loading it (using >>load x.mat), using the
command >>sound(x,Fs).
You are going to process the sampled signal to remove the tones while keeping as much
of the signal intact as possible. A discrete double notch filter with two pairs of finite
poles and two pairs of finite zeros must be designed to surgically eliminate these
undesired tones from the signal (using the pole-zero placement filter design method).
Once you know where you want your poles and zeros, specify H(z) and derive your
system difference equation from H(z). Implement the system and processing the data
in the file x.mat. Use the filter() command or put the difference equation for the system
in a loop. Convince yourself the system is performing correctly by listening to the
output signal.
2. What to include in your Answer
➢
➢
➢
➢
The Design Steps.
The poles and zeros values
Your Matlab code.
Conclusion
Hints
1. Remove the annoyed tones from the signals, the frequencies for these tone are
f1 = 697HZ & f2 = 1209 HZ,
In order to do that the zeros values are calculated from both frequencies.
Therefore, we need to calculate Omega values first Ω1 = 2πf1 & Ω2 = 2πf2.
Then Omegs should be convert to degrees ω1 = Ω1*T, ω2 = Ω2*T in radians
ω1|deg = ω1|rad* 180/π, ω2|deg = ω2|rad* 180/π
2. Calculate the Zeros from the following equations
Z1 = cos (ω1) + j sin(ω1),
Z2 is the conjugate of Z1
Z3 = cos (ω2) + j sin(ω2),
Z4 is the conjugate of Z2
3. Draw the zeros in the unit circle and locating the poles near the zeros and
inside the unit circle to guarantee that it’s a stable transfer function (TF),
4.
Draw the location of poles, as shown in figure (1); it’s easy to determine their
values.
This not the right values
Z1 = 0.9 + 0.5i, Z2 = 0.9 – 0.5i, Z3 = 0.7 + 0.6i, Z4 =0.7 – 0.6i
P1=0.86+j*0.48, P2=0.86-j*0.48, P3=0.67+j*0.57 and P4= 0.67+j*0.57.
The values of poles and zeros are complex numbers with their conjugates to
affect the frequency in both sides or to make an even frequency response. The
Transfer Function can be defined by its poles and zeros.
ω1 = Ω*180/π
b=poly([Z1 Z2 Z3 Z4])
a=poly([P1 P2 P3 P4])
a(1)y[n]+a(2)y[n-1]+a(3)y[n-2]+…..+ a(N+1)y[n-N]=
b(1)x[n]+ b(2)x[n-1]+b(3)x[n-2]+…..+ b(1)x[n-M]
filtfilt command to build a filter and use sound
listen to the output signal
Use