HW 13b: Difference between revisions

From Class Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 25: Line 25:


===Adaptive Filter===
===Adaptive Filter===
% LMS algorithm for adaptive noise cancellation

h = zeros(N,1);
mu = 1/(10*N*var(n));
%mu = 1.0;
for k=N:Ls
xk = n(k:-1:(k-N+1));
nhat(k) = h'*xk';

e(k) = - y(k) + nhat(k);
h = h - mu*e(k)*xk';
%/(xk'*xk); % For the previous line.
end


Ls = length(Noise2); % Noise & SignalNoise is an Ls by 1 matrix.
N = 20; % Length of adaptive filter
h = zeros(N,1); % Adaptive filter coefficients
mu = 1/(1000*N*var(Noise2)); % Need to change
for k=N:Ls % Offset by the length of the adaptive filter to "start up"
xk = Noise2(k:-1:(k-N+1)); % Flip shift
nhat(k) = (h')*(xk'); % Multiply integrate
e(k) = - SignalNoise(k) + nhat(k); % Error term
h = h - mu*e(k)*xk'/(xk*xk'); % Dividing by D^2 makes it independant of mu
end


====Questions====
====Questions====
*Is h the adaptive filter coefficients?
*Is h the adaptive filter coefficients? Yes!
*When you save the voice, is it an Nx1 or 1xN matrix?
*When you save the voice, is it an Nx1 or 1xN matrix?
*whos (octave) will show all variables and their dimensions


===Possibly promising links===
===Possibly promising links===

Latest revision as of 16:02, 17 December 2008

Installing Ubuntu

GNU Radio + GNU Radio Companion

  • GNU Radio Companion is installed with GNU Radio 3.2 and above. Install from the trunk. Synaptic Package Manager will only install 3.0.4
  • GNU Radio Companion is the GUI for GNU Radio

Installing GNU Radio + GNU Radio Companion

SSB Demodulation

  • Convert the *.auf files (and not the *.au files) using Audacity, note the sampling rate
  • Wave source allows you to play the converted *.wav files
  • Bandpass filter to single out the 3kHz (and get rid of the 1/f noise at the same time)
  • Shift down to baseband with a cosine wave
  • Low pass filter to single out the signal at the baseband (and to throw out the signal at +/- 2f)
  • Use your favorite sink to hear/see the results

Octave Help

Octave Wiki

Adaptive Filter

 Ls = length(Noise2);			% Noise & SignalNoise is an Ls by 1 matrix.
 N = 20;        			% Length of adaptive filter
 h = zeros(N,1);			% Adaptive filter coefficients
 mu = 1/(1000*N*var(Noise2));	        % Need to change
 for k=N:Ls				% Offset by the length of the adaptive filter to "start up"
   xk = Noise2(k:-1:(k-N+1));		% Flip shift
   nhat(k) = (h')*(xk');		% Multiply integrate
   e(k) = - SignalNoise(k) + nhat(k);	% Error term
   h = h - mu*e(k)*xk'/(xk*xk'); 	% Dividing by D^2 makes it independant of mu
 end

Questions

  • Is h the adaptive filter coefficients? Yes!
  • When you save the voice, is it an Nx1 or 1xN matrix?
  • whos (octave) will show all variables and their dimensions

Possibly promising links

dOxygen filters

Using GNU Radio with Octave

DttSP + GNU Radio