desilva wrote:
> Jeg sidder og leger med kompression af grafik og har i den forbindelse
> implementeret en DCT af en 2d matrise.
> Det er dog et nyt område for mig, så jeg er lidt i tvivl om hvorvidt mine
> resultater er korrekte.
>
> Første eksempel er en 8*8 matrise med værdien 150 i samtlige positioner.
> Jeg får der en magnitude på 1200 for 0,0 frekvensen.. (dc altså) og meget
> lave nær nul for andre frekvenser. Det virker korrekt, da der jo ikke er
> andre frekvenser. Jeg forventer at de andre frekvenser kun er forskellig fra
> nul på grund af afrundingsfejl.
> Jeg ville dog gerne dele de 1200 med 8 for at få 150, som er den reele værdi
> i inddata, men det ser jeg ikke i formelen berettigelse for. Hvorfor ender
> jeg med 1200 istedet for 150? Jeg mener ikke der er fejl i implementationen,
> men hvis der ikke er noget umidelbart svar, som i andre kender, så er det
> måske der den er gal alligevel.
De fleste FFT glemmer at gange med konstanten 1/delta_t, det behøver man
dog ikke ved invers-FFT (såvidt jeg husker):
http://mathworld.wolfram.com/FastFourierTransform.html
Se denne kode - søg efter "FourierFFT1Drow":
http://web.archive.org/web/20030504070517/www.dat.ruc.dk/~glenn/grafik/8spec/zMatrix.cp
>
> Anden test er matrisen fyld med ens rækker alle med værdien
> 150, 0, 0, 0, 0, 0, 150, 0
Denne vektors middelværdi(=DC-koeffient*k) > 0.
> Dette giver nulfrekvenser for alt andet end første række hvor jeg får
> 300,31,277,217,0,325,0,159
Jeg har ikke regnet det ud, men to "pinde" med værdien 150 være
sammensat af mange frekvenser incl. DC/ 0 Hz.
En pind ville svare til en delta-funktion som udmærker sig ved at bestå
af "alle" frekvenser:
http://mathworld.wolfram.com/DeltaFunction.html
>
> Det synes jeg dog ikke giver mening. Der burde vel ingen dc være da data
> ikke ser ud til at have en konstant komponent andet end nul.
> At der er en værdi for søjle 5 på 325 skal vel tolkes som at der er er et
> "signal" med bølgelængde på 5? Der er dog ingen med hverken frekvens eller
> bølgelængde svarende til de andre søjler.
Ikke bølgelængde men derimod frekvens. Frekvensens værdi vil afhænge af
diskretiseringsafstanden.
>
> Ser mine data korrekte ud og kan jeg bare ikek finde ud af at tolke dem,
> eller er de helt hen i skoven?
>
>
De kunne godt være OK.
mvh/Glenn