- Technical Services and Consulting
- Embedded Systems | Firmware Developement | Simulations
- Electrical and Electronics Engineering
How to change the graph of frequency domain
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
mohd akmal masud
el 20 de Mayo de 2024
Respondida: Hassaan
el 20 de Mayo de 2024
Dear all,
I have coding to convert from spatial domain to frequency domain. Below is my coding.
Z = zeros(99); % create square matrix of zeroes
origin = [round((size(Z,2)-1)/2+1) round((size(Z,1)-1)/2+1)]; % "center" of the matrix
radius = round(sqrt(numel(Z)/(2*pi))); % radius for a circle that fills half the area of the matrix
[xx,yy] = meshgrid((1:size(Z,2))-origin(1),(1:size(Z,1))-origin(2)); % create x and y grid
Z(sqrt(xx.^2 + yy.^2) <= radius) = 1; % set points inside the radius equal to one
Z = im2double(Z)
imshow(Z); % show the "image"
%spatial domain
figure, imtool(Z)
%Frequency Domain
j = fftshift(fft2(Z));
figure, imshow(j)
j1 = log(1+abs(j));
figure ,imshow(j1)
j2 = bar(j1);
My graph frequency domain like this
How to make the graph like below
0 comentarios
Respuesta aceptada
Hassaan
el 20 de Mayo de 2024
% Create a square matrix of zeroes
Z = zeros(99);
origin = [round((size(Z,2)-1)/2+1) round((size(Z,1)-1)/2+1)]; % "center" of the matrix
radius = round(sqrt(numel(Z)/(2*pi))); % radius for a circle that fills half the area of the matrix
[xx,yy] = meshgrid((1:size(Z,2))-origin(1),(1:size(Z,1))-origin(2)); % create x and y grid
Z(sqrt(xx.^2 + yy.^2) <= radius) = 1; % set points inside the radius equal to one
Z = im2double(Z);
imshow(Z); % show the "image"
% Spatial domain
figure, imtool(Z)
% Frequency Domain
j = fftshift(fft2(Z));
j1 = log(1 + abs(j));
% Display the frequency domain image using imagesc
figure;
imagesc(j1);
colormap('jet'); % You can choose a different colormap if you prefer
colorbar;
title('Frequency Domain Representation');
% Extract a line profile through the center of the frequency domain representation
center = round(size(j1, 2) / 2);
lineProfile = j1(center, :);
% Plot the line profile
figure;
plot(lineProfile);
title('Line Profile of Frequency Domain');
xlabel('Frequency');
ylabel('Magnitude');
-----------------------------------------------------------------------------------------------------------------------------------------------------
If you find the solution helpful and it resolves your issue, it would be greatly appreciated if you could accept the answer. Also, leaving an upvote and a comment are also wonderful ways to provide feedback.
It's important to note that the advice and code are based on limited information and meant for educational purposes. Users should verify and adapt the code to their specific needs, ensuring compatibility and adherence to ethical standards.
Professional Interests
Feel free to contact me.
0 comentarios
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!