Please can someone help me in moving the gratings pattern randomly to left and right.The code to generate gratings pattern is given below.
2 views (last 30 days)
Show older comments
n = 101
[X,Y] = meshgrid(linspace(-pi,pi,n));
sinewave2D = 8*sin(4*X);
figure(1)
imagesc(sinewave2D)
axis equal; axis off; colormap(gray);
contrast = 2;
scaled_sinewave2D = (((contrast.*sinewave2D)+1)*127.5)+1;
image(scaled_sinewave2D)
% rescales numbers between -1 and 1 to lie between 1 and 256
colormap(gray(256))
0 Comments
Answers (1)
Image Analyst
on 1 Apr 2016
Instead of X, use X-offset where offset is the distance you want to shift the signal.
offset = 2.5; % Whatever
sinewave2D = 8 * sin(4 * (X - offset));
2 Comments
Image Analyst
on 1 Apr 2016
The general formula is
signal = amplitude * sin((2 * pi / period) * (x - phaseShift)).
So just do this:
amplitude = 8; % Whatever you want.
period = 1.5708; % Whatever you want.
% Get random number between -pi and +pi
phaseShift = 2*pi*rand(1) - pi;
signal = amplitude * sin((2 * pi / period) * (x - phaseShift));
See Also
Categories
Find more on Waveform Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!