Changing from logarithmically spaced

I currently have a function which gives me center frequencies, but I want to change the chape to be more like the attached. What I have right now is similar to this but flipped, how can I change my code to give me center frequencies shapes like the image? Thank you for your time!
fs = 20e3;
numFilts = 32; %
filter_number = 5;
order = 4;
CenterFreqs = logspace(log10(50), log10(8000), numFilts);
figure
plot(CenterFreqs)
title('Center Frequncies')

Answers (2)

Hi,
As per the information provided, I can understand that you would like to shape your graph same as the shape of image shared. I would suggest you to plot the data of the 'CenterFreqs' by multiplying it -1 and plot the graph in the -ve -axis. So, basically plotting the mirror image w.r.t the origin (0,0). You can use this modified code:
fs = 20e3;
numFilts = 32;
filter_number = 5;
CenterFreqs = logspace(log10(50), log10(8000), numFilts);
plot(CenterFreqs)
title('Original Graph')
figure
CenterFreqs=-1*CenterFreqs; % Mirror image w.r.t to x-axis
plot(-1:-1:-32,CenterFreqs) % Mirror image w.r.t to y-axis
title('Desired Graph')
Hoping this will help in resolving the issue!
fs = 20e3;
numFilts = 32;
filter_number = 5;
order = 4;
CenterFreqs = logspace(log10(50), log10(8000), numFilts);
figure
plot(CenterFreqs, 'DisplayName', 'Original Plot')
hold on
%flipping x and y values accordingly
plot(flip(1:numel(CenterFreqs)), max(CenterFreqs)-CenterFreqs, 'DisplayName', 'Modified Plot')
title('Center Frequncies')
legend('Location', 'best')

5 Comments

The shape is now correct, but I use center frequencies later so I do not want to change just the plot I want to also change the values. I tried this, but the shape is incorrect, how could I modify this?
fs = 20e3;
numFilts = 32; %
filter_number = 5;
order = 4;
CenterFreqs = logspace(log10(50), log10(8000), numFilts);
CenterFreqs=flip(1:numel(CenterFreqs));
figure
Sorry, but I don't understand what you meant to say.
Do you want to get the values of the flipped/mirrored plot?
Then use this -
flipx_values = flip(1:numel(CenterFreqs));
flipy_values = max(CenterFreqs)-CenterFreqs;
@Dyuman Joshi Yes so if I want to resave these flipped y values under centerfreqs, I could just do
CenterFreqs=flipy_values because when I do this it messes up the rest of my script when it should just be the reverse of the original CenterFreqs

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Asked:

S
S
on 28 Feb 2024

Commented:

S
S
on 27 Mar 2024

Community Treasure Hunt

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

Start Hunting!