2010-08-04 7 views

Répondre

2

Pour RESCALE la fréquence, nous avons besoin à l'échelle de ce paramètre:

CGFloat yFract = (CGFloat)y/(CGFloat)(maxY - 1); 

qui a une valeur entre 0..1 et détermine la sortie fft à prendre pour afficher sur la ligne d'affichage y. Pour obtenir une échelle logarithmique, commencez par calculer: une fréquence f (0.1kHz-20kHz) doit être affichée dans un journal de position (f). Appelez le bas lié (0.1kHz) L, de la limite haute (20kHz) H. Puis, après quelques calculs [[sauté]] vous obtenez:

yFract = (exp(yFract*log(H/L)) - 1)/(H/L - 1); 

où vous devez remplir ce que vous pensez est le H/L rapport, par exemple

yFract = (exp(yFract*log(20)) - 1)/(20 - 1); 

(vous devriez vérifier si 0 donne 0 et 1 donne 1, qui est le cas)

+0

Les données semblent encore vraiment bondé à l'extrémité inférieure de la bande de fréquence. –

+0

Peu importe, j'ai dû le modifier aux deux endroits où yFract est utilisé. Merci beaucoup pour votre aide et votre réponse. –

+0

Quelle était cette formule que vous avez utilisée pour redimensionner le niveau de dB? –

Questions connexes