Hi, I need to show the Magnitude spectrum made up of a window of 128 samples for the loaded signals. These two-magnitude spectra need to be animated (plotted) w.r.t. the time-domain plots on the LHS of the figure. Till now I have manged to extract the magnitude spectrum for the whole signal and then plot after the animation, any ideas how I can alter the code so that it doses the above mentioned? Thanks!
clear allclose allclcload('ch1_first_5s.mat');load('ch2_first_5s.mat');fs = 128;n1 = 0:1:((5 * fs) - 1);n2 = 1:1:(fs - 1);for i = 1:1:511 subplot(2, 2, 1); plot((i + n2), ch1_first_5s(i + n2), 'b'); title('Channel 1 - Time Domain EEG plot'); ylim([-200 200]); ylabel('Amplitude'); xlim([i (i + 128)]); xlabel('Discrete Time n (Sample Number)'); grid on; subplot(2, 2, 3); plot((i + n2), ch2_first_5s(i + n2), 'b'); title('Channel 2 - Time Domain EEG plot'); ylim([-200 200]); ylabel('Amplitude'); xlim([i (i + 128)]); xlabel('Discrete Time n (Sample Number)'); grid on; pause(0.05);endN = length(n1);N1 = (2)^nextpow2(N);X_k1 = fft(ch1_first_5s, N1); X_k1 = X_k1(1:(N1 / 2));X_k2 = fft(ch2_first_5s, N1); X_k2 = X_k2(1:(N1 / 2));Mag1 = abs(X_k1);Mag2 = abs(X_k2);f = fs * (0:(N1 / 2) - 1) / N1; subplot(2, 2, 2);plot(f, mag2db(Mag1 / N1), 'b');ylim([-60 20]); ylabel('Magnitude (dB)');xlim([0 f(end)]); xlabel('Frequency (Hz)');title('Channel 1 - Freq Domain EEG plot');grid on;subplot(2, 2, 4);plot(f, mag2db(Mag2 / N1), 'b'); ylim([-60 20]); ylabel('Magnitude (dB)');xlim([0 f(end)]); xlabel('Frequency (Hz)');title('Channel 2 - Freq Domain EEG plot');grid on;
Best Answer