annotate extra/FFT of a Simple Sinusoid.m @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents 6840f77b83aa
children
rev   line source
yading@10 1 % Example 1: FFT of a DFT_Sinusoid
yading@10 2
yading@10 3 % Parameters:
yading@10 4 N=64; % Must be a power of two
yading@10 5 T=1; % Set sampling rate to 1
yading@10 6 A=1; % Sinusoidal Amplitude
yading@10 7 phi=0; % Sinusoidal phase
yading@10 8 f=0.25; % Frequency (cycles/sample)
yading@10 9 n=[0:N-1]; % Discrete Time axis
yading@10 10 x=A*cos(2*pi*n*f*T+phi); % Sampled sinusoid
yading@10 11 X=fft(x); % Spectrum
yading@10 12
yading@10 13 % Plot time data:
yading@10 14 figure(1);
yading@10 15 subplot(3,1,1);
yading@10 16 plot(n,x,'*k');
yading@10 17 ni= [0:.1:N-1]; % Interpolated time axis
yading@10 18 hold on;
yading@10 19 plot(ni,A*cos(2*pi*ni*f*T+phi),'-k'); grid off;
yading@10 20 title('Sinusoid at 1/4 the Spampling Rate');
yading@10 21 xlabel('Time (samples)');
yading@10 22 ylabel('Amplitude');
yading@10 23 text(-8,1,'a)');
yading@10 24 hold off;
yading@10 25
yading@10 26 % Plot spectral magnitude;
yading@10 27 magX= abs(X);
yading@10 28 fn=[0:1/N:1-1/N]; %Normalized frequency axis
yading@10 29 sublplot(3,1,2);
yading@10 30 stem(fn,magX,'ok');grid on;
yading@10 31 xlabel('Normalized Frequency(cycles per sample))');
yading@10 32 ylabel('Magnitude(Linear)');
yading@10 33 text(-.11,40,'b)');
yading@10 34
yading@10 35 % Same thing on a dB scale:
yading@10 36 spec=20*log10(magX); %Spectral magitude in dB
yading@10 37 subplot(3,1,3);
yading@10 38 plot(fn,spec,'--ok'); grid on;
yading@10 39 axis([0 1 -350 50]);
yading@10 40 xlabel('Normalized Frequency (ccles per sample))');
yading@10 41 ylabel('Magnitude(dB)');
yading@10 42 text('Magnitude(dB)');
yading@10 43 text(-.11,50, 'c)');
yading@10 44 cmd=['print -deps ', '../eps/example1.eps'];
yading@10 45 disp(cmd); eval(cmd);