필터 지우기
필터 지우기

How to display the Amplitude and Phase Spectra plots in one page one on top of another?

조회 수: 4 (최근 30일)
I want to display the Amplitude and Phase Spectra plots in one page one on top of another, so if anyone could help me with that it would be great. Actually I am new to matlab, and I made this program by learning short programs published here on mathworks site.
%PLOTTING THE WAVE SPECTRUM OF THE DATA PROVIDED
%Taken :- The sample rate of 5 samples/second or deltaT = 0.2
data = importdata('Signal.txt');
a = (data);
dataT = importdata('Time.txt');
b = (dataT);
figure, plot(b,a,'b.-', 'LineWidth', 2);
axis([0 92.4 -2 2]);
grid on;
title('Wave Spectrum of Data', 'FontSize', 17);
xlabel('Time', 'FontSize', 13);
ylabel('Wavelet', 'FontSize', 13);
line([0,100], [0, 0], 'Color', 'k', 'LineWidth', 2);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gcf, 'Name', 'Wave Spectrum Of Data', 'NumberTitle', 'Off');
hold on
%PLOTTING THE FFT(FAST FOURIER TRANSFORM) OF THE DATA
spectrum = fft(data);
deltaT = 0.2;
numElements = length(spectrum);
Fs = 1 / deltaT;
shiftedSpectrum = fftshift(abs(spectrum));
f = (Fs) * linspace(-numElements/2, numElements/2, numElements);
figure, plot(f, shiftedSpectrum, 'b.-', 'LineWidth', 2);
axis([0 1157.5 0 80]);
grid on;
title('FFT(FAST FOURIER TRANSFORM) of Wave', 'FontSize', 17);
xlabel('Frequency', 'FontSize', 13);
ylabel('Amplitude', 'FontSize', 13);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gcf, 'Name', 'FFT Of Wave', 'NumberTitle', 'Off');
hold on
%PLOTTING THE AMPLITUDE SPECTRA OF THE DATA PROVIDED
nexttile([1 1]);
figure, plot(f, abs(spectrum), 'b.-', 'LineWidth', 2);
axis([0 1157.5 0 80]);
grid on;
title('Amplitude Spectrum of Data', 'FontSize', 17);
xlabel('Frequency', 'FontSize', 13);
ylabel('Amplitude', 'FontSize', 13);
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gcf, 'Name', 'Amplitude Spectrum', 'NumberTitle', 'Off');
hold on
%PLOTTING PHASE SPECTRA OF THE DATA PROVIDED
nexttile([1 2]);
figure, plot(f, angle(spectrum),'b.-', 'LineWidth', 2);
axis([0 1157.5 -4 4]);
grid on;
title('Phase Spectrum of Data', 'FontSize', 17);
xlabel('Frequency', 'FontSize', 13);
ylabel('Phase (radians)', 'FontSize', 13);
line([0,1157.5], [0, 0], 'Color', 'k', 'LineWidth', 2)
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
set(gcf, 'Name', 'Phase Spectrum', 'NumberTitle', 'Off');
hold on

답변 (0개)

카테고리

Help CenterFile Exchange에서 Spectral Analysis에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by