HW 13b: Difference between revisions
Jump to navigation
Jump to search
(New page: ===Installing Ubuntu=== *[http://www.vmware.com/products/player/ VMWare Player] *[http://vmplanet.net/node/74 Pre-compiled Ubuntu 8.10] **U:vmplanet **P:vmplanet.net ===Installing GNU Radi...) |
|||
(15 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
**U:vmplanet |
**U:vmplanet |
||
**P:vmplanet.net |
**P:vmplanet.net |
||
===GNU Radio + GNU Radio Companion=== |
|||
⚫ | |||
*GNU Radio Companion is the GUI for GNU Radio |
|||
===Installing GNU Radio + GNU Radio Companion=== |
===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=== |
|||
[http://wiki.aims.ac.za/mediawiki/index.php/Octave 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=== |
|||
[http://gnuradio.org/doc/doxygen/group__filter.html dOxygen filters] |
|||
[http://gnuradio.org/trac/wiki/Octave Using GNU Radio with Octave] |
|||
[https://www.cgran.org/wiki/DttSP DttSP + GNU Radio] |
Latest revision as of 16: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