How to find wavelength or wavenumber from signal? (MATLAB)
20 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (2)
Walter Roberson
am 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 Kommentare
Walter Roberson
am 20 Sep. 2015
I do not see the txt file attached. After you select a file, you have to click to Attach File.
mm99
am 27 Dez. 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 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!