diff --git a/applications/lofar2/model/pfb_os/dsp_study_erko.txt b/applications/lofar2/model/pfb_os/dsp_study_erko.txt index 156ccd5bf7549fcacf609587bca2af576382ba83..425976cb649d83a1295ea7e443238b48378a24b5 100644 --- a/applications/lofar2/model/pfb_os/dsp_study_erko.txt +++ b/applications/lofar2/model/pfb_os/dsp_study_erko.txt @@ -65,7 +65,9 @@ # * [SELESNICK] Ivan Selesnick # . https://eeweb.engineering.nyu.edu/iselesni/EL713/zoom/mrate.pdf # * [KIEL] Part 6: Multi-Rate Digital Signal Processing, Gerhard Schmidt -# https://dss-kiel.de/images/teaching/lectures/advanced_digital_signal_processing/slides/adsp_06_multirate_processing.pdf +# 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 # # https://ocw.mit.edu/courses/6-341-discrete-time-signal-processing-fall-2005/ # Youtube: Guitars 4RL @@ -350,8 +352,9 @@ c) s-plane and z-plane domain: y(n) = h(k) * x(n) ==> DFT ==> Y(z) = H(z) X(z) - For DFT this is circular convolution. With suffcient zero padding N >= len(the - circular convolution can calculate the linear convolution: + For DFT this is circular convolution. With suffcient zero padding N >= len(h) + + len(x) - 1 [LYONS 13.10], then the circular convolution can calculate the + linear convolution: N-1 y[n] = sum h(k) x((n - k) % N) @@ -1409,7 +1412,7 @@ c) s-plane and z-plane filters the DAC output. -13) Single channel down converter [HARRIS 6] +13a) Single channel down converter [HARRIS 6] - Analogue I-Q downconverter, yields baseband signal: xb[n] = exp(-j w_k n) x[n] = I[n] + j Q[n] . I[n] = cos(-w_k n) x[n] @@ -1435,7 +1438,7 @@ c) s-plane and z-plane where: - h_npf[n] = h_lpf[n] exp(j w_k n) # mix LPF up to BPF [HARRIS Fig. 6.6] + h_bpf[n] = h_lpf[n] exp(j w_k n) # mix LPF up to BPF [HARRIS Fig. 6.6] +inf H_BPF(z) = sum h_lpf[n] exp(j w_k n) z^-n @@ -1502,7 +1505,7 @@ c) s-plane and z-plane . Shift in D samples and output sum of all branches after every D input samples. . A time shift of D samples causes a (bin) frequency dependent phase shift - of: + of [HARRIS Eq 6.10, Eq 9.2]: theta(w) = (D Ts) * (w_k / Ts) = D * w_k, with w_k = 2pi k / M @@ -1518,10 +1521,20 @@ c) s-plane and z-plane . This can also be interpreted as to calculate bin k for downsampled output samples m = 0, 1, ..., calculate the output y for bin k + (mD) % M. - Instead of first caluclating the output y for bin k and then multiplying - y by exp(-j 2pi k D / M m). + Instead of first calculating the output y for bin k and then multiplying + y by exp(-j 2pi k D / M m). Hence for a PFB with all bins this implies + applying a circular shift of the DFT input by D for every m, to start at + index R(m) = (mD) % M [TUTHILL]. + + exp(j w_k) exp(j w_k D m) = exp(j w_k(1 + mD)) + + A wideband PFB with wideband factor wb, that can process fs = wb * fclk + using wb parallel lanes. The parallel lanes should have independent + circular shift. Therefore R(m) / wb should be an integer then [TUTHILL]. + + +13b) Single channel up converter [HARRIS 7] - exp(j w_k) exp(j w_k D m) = exp(j w_k(1 + mD)) @@ -1541,7 +1554,7 @@ c) s-plane and z-plane converters in parallel, that share the same downsampling polyphase FIR structure, with the coefficients of the H_LPF prototype filter, and use the IDFT to calculate all M bins. The PFB output has a commutator that starts - at bin 0, so bin k = M-1 is the the newest and output last. + at bin 0, so bin k = M-1 is the newest and output last.