Borrar filtros
Borrar filtros

How to plot frequency spectrum in log-log scale?

62 visualizaciones (últimos 30 días)
Rahul
Rahul el 14 de Sept. de 2023
Respondida: Rahul el 30 de Oct. de 2023
Hello,
I'm trying to plot a frequency spectrum for a given set of data with log scales in both axes which should scale as 10^0, 10^1,10^2........
I tried to write the code but its not generating the same.
Kindly let me know the corrections in the followint code. The data is as attached/uploaded herewith.
close all;
freq_sam = 100; % samples
period_ctrw = 0.005; % time period
freq_ctrw = 1/period_ctrw; % frequency
data_ctrw = data.variable.turbulence(:,100);
x_data = data.variable.turbulence(:,1);
y_data = data.variable.turbulence(:,100);
disp(x_data);
disp(y_data);
signal_ctrw = data_ctrw;
fft_ctrw = fft(signal_ctrw); % fourier transform
fft_ctrw = fftshift(fft_ctrw); % performing fft shift
f = freq_sam/2*linspace(-1,1,freq_sam);
figure;
set(gca, 'YScale', 'log')
set(gca, 'XScale', 'log')
plot(f, fft_ctrw,'.','MarkerSize',24);

Respuesta aceptada

Dyuman Joshi
Dyuman Joshi el 14 de Sept. de 2023
If you change the scale of axes and plot the data afterwards, the scale will get modified according to the data. Better to change the scale after plotting.
Note the warnings.
load('data5a_chi1-15.mat')
freq_sam = 100; % samples
period_ctrw = 0.005; % time period
freq_ctrw = 1/period_ctrw; % frequency
data_ctrw = data.variable.turbulence(:,100);
x_data = data.variable.turbulence(:,1);
y_data = data.variable.turbulence(:,100);
%disp(x_data);
%disp(y_data);
signal_ctrw = data_ctrw;
fft_ctrw = fft(signal_ctrw); % fourier transform
fft_ctrw = fftshift(fft_ctrw); % performing fft shift
f = freq_sam/2*linspace(-1,1,freq_sam);
figure;
plot(f, fft_ctrw,'.','MarkerSize',24);
Warning: Imaginary parts of complex X and/or Y arguments ignored.
set(gca, 'XScale', 'log')
set(gca, 'YScale', 'log')
Warning: Negative data ignored

Más respuestas (1)

Rahul
Rahul el 30 de Oct. de 2023
Hi Dyuman Joshi,
Regarding the the above code for generating frequency spectrum, I'd like to know if it is possible to generate the profile which
looks like as attached? This type of profile is what I'm actually trying to generate. But not getting it. The data I'm using is attached herewith. Kindly let me know if possible.
Rgds

Categorías

Más información sobre Log Plots en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by