For a three sinusoids reference noise input, the FPGA still seems to
work fine and is capabable of providing desirable filter output.
The noise is still a sinusoid but at a different frequency. The
filter output of the adaptive noise canceller on the DE2 board is
still as desirable as before.
When the reference noise is a white noise, even MATLAB itself can
hardly provide desirable output with an eight tap adaptive filter.
The output converges only when the number of filter taps is greater
than 120. There are most likely two reasons for this happening.
First, a whilte noise, though band limited, still contains a lot of
harmonics which complicates how the noise is added to the signal.
Second, the delays caused by the Simulink interface have more
influence on the filter's converging behavior if the reference noise
contains more harmonics. Since by the time our hardware
adaptive filter could have at most only 32 weights, it was certainly
not viable to conduct the adaptive filtering of a white noise,
unless it was highly bandlimited (bands smaller than 100Hz).
Figure 10: MATLAB simulation results for a band
limited white noise and 140 tap simulated adaptive filter
Figure 9: MATLAB simulation results for a band
limited white noise and 8 tap simulated adaptive filter
Figure 7: MATLAB simulation results for a reference noise
of three combined sinusoids at 300Hz, 500Hz, and 800Hz
Figure 3: MATLAB simulation results for a sinusoid
reference noise at 500 Hz
Figure 5: MATLAB simulation results for a sinusoid
reference noise at 800 Hz
Figure 8: Filter output (channel 1) and filter input
(channel 2) of the FPGA
for a combined sinusoid reference noise
Figure 6: Filter output (channel 1) and filter input
(channel 2 of the FPGA
for a sinusoid reference noise
Figure 4: Filter output (channel 1) and filter input
(channel 2) of the FPGA
for a sinusoid reference noise
First let's use a single sinusoid as the reference noise instead of
a white noise and the signal source is still the voice "Hello".
Figure 2 shows the simulation results generated by MATLAB using the
field measured inputs. And Figure 3 is the filter output of the FPGA
using the recorded inputs played back by MATLAB. It seems that if
the reference noise is a single sinusoid the FPGA can provde
desirable noise cancellation for a prerecorded and field measured
input signals.
After a sucessful demostration of the noise canceller's performance
with MATLAB simulated channel interference, it is time to test its
feasibility if the channel is an actual channel. This means that the
measurement of primary input ( the corrupted source) and the
reference noise must be conducted in a physical environment. As
discussed in the Simulated Channel Section, the channel describes
how the signal is distorted and it can be very complicated if the
measurements are performed in a real environment. Unlike a MATLAB
simuated channel, an actual channel does not have a lot of strength
attenuation but can have a lot of delays. In other words, the
amplitude response of a real channel is more likely to be all pass
while its phase response can be extremely complicated if we use
Windows 7 to record the sounds and playback to the FPGA. Windows 7
tends to add a lot of delays to the whole process and the
measurements of primary input and reference noise are very likely to
be out of phase.
Test Four:
Band Limited White Noise
Test Three: Three
additive sinusoidal noise signals at
300Hz, 500Hz, and 800Hz
Test Two: 800 Hz Single Sinusoidal
Noise
Test One: 500 Hz Single Sinusoidal Noise
|