20100208

I loaded data obtained from the Agilent Infiniium 54832D-MSO oscilloscope into Matlab and did some basic FFT analysis:

foo=csvread('sig24_tag150.2_J20062.csv');
Fs = 1000000 % 1 Msps
x = foo(1:1000000,2); % 1M samples.

N=length(x);

%this part of the code generates that frequency axis
if mod(N,2)==0
    k=-N/2:N/2-1; % N even
else
    k=-(N-1)/2:(N-1)/2; % N odd
end
T=N/Fs;
freq=k/T;  %the frequency axis

%takes the fft of the signal, and adjusts the amplitude accordingly
X=fft(x)/N; % normalize the data
X=fftshift(X); %shifts the fft data so that it is centered

stem(freq,abs(X))
xlabel('Freq (Hz)')
ylabel('Amplitude')
title('FFT output')
grid

I used the guide at http://www.phon.ucl.ac.uk/courses/spsci/matlab/lect9.html to generate a specgram:

[SB, Sf, St] = specgram(x, 1024, Fs, 512, 384);
bmin = max(max(abs(SB)))/100; % 40dB
imagesc(St, Sf, 20*log10(max(abs(SB),bmin)/bmin));
axis xy;
xlabel('Time (s)');
ylabel('Frequency (Hz)');

lgrays = zeros(100,3);
for i=1:100
    lgrays(i,:) = 1-i/100;
end
colormap(lgrays);

Using bmin of 300 (top 50dB)

Using bmin of 100 (top 40dB)

Try using [SB, Sf, St] = spectrogram(x, 32768, 16384, 32768, Fs); - window of 32ms. Only finds 3 of 5 samples.

Try using [SB, Sf, St] = spectrogram(x, 4096, 3072, 4096, Fs); - window of 4ms. Finds five, but they're not very clear. Possibly clear enough though! Slow - 25 seconds

Shorter window (128/96/128) - poor vertical resolution. Can see five if I look at 50dB, but three at 40dB.

1024/720/1024 - loads of noise at 50dB, but very clear at 40dB.

I need to:

  • Use a ~20ms window and observe how this changes the result of the analysis - Done
  • Find out how to quantify the output, perhaps by listing peaks, noise floor level, and an SNR
  • Find out how to combine multiple inputs in an attempt to improve SNR
  • See if I can see the peaks in the very low signal level captures.

Start writing up a DECC seeding grant application.

Apply for and receive a July 14 date for introductory talk.

Test sample depth on Rigol scope. Someone has written a script that reads Rigol waveforms into Matlab

  • File contains 1048576 samples at 20MS/s (50ms)
  • Possibly a bit low.. at one second, can do 1Msps, so 500 KHz - maybe just enough for my two lowest tags at baseband.

Buy some stuff from RS:

  • SMA connectors
  • SMA-BNC adaptors, unless I can get SMA antenna mounts
  • Larger chip inductors that I don't have in my kit
  • 4 * BNC connectors to connect box to DSO

Also try to source

  • Magnetic antenna bases, brass tubes
    • Write to Electric Bug
    • Radiospecialists might also sell them, though their threaded ones aren't as cheap as the UHF connector ones.
    • Need to get a tube cut and machined too.