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:
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
Buy some stuff from RS:
Also try to source