HW 13b: Difference between revisions
Jump to navigation
Jump to search
(One intermediate revision by the same user not shown) | |||
Line 25: | Line 25: | ||
===Adaptive Filter=== | ===Adaptive Filter=== | ||
e(k) = - | Ls = length(Noise2); % Noise & SignalNoise is an Ls by 1 matrix. | ||
N = 20; % Length of adaptive filter | |||
h = zeros(N,1); % Adaptive filter coefficients | |||
end | 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? Yes! | *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 17:02, 17 December 2008
Installing Ubuntu
- VMWare Player
- Pre-compiled Ubuntu 8.10
- U:vmplanet
- P:vmplanet.net
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
- Grab the following files from mu/shared/class/engr/455/Adaptive Filter SDR Project/
- grc.tar.gz
- http://gnuradio.org/trac/wiki/UbuntuInstall
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
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