# How to find wavelength or wavenumber from signal? (MATLAB)

54 views (last 30 days)
Michal G on 18 Sep 2015
Answered: mm99 on 27 Dec 2019
Hello
I am working on my master thesis and it is connected with signal processing.
I have a numerical model of plate in which i have got an extortion as a 5 periodic sin wave.
I have collected displacements in Y direction from all points on surface of my plate (400 points) in one time increment. I put it into Matlab as a vector:
data=reshape(data,[],1);
y=fft2(data);
plot(abs(fft(data)));
and i have recived something like this: In x axis i have my all sampling points which is 400(all nodes from surface of plate). My task is to get a wavenumber in x-axis but i can't do this.
##### 2 CommentsShowHide 1 older comment
Michal G on 20 Sep 2015
definition of wavenumber is k=2pi/wavelength

Walter Roberson on 18 Sep 2015
Untested
numpoint = length(data);
curtick = get(gca, 'XTick');
lefthalf = curtick(curtick <= numpoint/2);
leftwaveL = numpoint ./ (lefthalf - 1);
righthalf = curtick(curtick > numpoint/2);
rightwaveL = numpoint ./ (numpoint - righthalf + 1);
waveL = [leftwaveL(:); rightwaveL(:)];
ticklab = cellstr(str2num(waveL));
set(gca, 'xticklabel', ticklab);
Michal G on 20 Sep 2015
I can't add any more files today:( i sent yopu a private message with my vector.

mm99 on 27 Dec 2019
Hi!
I am doing similar thing, but have some trouble with sine extortion. I get an error: "Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 1-by-101." This 1-by-1 is the point in which I want the sine to start and 1-by-101 is this sine with hann window. Do you maybe know what is wrong ?