Mercurial > hg > ishara
annotate dsp/dftfmap.m @ 61:eff6bddf82e3 tip
Finally implemented perceptual brightness thing.
author | samer |
---|---|
date | Sun, 11 Oct 2015 10:20:42 +0100 |
parents | c3b0cd708782 |
children |
rev | line source |
---|---|
samer@32 | 1 function F=dftfmap(N,Fs) |
samer@32 | 2 % dftfmap - Frequency map for DFT of real signal |
samer@32 | 3 % |
samer@32 | 4 % dftfmap :: N:natural, real ~'sampling rate' -> dmap(dftbins(N)). |
samer@32 | 5 |
samer@32 | 6 M=dftbins(N); |
samer@32 | 7 F=dmap(M,@map,@revmap); |
samer@32 | 8 |
samer@32 | 9 function I=map(X) |
samer@32 | 10 I=round(N*X/Fs); |
samer@32 | 11 I(X<0)=-inf; |
samer@32 | 12 I(X>Fs/2)=inf; |
samer@32 | 13 end |
samer@32 | 14 |
samer@32 | 15 function X=revmap(I) |
samer@32 | 16 I=shiftdim(shiftdim(I),-1); |
samer@32 | 17 X1=Fs*(2*I-3)/(2*N); |
samer@32 | 18 X2=Fs*(2*I-1)/(2*N); |
samer@32 | 19 X1(I<=1)=0; |
samer@32 | 20 X2(I>=M)=Fs/2; |
samer@32 | 21 X=cat(1,X1,X2); |
samer@32 | 22 end |
samer@32 | 23 end |
samer@32 | 24 |