Sådan konverteres grafen til et signal ligning?

Q

quantumeb

Guest
Jeg brugte "improfile" kommando af matlab at få intensiteten profil af et bestemt billede ...Men jeg er nødt til at beregne hyppigheden af FFT, og jeg ønsker at omdanne den "improfile" graf i visse bølge eller signal ligning som x (t) ...Hvordan kan jeg få Amplitude, frekvens, x data, y data fra "improfile"

Please help ...

tak
D

 
smxx skrev:

hi & Happy New Year

bruge Matlab kurvetilpasning funktion.
 
Hmmm, uklare spørgsmål.Du behøver ikke at konvertere improfile data i en funktion til at gøre en FFT.

Her er en let ændret udgave af MATLAB's improfile hjælpe eksempel:

I = imread ( 'liftingbody.png');
x = [19 427 416 77];
y = [96 462 37 33];
c = improfile (I, x, y);
h = fft (c);

 
echo47 skrev:

Hmmm, uklare spørgsmål.
Du behøver ikke at konvertere improfile data i en funktion til at gøre en FFT.Her er en let ændret udgave af MATLAB's improfile hjælpe eksempel:I = imread ( 'liftingbody.png');

x = [19 427 416 77];

y = [96 462 37 33];

c = improfile (I, x, y);

h = fft (c);
 
Den FFT give dig amplituder af alle hyppigheden dele af data.

Jeg er ikke sikker på, hvad x og y-koordinater, du ønsker.improfile giver intensitet værdier langs den sti, du angiver.Hvis du vil have koordinater for de ad denne vej, så brug denne alternative form som vist i MATLAB's hjælp:
[cx, cy, c] = improfile (...)

 
tak for det, og jeg vil prøve det senere i aften ...
Jeg er stadig i min arbejdsplads ...

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Græder eller meget trist" border="0" />
 
echo47 skrev:

Hmmm, uklare spørgsmål.
Du behøver ikke at konvertere improfile data i en funktion til at gøre en FFT.Her er en let ændret udgave af MATLAB's improfile hjælpe eksempel:I = imread ( 'liftingbody.png');

x = [19 427 416 77];

y = [96 462 37 33];

c = improfile (I, x, y);

h = fft (c);
 
Din kode virker ufuldstændig og giver mig fejlmeddelelser.

imshow er til at vise et billede, ikke for at plotte en graf.

Prøv dette:

I = imread ( 'liftingbody.png');
x = [19 427 416 77];
y = [96 462 37 33];
c = improfile (I, x, y);
h = fft (c);
plot (abs (h));

 
echo47 skrev:

Din kode virker ufuldstændig og giver mig fejlmeddelelser.imshow er til at vise et billede, ikke for at plotte en graf.Prøv dette:I = imread ( 'liftingbody.png');

x = [19 427 416 77];

y = [96 462 37 33];

c = improfile (I, x, y);

h = fft (c);

plot (abs (h));
 
Jeg blot har kopieret disse numre fra MATLAB's eksempel.

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

Type "doc improfile" og du vil se det.Stien har tre liniestykker, så der er fire (x, y) point.(Jeg bruger Matlab 7.0.1 - din version kan have forskellige eksempler.)

Hvis du vil have din (x, y), sti går fra (1.180) til (574.180), så bør dette arbejde:
x = [1 574];
y = [180 180];

 
echo47 skrev:

Jeg blot har kopieret disse numre fra MATLAB's eksempel.
<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" /> Type "doc improfile" og du vil se det.
Stien har tre liniestykker, så der er fire (x, y) point.
(Jeg bruger Matlab 7.0.1 - din version kan have forskellige eksempler.)Hvis du vil have din (x, y), sti går fra (1.180) til (574.180), så bør dette arbejde:

x = [1 574];

y = [180 180];
 
A = imread ( 'NOGEN FILENAME');
B = rgb2gray (A);
x = [1 574];
y = [180 180];
c = improfile (B, x, y);
h = fft (c);
d = fftshift (h);
plot (abs (d));

Jeg brugte ovenstående koder og i stand til at få en FFT transformering billede med en skarp PEAK nogle hvor nærheden 300 (x-aksen bør hyppigheden akse) ...Er der nogen indbygget i Matlab funktion for at få en vis værdi, at jeg måtte være nødvendig for x og y-aksen?STEM???Frequecy indbygget funktion ...
[/ quote]
Beklager, men du skal logge ind for at se denne vedhæftede fil

 
Jeg ser nice top.

Please clarify "får en vis værdi, at jeg kan være behov for".Jeg kan ikke decypher din grammatik.

 
echo47 skrev:

Jeg ser nice top.Please clarify "får en vis værdi, at jeg kan være behov for".
Jeg kan ikke decypher din grammatik.
 
I din MATLAB Workspace fanen, kan du dobbeltklikke på den array navn (eller type "openvar DatatabelNavn") for at åbne Array Editor.Så kan du undersøge alle array data.Eller du kan blot skrive array navn og MATLAB vil vise sine data.

Hvis du ønsker at finde den maksimale værdi i array, så prøv dette:
[x, y] = max (DatatabelNavn);

Du kan vise et datapunkt værdi direkte i handlingen () vindue.Klik på "Data Cursor"-knappen, og derefter klikke på et punkt på kurven, eller trække markøren over kurven.Bruge Alt-Klik her for at vise flere punkter.

 
echo47 skrev:

I din MATLAB Workspace fanen, kan du dobbeltklikke på den array navn (eller type "openvar DatatabelNavn") for at åbne Array Editor.
Så kan du undersøge alle array data.
Eller du kan blot skrive array navn og MATLAB vil vise sine data.Hvis du ønsker at finde den maksimale værdi i array, så prøv dette:

[x, y] = max (DatatabelNavn);Du kan vise et datapunkt værdi direkte i handlingen () vindue.
Klik på "Data Cursor"-knappen, og derefter klikke på et punkt på kurven, eller trække markøren over kurven.
Bruge Alt-Klik her for at vise flere punkter.
 

Welcome to EDABoard.com

Sponsor

Back
Top