How to find wavelength or wavenumber from signal? (MATLAB)
25 views (last 30 days)
Show older comments
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 = load('jednachw100.txt');
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.
Thaks for help in advance.
2 Comments
Answers (2)
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);
20 Comments
Walter Roberson
on 20 Sep 2015
I do not see the txt file attached. After you select a file, you have to click to Attach File.
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 ?
Thanks in advance!
0 Comments
See Also
Categories
Find more on Spectral Estimation 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!