diff --git a/applications/lofar2/model/pfb_os/dsp_study_erko.txt b/applications/lofar2/model/pfb_os/dsp_study_erko.txt index d0ef8e813f66e3f1cfe165daee50be5a4299557b..aaea9f9210c5fd8823a27390b63fd97a8249433b 100644 --- a/applications/lofar2/model/pfb_os/dsp_study_erko.txt +++ b/applications/lofar2/model/pfb_os/dsp_study_erko.txt @@ -68,6 +68,7 @@ # https://dss-kiel.de/images/teaching/lectures/advanced_digital_signal_processing/ # slides/adsp_06_multirate_processing.pdf # * [TUTHILL] Compensating for oversampling effects in polyphase channelizers, 2015 +# * [BUNTON] Multi-resolution FX Correlator, ALMA memo 447, 2003 # # https://ocw.mit.edu/courses/6-341-discrete-time-signal-processing-fall-2005/ # Youtube: Guitars 4RL @@ -92,8 +93,9 @@ [PROAKIS 3.5]. Only unique for causal signals, because these are 0 for n < 0. * DFT: Every signal x(n) can be expressed as a linear combination of complex - sinusoids W_N^kn = exp(j w_k t_n). The coefficients of projecting x(n) on - W_N^kn for n = 0,1,...,N-1 yield the DFT of x is X(k) for k = 0,1,...,N-1. + sinusoids W_N^(kn) = exp(j w_k t_n). The coefficients of projecting x(n) + on W_N^(kn) for n = 0,1,...,N-1 yield the DFT of x is X(k) for k = + 0,1,...,N-1. * DTFT: For N --> inf, linear combination of exp(j w t_n) = exp(j w T)^n [LYONS 3.14] * z-transform: sum n=0 --> inf, linear combination of z^n. Generalization @@ -760,9 +762,10 @@ c) s-plane and z-plane 9) Discrete Fourier Transform (DFT) -- The N roots of unity [JOS1 3.12, 5.1, PROAKIS 5.1.3, LYONS 4.3]. Note JOS - uses +j in W_N because inproduct is with conj(W_N), others use -j because - then W_N can be used directly in equation and matrix: +- The N roots of unity [JOS1 3.12, 5.1, PROAKIS 5.1.3, LYONS 4.3, CROCHIERE Eq + 7.8]. Note JOS uses +j in W_N because inproduct is with conj(W_N). CROCHIERE + also use +j. Wikipedia and others use -j because then W_N can be used directly + in equation and matrix: W_N = exp(-j 2pi/N) is primitive Nth root of unity W_N^k = exp(-j 2pi/N k) @@ -815,7 +818,7 @@ c) s-plane and z-plane 6.6, 7.1, PROAKIS 5.1.2, 5.1.3]: N-1 - X(w_k) = X(k) = sum x(n) W_N^kn + X(w_k) = X(k) = sum x(n) W_N^(kn) n=0 exp(-j w_k t_n) exp(-j 2pi/N k n) with: @@ -1554,8 +1557,7 @@ c) s-plane and z-plane - -14) Polyphase filterbank (PFB) [HARRIS Fig 6.21, 9.21] +13c) Polyphase DFT filterbank (PFB) [HARRIS Fig 6.21, 9.21] . The PFB implements M single channel down converters to output all k bins. The output rate per branch p in the single channel down converter is a factor M less, so all k = 0:M-1 bins of y[mM, k] can be calculated by using @@ -1573,6 +1575,42 @@ c) s-plane and z-plane at bin 0, so bin k = M-1 is the newest and output last. +14) WOLA DFT filterbank (PFB) [CROCHIERE 7.2.5] + + * Mixer local oscillator (LO) and LPF and downsampler D [CROCHIERE Eq 7.65 = + Eq 7.9, HARRIS Eq 6.1] yields the short-time spectrum of signal x at time + n = mM, so M is the block size or downsample rate: + + +inf + Xk(m) = sum h[mM - n] x[n] W_K^(kn), W_K = exp(-jw_k) = exp(-j 2pi/K) + n=-inf + + The filter h weigths x at n = nM. + + * In Eq 7.9 = 7.65 the signal time frame is fixed to n = 0 and the window h + slides along at n = mM. For implementation is convenient to keep the filter + h invariant and slide the signal, therefor use r = n - mM: + + +inf + Xk(m) = sum h[-r] x[r + mM] W_K^(k(r + mM)) = W_K^(kmM) Rk(m) + n=-inf + + with: +inf + Rk(m) = sum h[-r] x[r + mM] W_K^(kr) + n=-inf + + The term W_K^(kmM) converts the transform Rk(m) with sliding time frame r, + into Xk(m) with fixed time frame n. + + * Define ym[r] = h[-r] x[r + mM]. Length h is Ncoef = Ntaps * K. The DFT of + ym[n] has Ncoef bins k', but for Rk only bins k' = Ntaps * k are needed. + This is equivalent to DFT of Ntaps blocks of stacked K time samples. Define + xm[r] = sum ym[r + lK], then: + + K-1 + Rk(m) = sum xm[r] W_K^(kr) = DFT(xm[r]) + r = 0 + 15) Quadrature Mirror Filter (QMF) [CROCHIERE 7.7, PROAKIS 10.9.6]