280 likes | 413 Views
Noise Window ECE 445 Senior Design. INTRODUCTION. A Noise Window is a three dimensional noise cancelling system. Uses a DSP running the LMS algorithm to actively cancel ambient noise. The idea was to replace a glass window as a physical filter to noise. OBJECTIVE.
E N D
INTRODUCTION • A Noise Window is a three dimensional noise cancelling system. • Uses a DSP running the LMS algorithm to actively cancel ambient noise. • The idea was to replace a glass window as a physical filter to noise.
OBJECTIVE • 10 – 20 dB attenuation. • Compact, light in weight and inexpensive to fabricate. • Noise cancelling in at least 2 dimensions.
SYSTEM OVERVIEW • Hardware • PIC Microcontroller for computing incoming / outgoing signal trajectory. • Microphones/Speaker array • 6113 DSP Board for the adaptive filter • 6113 DSP Board for the delay filter for directional speaker output.
SYSTEM OVERVIEW • Software • LabVIEW code for calculating the incoming / outgoing trajectory. • LMS Algorithm for the DSP. • Delay Filter assembly code.
PROJECT MODULES • Incoming/Outgoing angle calculation code • Delay Filter • LMS Algorithm
Magnitude Calculation • This sub-module computes a magnitude coefficient that reflects the noisiest source in the room • Starting off with an array of two microphones, we evaluate the FFT of the signal twice. • The FFT is taken across one set of vectors followed by the FFT down the columns of those vectors, we are NOT taking the FFT(FFT(f(x,t)).
Magnitude Calculation • This gives a frequency spectrum of the signals from all the mics for a desired instant. • Thus, we now know which mic is closest to the noisiest source and the index of this source is sent to the angle calculator code.
Magnitude Calculation • The maximum index is sent to the Angle Calculator module
Angle Calculation • By- RahulSabnani Noise Window
Angle Calculation • The sub module calculates the angle of a signal at desired frequency. • Its primary inputs are the maximum index, desired frequency, speed of sound, number of microphones and distance between them. • The angle is based on the phase delay between the microphones.
Angle Calculation • Depends on the magnitude of spatial FFT and the coefficient corresponding to it. • The direction that the given frequency is coming from depends on the coefficient having maximum magnitude.
Angle calculation: Design • Angle= asin(-u*D*c*T/(V*M*d))
Angle Calculation: Testing • The testing was done by comparing 2 different inputs: • First, we generated signals in Labview with a fixed angle and frequency and checked for our output. • Secondly, we used inputs from function generator with a known phase difference and calculated our output depending on the time delay between the function generators.
Success • The angle calculation was pretty accurate. • The results were in the range of 5% error with respect to actual angle. • The angle calculated was successfully sent to the delay filter for directional delay in the form of a amplitude modulated signal.
Challenges • Interfacing the Labview code with the real world. • There were problems taking data from the microphones as the data was coming out as very noisy. • Interfacing the Labview code with the pic.
Noise Window Jonathan Stef LMS Delay Filter
Adaptive Filter: LMS Design Incoming Signal Outgoing Signal b0 + z-1 Incoming Error Signal b1 z-1 b2 Adaptive Coefficient Calculation B[i]=B[i]-μ*B[i]*X[i] z-1 b3 z-1 z-1 b63 • Complexity: O(9N) • If N is the FIR filter size, • With every new sample we need to compute: • 3N multiplies • N double subtraction • 4N Data retrieve ops • N Data store ops
Adaptive Filter: Testing clc %create input to system X1=sin(2*pi*[1:10000]/1000)/4; X2=sin(2*pi*[1:10000]/500)/4; X3=sin(2*pi*[1:10000]/250)/4; X4=sin(2*pi*[1:10000]/100)/4; X=X1+X2+X3+X4; u=.05; L= 64; % Generate Adaptive Filter Coefficients Badapt=zeros(1,L); % Allocate temporary storage for Data Data = zeros(1,L); for n=1:10000, % Shift in new data Data =[X(n),Data(1:end-1)]; % Get output Y(n)=dot(Badapt, Data'); % Perform adapt algorithm E(n)=X(n)+Y(n); for i=1:L, Badapt(i)=Badapt(i)-u*E(n)*Data(i); end; end; figure(1) plot(X(9000:10000),'b') hold on plot(Y(9000:10000),'r') figure(2) plot(X+Y,'g') hold on plot(.05*ones(1,10000),'--') plot(-.05*ones(1,10000),'--') plot(.005*ones(1,10000),'--r') plot(-.005*ones(1,10000),'--r')
Adaptive Filter: Engineering TI TMS320C6713 Convolution Function: Outgoing Signal Circular Addressed State Buffer (Temporary Memory) Contains the current and past (L-1) input values where L is the length of the Adaptive filter. Each new sample replaces former oldest sample. Circular Addressed Filter Buffer (Temporary Memory) Contains the current FIR filter coefficients to be used on the input. This is updated every sample. Incoming Signal • Adaptive Algorithm Performing LMS with • gradient descent. • e = error signal captured by the second • microphone. • μ = step size for the gradient descent Incoming Error Signal
Adaptive Filter: Results and Issues • Issues: • Sample-by-Sample adaptation cannot handle more than a 4-tap FIR filter due to limited DSP capabilities (i.e. too many operations to perform between sample acquisition) • The DSP adds a 30 sample (680μs) delay before processing can occur. • Combined, the two issues prevents external cancellation (four-tap filters cannot model 30 sample delays) Results: -This system was able to do internal noise cancellation for up to two, sinusoids for any two frequencies under 24kHz. -This means that the system would effectively cancel a sinusoid if the incoming sound were also routed through the DSP to obtain the standard noise cancelling model. Incoming Signal Input Signal DSP 30*z-1 LMS Adaptive FIR Output Signal Error Signal Input Signal (passthrough)
Delay Filter Angle L*z-1 θ Incoming Signal Memory _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ • Communication is handled by simple Amplitude Modulation of a sine wave: • Amplitude is 0Vpp= -90˚ (Left) • Amplitude is 1Vpp= 90˚ (Right) Incoming Signal Left Channel Out The amount of delay is calculated from the given angle by: θ D= ½ the distance between the speakers D Right Channel Out Y , X
Questions? • Thank you all for your time, efforts, and patience.