Jacob Jensen wrote:
> Jeg går med overvejelser omkring et lille program som skal kan bruges til at tune instrumenter. Alt det program-specifikke vil jeg prøve at undgå i denne gruppe (jeg vil skrive på dk.edb.programmering.c om dette hvis nogle er interesserede).
>
> Mit spørgsmål går ud på hvordan jeg foretager en frekvensanalyse. Jeg går ud fra det ville være en god ide at bruge noget fourier transformation men man bliver vel nødt til at lade et vindue glide henover signalets tids-akse for at kunne foretage denne transformation ikke? Hvordan gøres det bedst? Hvor stort skal dette vindue være?
>
> Jeg har set at nogle programmer bruger f.eks. "Blackmann-Harris" vinduer til dette. Hvad er det? Er det kompliceret? Hvad kan i anbefale? Jeg skal kunne bestemme grundfrekvensen i et signal som spilles ind på en lille billig PC-mikrofon.
>
> Hvis nogle kender nogle rigtigt gode websider med introduktion til fourier transformationer er i velkomne til at give en praj om dem. Det er snart noget tid siden jeg sad med den slags.
>
Hej Jacob
Desværre er stemning ikke så simpelt. Især ved høje frekvenser vil vores
øres opfattelse af hvilken tone som er harmonisk med en lavere ikke
passe. Tonen skal være en anelse højere - mere ved jeg ikke om stemning.
De såkaldte sampling/diskretiseringsvinduer er lette at lave og anvende.
Det er for det meste blot en kontinuert funktion uden "knæk" - dvs at
den afledede også skal være kontinuert. Funktionen skal gå mod nul i
enderne og helst være symmetrisk om midten. Denne funktion diskretiseres
og ganges på det diskretiserede signal der skal fouriertransformeres.
Der findes mange vindusvarianter:
http://www.tiepie.nl/uk/products/7/76/print
Citat: "...rectangular, Hanning, Hamming, Bartlett, Blackmann, Parzen,
Welch, Blackmann-Harris..."
- men undgå det rektangulære vindue. Grunden er at selve det at klippe
signalet hårdt ud (rektanglet!) i langt de fleste tilfælde bl.a. vil
have en diskontinuitet mellem start og slut. Dette er som regel et
symptom på at signalet indeholdt frekvenser som fouriertransformationen
ikke kan repræsentere. Disse diskretiserede frekvenser bliver
bogstaveligt tværet ud som en bred vulkanform omkring (også cyklisk -
henover nul og fmax!) den sande frekvens med få input-værdier.
Ved at gange et passende vindue, på kan man samle den brede vulkanform
en del og dermed få et mere nøjagtigt billede af frekvensspektret.
/Glenn