MATLAB Answers

0

How Fourier Synthesis is performed using Matlab ?

Asked by ramdas patil on 18 May 2015
Latest activity Commented on by Ahmed Mujtaba on 16 Nov 2016
I have read about Fourier Synthesis
http://whatis.techtarget.com/definition/Fourier-synthesisFourier-synthesis I want to clear my concept about Fourier Synthesis using Matlab .But don't know how to do this.
So can anybody show me how Fourier Synthesis is performed using Matlab?

  0 Comments

Sign in to comment.

2 Answers

Answer by Youssef Khmou
on 18 May 2015
Edited by Youssef Khmou
on 18 May 2015

Fourier synthesis is simple application of coefficients summation either numerically or symbolically, Fourier decomposition requires certain conditions of the input function, you can start with a simple example which is an approximation of a square wave of 2 Hz, using 11 terms :
Fs=150;
t=0:1/Fs:4-1/Fs;
f=2;
x=square(2*pi*f*t);
figure;
plot(t,x);
axis([0 1 -2 2]);
% Approximation with Fourier decomposition
y=0;
N=11;
for r=1:2:N
y=y+sin(2*pi*f*t*r)/r;
end
hold on;
plot(t,y,'r');
xlabel('t');
ylabel('magnitude');
hold off;

  1 Comment

Thanks.. Exactly what I was looking for. Simple and Compact.

Sign in to comment.


Answer by Image Analyst
on 18 May 2015

There is nothing at that link. I don't know what Fourier Synthesis might be synthesizing. I don't think computing the Fourier spectrum of a signal or image is called "synthesizing", at least not by anyone I know, so I'm not really sure. You can synthesize things though, such as the attached demo where I synthesize clouds by manipulating the Fourier Spectrum.

  4 Comments

Show 1 older comment
You made your own script or function called fft2 and it looks like that is being used in preference to the real one. This is what you should see:
>> which fft2
C:\Program Files\MATLAB\R2015a\toolbox\matlab\datafun\fft2.m
Use a different name for your own version of it that you've placed in C:\Users\RK\Documents\MATLAB so that there is no conflict.
@Image Analyst sorry but when I run clouds.m file and click on "CONSTANT H ", I am still getting the following error
Attempted to access radius(346.5,615.5); index must be a positive integer or logical.
Error in noiseonf (line 59) radius(rows/2+1,columns/2+1) = 1; % .. avoid division by zero.
Error in clouds (line 53) grayImage = noiseonf(rows, columns, 1.7); % 1.7 is a good value.
>>
Make sure that you're passing in an even number for rows and columns.

Sign in to comment.