5.8

Дискретное преобразование Фурье

[19/100%]
Показать
LaTeX
Задача 5.8.1

Вычислите следующие свёртки (используя свёртку ⊙\odot двух векторов, как определено в этом разделе: для a=(α0,…,αn−1)Ta = (\alpha_{0},\ldots ,\alpha_{n-1})^{T}, b=(β0,…,βn−1)Tb=(\beta_{0},\ldots ,\beta_{n-1})^{T}, вектор a⊙ba \odot b размера 2n2n, kk-й элемент которого равен ∑j=0kαjβk−j\sum_{j=0}^{k} \alpha_{j}\beta_{k-j}, с дополнением αi,βi=0\alpha_{i},\beta_{i}=0 при i≥ni \geq n).

?
(a)

(123)⊙(456)\begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix} \odot \begin{pmatrix} 4 \\ 5 \\ 6 \end{pmatrix}.

(b)

(−101)⊙(10−1)\begin{pmatrix} -1 \\ 0 \\ 1 \end{pmatrix} \odot \begin{pmatrix} 1 \\ 0 \\ -1 \end{pmatrix}.

(c)

(111)⊙(α0α1α2)\begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix} \odot \begin{pmatrix} \alpha_{0} \\ \alpha_{1} \\ \alpha_{2} \end{pmatrix}.

Задача 5.8.2
?
(a)

Вычислите дискретное преобразование Фурье F4xF_{4}x для x=(1−i−1i)x = \begin{pmatrix} 1 \\ -i \\ -1 \\ i \end{pmatrix}.

(b)

Вычислите обратное преобразование F4−1xF_{4}^{-1}x для x=(1i−1−i)x = \begin{pmatrix} 1 \\ i \\ -1 \\ -i \end{pmatrix}.

Примечание.
?

Пример 5.8.1 даёт F4=(11111−i−1i1−11−11i−1−i)F_{4} = \begin{pmatrix} 1 & 1 & 1 & 1 \\ 1 & -i & -1 & i \\ 1 & -1 & 1 & -1 \\ 1 & i & -1 & -i \end{pmatrix} и F4−1=14F4F_{4}^{-1} = \frac{1}{4}F_{4} (используя F4‾=F4−1⋅4\overline{F_{4}} = F_{4}^{-1}\cdot 4, т.е.F4−1F_{4}^{-1} имеет те же элементы, что и 14F4‾\frac{1}{4}\overline{F_{4}}, что в данном действительно-симметричном сопряжённом случае совпадает с 14F4\frac{1}{4}F_{4} с точностью до сопряжения каждого элемента).

Задача 5.8.3

Проверьте непосредственно, что F4=(F2D2F2F2−D2F2)P4F_{4} = \begin{pmatrix} F_{2} & D_{2}F_{2} \\ F_{2} & -D_{2}F_{2} \end{pmatrix} P_{4}, где F4,P4,D2F_{4}, P_{4}, D_{2} определены, как в разложении матрицы Фурье (5.8.15): для n=2rn=2^{r}, Fn=(Fn/2Dn/2Fn/2Fn/2−Dn/2Fn/2)PnF_{n} = \begin{pmatrix} F_{n/2} & D_{n/2}F_{n/2} \\ F_{n/2} & -D_{n/2}F_{n/2} \end{pmatrix}P_{n}, где Dn/2=diag⁡(1,ξ,ξ2,…,ξn/2−1)D_{n/2} = \operatorname {diag}(1,\xi ,\xi^{2},\ldots ,\xi^{n/2-1}) (ξ\xi — первообразный корень nn-й степени из единицы, используемый на протяжении всего раздела) и PnT=[e0  e2  e4  ⋯  en−2∣e1  e3  e5  ⋯  en−1]P_{n}^{T} = \left[e_{0}\; e_{2}\; e_{4}\; \cdots \; e_{n-2} \mid e_{1}\; e_{3}\; e_{5}\; \cdots \; e_{n-1}\right] — матрица перестановки чётных-нечётных индексов.

?
Задача 5.8.4

Используя следующие векторы, выполните указанные вычисления: a=(α0α1)a = \begin{pmatrix} \alpha_{0} \\ \alpha_{1} \end{pmatrix}, b=(β0β1)b = \begin{pmatrix} \beta_{0} \\ \beta_{1} \end{pmatrix}, a^=(α0α100)\hat{a} = \begin{pmatrix} \alpha_{0} \\ \alpha_{1} \\ 0 \\ 0 \end{pmatrix}, b^=(β0β100)\hat{b} = \begin{pmatrix} \beta_{0} \\ \beta_{1} \\ 0 \\ 0 \end{pmatrix}.

?
(a)

Вычислите a⊙ba \odot b, F4(a⊙b)F_{4}(a \odot b) и (F4a^)×(F4b^)(F_{4}\hat{a}) \times (F_{4}\hat{b}) (где ×\times — покомпонентное произведение).

(b)

Используя F4−1F_{4}^{-1}, приведённую в примере 5.8.1, вычислите F4−1[(F4a^)×(F4b^)]F_{4}^{-1}\left[(F_{4}\hat{a}) \times (F_{4}\hat{b})\right]. Сравните результат с тем, что гарантирует теорема о свёртке.

Задача 5.8.5

Для p(x)=2x−3p(x) = 2x-3 и q(x)=3x−4q(x) = 3x-4 вычислите произведение p(x)q(x)p(x)q(x), используя теорему о свёртке.

?
Примечание.
?

Теорема о свёртке: для a,b∈Cna,b \in \mathbb {C}^{n} с дополненными нулями формами a^,b^∈C2n\hat{a},\hat{b} \in \mathbb {C}^{2n} и F=F2nF = F_{2n} выполняется F(a⊙b)=(Fa^)×(Fb^)F(a\odot b) = (F\hat{a}) \times (F\hat{b}), так что a⊙b=F−1[(Fa^)×(Fb^)]a \odot b = F^{-1}\left[(F\hat{a})\times (F\hat{b})\right]. По примеру 5.8.4, если p(x)=∑αkxkp(x)=\sum \alpha_{k}x^{k} и q(x)=∑βkxkq(x) = \sum \beta_{k}x^{k} (коэффициенты дополнены нулями до a,b∈Cna,b \in \mathbb {C}^{n}), то вектор коэффициентов p(x)q(x)p(x)q(x) в точности равен a⊙ba \odot b.

Задача 5.8.6

Используя свёртки, образуйте следующие произведения.

?
(a)

4310×211043_{10} \times 21_{10}.

(b)

1238×6018123_{8} \times 601_{8}.

(c)

10102×110121010_{2} \times 1101_{2}.

Примечание.
?

Интерпретация строки цифр числа по основанию bb как вектора коэффициентов многочлена, вычисленного в точке x=bx=b, сводит умножение к свёртке (пример 5.8.4), за которой следует перенос разрядов (замена k×bj=bj+1+(k−b)×bjk \times b^{j} = b^{j+1} + (k-b)\times b^{j} всюду, где цифра достигает основания bb или превышает его).

Задача 5.8.7

Пусть aa и bb — векторы размера n×1n \times 1, где nn — степень двойки.

?
(a)

Покажите, что число умножений, необходимых для получения a⊙ba \odot b по определению свёртки, равно n2n^{2}.

(b)

Покажите, что число умножений, необходимых для получения a⊙ba \odot b с помощью БПФ в сочетании с теоремой о свёртке, равно 3nlog⁡2n+7n3n\log_{2}n + 7n.

Примечание.
?

Для пункта (а): 1+2+⋯+k=k(k+1)/21+2+\cdots +k = k(k+1)/2. Для пункта (б): сравните построенный график 3nlog⁡2n3n\log_{2}n (отбросив менее значимое слагаемое 7n7n) с n2n^{2}, чтобы увидеть масштаб преимущества БПФ при больших nn.

Задача 5.8.8

Волновая форма, заданная конечной суммой x(τ)=∑k(αkcos⁡2πfkτ+βksin⁡2πfkτ)x(\tau ) = \sum_{k} (\alpha_{k}\cos 2\pi f_{k}\tau + \beta_{k}\sin 2\pi f_{k}\tau ), в которой fkf_{k} — целые числа и max⁡{fk}≤3\max \left\{ f_{k}\right\} \leq 3, отсчитывается в восьми равноотстоящих точках между τ=0\tau =0 и τ=1\tau =1. Пусть x=(x(0/8)x(1/8)x(2/8)x(3/8)x(4/8)x(5/8)x(6/8)x(7/8))Tx = \begin{pmatrix} x(0/8) & x(1/8) & x(2/8) & x(3/8) & x(4/8) & x(5/8) & x(6/8) & x(7/8) \end{pmatrix}^{T}, и пусть

y=14F8x=(0−5i1−3i4041+3i5i). y = \frac{1}{4}F_{8}x = \begin{pmatrix} 0 \\ -5i \\ 1-3i \\ 4 \\ 0 \\ 4 \\ 1+3i \\ 5i \end{pmatrix}.

Каково уравнение волновой формы?

?
Примечание.
?

Уравнения (5.8.7)-(5.8.8) показывают, что y=2nFnx=∑kαk(efk+en−fk)+i∑kβk(−efk+en−fk)y = \frac{2}{n}F_{n}x = \sum_{k} \alpha_{k}(e_{f_{k}}+e_{n-f_{k}}) + i\sum_{k} \beta_{k}(-e_{f_{k}}+e_{n-f_{k}}), так что каждая пара импульсов на индексах fkf_{k} и n−fkn-f_{k} в yy раскрывает αk\alpha_{k} (из суммы этих двух элементов) и βk\beta_{k} (из их разности, делённой на ii).

Задача 5.8.9

Докажите, что a⊙b=b⊙aa \odot b = b \odot a для всех a,b∈Cna, b \in \mathbb {C}^{n} — то есть свёртка является коммутативной операцией.

?
Задача 5.8.10

Для p(x)=∑k=0n−1αkxkp(x) = \sum_{k=0}^{n-1} \alpha_{k}x^{k} и корней nn-й степени из единицы ξk\xi^{k} пусть a=(α0α1⋯αn−1)Ta = \begin{pmatrix} \alpha_{0} & \alpha_{1} & \cdots & \alpha_{n-1} \end{pmatrix}^{T} и p=(p(1)p(ξ)⋯p(ξn−1))Tp = \begin{pmatrix} p(1) & p(\xi ) & \cdots & p(\xi^{n-1}) \end{pmatrix}^{T}. Объясните, почему Fna=pF_{n}a = p и a=Fn−1pa = F_{n}^{-1}p.

?
Задача 5.8.11

Для двух многочленов p(x)=∑k=0n−1αkxkp(x) = \sum_{k=0}^{n-1}\alpha_{k}x^{k} и q(x)=∑k=0n−1βkxkq(x) = \sum_{k=0}^{n-1}\beta_{k}x^{k} пусть p=(p(1)p(ξ)⋯p(ξ2n−1))Tp = \begin{pmatrix} p(1) & p(\xi ) & \cdots & p(\xi^{2n-1}) \end{pmatrix}^{T} и q=(q(1)q(ξ)⋯q(ξ2n−1))Tq = \begin{pmatrix} q(1) & q(\xi ) & \cdots & q(\xi^{2n-1}) \end{pmatrix}^{T}, где 1,ξ,ξ2,…,ξ2n−11,\xi ,\xi^{2},\ldots ,\xi^{2n-1} теперь — корни 2n2n-й степени из единицы. Объясните, почему коэффициенты произведения p(x)q(x)=γ0+γ1x+⋯+γ2n−2x2n−2p(x)q(x) = \gamma_{0}+\gamma_{1}x+\cdots +\gamma_{2n-2}x^{2n-2} должны задаваться формулой

(γ0γ1⋮)=F2n−1(p(1)q(1)p(ξ)q(ξ)⋮). \begin{pmatrix} \gamma _{0} \\ \gamma _{1} \\ \vdots \end{pmatrix} = F_{2n}^{-1}\begin{pmatrix} p(1)q(1) \\ p(\xi )q(\xi ) \\ \vdots \end{pmatrix}.
?
Задача 5.8.12

Циркулянтной матрицей называется квадратная матрица вида C=(c0cn−1cn−2⋯c1c1c0cn−1⋯c2c2c1c0⋯c3⋮⋮⋮⋮cn−1cn−2cn−3⋯c0)n×nC = \begin{pmatrix} c_{0} & c_{n-1} & c_{n-2} & \cdots & c_{1} \\ c_{1} & c_{0} & c_{n-1} & \cdots & c_{2} \\ c_{2} & c_{1} & c_{0} & \cdots & c_{3} \\ \vdots & \vdots & \vdots & & \vdots \\ c_{n-1} & c_{n-2} & c_{n-3} & \cdots & c_{0} \end{pmatrix}_{n\times n} — то есть элементы каждого столбца совпадают с элементами предыдущего столбца, но сдвинуты на одну позицию вниз с циклическим переносом наверх; (j,k)(j,k)-й элемент равен cjk=cj−k(modn)c_{jk} = c_{j-k \pmod{n}}.

?
(a)

Если QQ — циркулянтная матрица, определённая как Q=(00⋯0110⋯0001⋯00⋮⋮⋱⋮⋮00⋯10)n×nQ = \begin{pmatrix} 0 & 0 & \cdots & 0 & 1 \\ 1 & 0 & \cdots & 0 & 0 \\ 0 & 1 & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & \cdots & 1 & 0 \end{pmatrix}_{n\times n}, и если p(x)=c0+c1x+⋯+cn−1xn−1p(x) = c_{0}+c_{1}x+\cdots +c_{n-1}x^{n-1}, проверьте, что C=p(Q)=c0I+c1Q+⋯+cn−1Qn−1C = p(Q) = c_{0}I + c_{1}Q + \cdots + c_{n-1}Q^{n-1}.

(b)

Объясните, почему матрица Фурье порядка nn диагонализует QQ в том смысле, что FQF−1=D=diag⁡(1,ξ,…,ξn−1)FQF^{-1} = D = \operatorname {diag}(1,\xi ,\ldots ,\xi^{n-1}), где ξk\xi^{k} — корни nn-й степени из единицы.

(c)

Докажите, что матрица Фурье порядка nn диагонализует любой циркулянт размера n×nn \times n в том смысле, что FCF−1=diag⁡(p(1),p(ξ),…,p(ξn−1))FCF^{-1} = \operatorname {diag}(p(1),p(\xi ),\ldots ,p(\xi^{n-1})), где p(x)=c0+c1x+⋯+cn−1xn−1p(x) = c_{0}+c_{1}x+\cdots +c_{n-1}x^{n-1}.

(d)

Если C1C_{1} и C2C_{2} — произвольная пара циркулянтов размера n×nn\times n, объясните, почему C1C2=C2C1C_{1}C_{2} = C_{2}C_{1} — то есть все циркулянты коммутируют друг с другом.

Задача 5.8.13

Для невырожденного циркулянта Cn×nC_{n\times n} объясните, как использовать алгоритм БПФ для эффективного выполнения следующих операций.

?
(a)

Решить систему Cx=bCx = b.

(b)

Вычислить C−1C^{-1}.

(c)

Перемножить два циркулянта C1C2C_{1}C_{2}.

Задача 5.8.14

Для векторов a=(α0α1⋮αn−1)a = \begin{pmatrix} \alpha_{0} \\ \alpha_{1} \\ \vdots \\ \alpha_{n-1} \end{pmatrix}, b=(β0β1⋮βn−1)b = \begin{pmatrix} \beta_{0} \\ \beta_{1} \\ \vdots \\ \beta_{n-1} \end{pmatrix}, a^=(α0⋮αn−10⋮0)2n×1\hat{a} = \begin{pmatrix} \alpha_{0} \\ \vdots \\ \alpha_{n-1} \\ 0 \\ \vdots \\ 0 \end{pmatrix}_{2n \times 1} и b^=(β0⋮βn−10⋮0)2n×1\hat{b} = \begin{pmatrix} \beta_{0} \\ \vdots \\ \beta_{n-1} \\ 0 \\ \vdots \\ 0 \end{pmatrix}_{2n \times 1}, пусть CC — циркулянтная матрица размера 2n×2n2n\times 2n (упражнение 5.8.12), первый столбец которой равен a^\hat{a}.

?
(a)

Покажите, что операцию свёртки можно описать как произведение матрицы на вектор, продемонстрировав, что a⊙b=Cb^a \odot b = C\hat{b}.

(b)

Используйте это соотношение, чтобы дать альтернативное доказательство теоремы о свёртке.

Задача 5.8.15

Кронекеровым произведением двух матриц Am×nA_{m\times n} и Bp×qB_{p\times q} называется матрица размера mp×nqmp \times nq вида A⊗B=(a11Ba12B⋯a1nBa21Ba22B⋯a2nB⋮⋮⋮am1Bam2B⋯amnB)A \otimes B = \begin{pmatrix} a_{11}B & a_{12}B & \cdots & a_{1n}B \\ a_{21}B & a_{22}B & \cdots & a_{2n}B \\ \vdots & \vdots & & \vdots \\ a_{m1}B & a_{m2}B & \cdots & a_{mn}B \end{pmatrix}, удовлетворяющая A⊗(B⊗C)=(A⊗B)⊗CA\otimes (B\otimes C) = (A\otimes B)\otimes C и (A⊗B)(C⊗D)=AC⊗BD(A\otimes B)(C\otimes D) = AC\otimes BD (когда ACAC и BDBD определены).

?
(a)

Если n=2rn=2^{r}, и если PnP_{n} — матрица чёт-нечётной перестановки из разложения матрицы Фурье (5.8.15), объясните, почему Rn=(I2r−1⊗P21)(I2r−2⊗P22)⋯(I21⊗P2r−1)(I20⊗P2r)R_{n} = (I_{2^{r-1}}\otimes P_{2^{1}})(I_{2^{r-2}}\otimes P_{2^{2}})\cdots (I_{2^{1}}\otimes P_{2^{r-1}})(I_{2^{0}}\otimes P_{2^{r}}) является матрицей перестановки, соответствующей перестановке с обращением битов (perfect shuffle).

(b)

Пусть n=2rn=2^{r}, и положим Bn=(In/2Dn/2In/2−Dn/2)B_{n} = \begin{pmatrix} I_{n/2} & D_{n/2} \\ I_{n/2} & -D_{n/2} \end{pmatrix}. Согласно (5.8.15), матрицу Фурье можно записать как Fn=Bn(I2⊗Fn/2)PnF_{n} = B_{n}(I_{2}\otimes F_{n/2})P_{n}. Докажите, что FnF_{n} можно разложить как Fn=LnRnF_{n} = L_{n}R_{n}, где Ln=(I20⊗B2r)(I21⊗B2r−1)⋯(I2r−2⊗B22)(I2r−1⊗B21)L_{n} = (I_{2^{0}}\otimes B_{2^{r}})(I_{2^{1}}\otimes B_{2^{r-1}})\cdots (I_{2^{r-2}}\otimes B_{2^{2}})(I_{2^{r-1}}\otimes B_{2^{1}}), а RnR_{n} — перестановка с обращением битов из пункта (а).

Примечание.
?

Это означает, что Fnx=LnRnxF_{n}x = L_{n}R_{n}x: дискретное преобразование Фурье вектора xx получается сначала выполнением перестановки с обращением битов, а затем применением rr последовательных членов LnL_{n} — это и есть алгоритм БПФ в разложенной форме.

Задача 5.8.16

Для p(x)=α0+α1x+α2x2+⋯+αn−1xn−1p(x) = \alpha_{0}+\alpha_{1}x+\alpha_{2}x^{2}+\cdots +\alpha_{n-1}x^{n-1} докажите, что

1n∑k=0n−1∣p(ξk)∣2=∣α0∣2+∣α1∣2+⋯+∣αn−1∣2, \frac{1}{n}\sum _{k=0}^{n-1} \left|p(\xi ^{k})\right|^{2} = \left|\alpha _{0}\right|^{2}+\left|\alpha _{1}\right|^{2}+\cdots +\left|\alpha _{n-1}\right|^{2},

где 1,ξ,ξ2,…,ξn−11,\xi ,\xi^{2},\ldots ,\xi^{n-1} — корни nn-й степени из единицы.

?
Задача 5.8.17

Рассмотрим сигнал, заданный конечной суммой x(τ)=∑k(αkcos⁡2πfkτ+βksin⁡2πfkτ)x(\tau ) = \sum_{k}(\alpha_{k}\cos 2\pi f_{k}\tau + \beta_{k}\sin 2\pi f_{k}\tau ), в которой fkf_{k} — различные целые числа, и пусть x=∑k(αkcos⁡2πfkt+βksin⁡2πfkt)x = \sum_{k}(\alpha_{k}\cos 2\pi f_{k}t + \beta_{k}\sin 2\pi f_{k}t) — вектор, содержащий значения x(τ)x(\tau ) в n>2max⁡{fk}n > 2\max \left\{ f_{k}\right\} равноотстоящих точках между τ=0\tau =0 и τ=1\tau =1 (пример 5.8.3). Используя дискретное преобразование Фурье, докажите, что

∥x∥22=n2∑k(αk2+βk2). \left\| x\right\| _{2}^{2} = \frac{n}{2}\sum _{k}\left(\alpha _{k}^{2}+\beta _{k}^{2}\right).
?
Примечание.
?

Формула (5.8.7): 2nFnx=∑kαk(efk+en−fk)+i∑kβk(−efk+en−fk)\frac{2}{n}F_{n}x = \sum_{k} \alpha_{k}(e_{f_{k}}+e_{n-f_{k}}) + i\sum_{k}\beta_{k}(-e_{f_{k}}+e_{n-f_{k}}).

Задача 5.8.18

Пусть η\eta — произвольный скаляр, и пусть c=(1ηη2⋮η2n−1)c = \begin{pmatrix} 1 \\ \eta \\ \eta^{2} \\ \vdots \\ \eta^{2n-1} \end{pmatrix} и a=(α0α1⋮αn−1)a = \begin{pmatrix} \alpha_{0} \\ \alpha_{1} \\ \vdots \\ \alpha_{n-1} \end{pmatrix}. Докажите, что cT(a⊙a)=(cTa^)2c^{T}(a \odot a) = \left(c^{T}\hat{a}\right)^{2}.

?
Примечание.
?

Пример 5.8.4: если p(x)=∑k=0n−1αkxkp(x) = \sum_{k=0}^{n-1} \alpha_{k}x^{k}, то p(x)2=∑k=02n−2[a⊙a]kxkp(x)^{2} = \sum_{k=0}^{2n-2} \left[a\odot a\right]_{k} x^{k}.

Задача 5.8.19

Примените алгоритм БПФ к вектору x8=(x0x1⋮x7)x_{8} = \begin{pmatrix} x_{0} \\ x_{1} \\ \vdots \\ x_{7} \end{pmatrix}, а затем проверьте, что ваш ответ согласуется с результатом, полученным непосредственным вычислением F8x8F_{8}x_{8}.

?