Warunki macierzy wstępnego kodowania w celu zachowania złożonej symetrii sprzężonej w wektorze DFT


10

Załóżmy, że istnieje wektor DFT o długości N, który przedstawia złożoną symetrię sprzężoną wokół jego środkowego punktu, tj. , i tak dalej. i są odpowiednio częstotliwością prądu stałego i częstotliwością Nyquista, dlatego są liczbami rzeczywistymi. Pozostałe elementy są złożone.XX(1)=X(N−1)∗X(2)=X(N−2)∗X(0)X(N/2)

Załóżmy teraz, że istnieje macierz o rozmiarze , która zwielokrotnia wektor X.TN×N

Y=TX

Pytanie brzmi:

W jakich warunkach dla macierzy zachowana jest złożona symetria sprzężona wokół środkowego punktu wynikowego wektora ?TY

Motywacją tego pytania jest próba wymyślenia macierzy wstępnego kodowania która daje w wyniku wstępnie zakodowany (wstępnie wyrównany) symbol którego IFFT jest prawdziwy.TY

EDYTOWAĆ:

Dzięki @MattL. i @niaren. Trudność związana z tym pytaniem polega na znalezieniu niezbędnych warunków. Odpowiedź Matta jest rzeczywiście wystarczająca. Wystarczy również wprowadzić następujące modyfikacje:

Pierwszy wiersz i pierwsza kolumna nie muszą mieć wartości zero. Zamiast tego mogą być niezerowe, o ile ich wartości przedstawiają złożoną symetrię sprzężoną wokół punktu środkowego, jego pierwsza wartość jest prawdziwa, a jej -ta wartość jest prawdziwa, podobnie jak symbol. To samo można powiedzieć o -tej kolumnie, -tym rzędzie i głównej przekątnej.(N/2+1)(N/2+1)(N/2+1)

Po drugie, ta sama zgodność między macierzą w lewym górnym rogu i prawym dolnym rogu może być wykonana między prawym górnym rogiem a lewym dolnym rogiem, to znaczy, wybierz macierz zaczynając od do , odwróć od lewej do prawej, odwróć do góry nogami i weź koniugat, a następnie umieść w lewym dolnym rogu. W MATLAB byłoby to:(N/2−1)×(N/2−1)t2,N/2+2tN/2,N

T(N/2+2:N,2:N/2) = conj(fliplr(flipud(Tisi(2:(N/2),N/2+2:N))))

Ta struktura jest podobna do struktury matrycy DFT. Czy byłby to konieczny warunek?

EDYCJA (2):

Poniższy kod implementuje taki poprawny operator dla dowolnej macierzy macierzy :N×NA

N = 8;  
A = rand(N,N); %must be real-valued  
w = exp(-1j*2*pi/N); % twiddle factor  
W = w.^(repmat(0:N-1,N,1).*repmat(0:N-1,N,1).'); % DFT matrix  
T = W*A*W'

EDYCJA (3):

Warto również zauważyć, że przedstawia wystarczający warunek. Wynika to z faktu, że:T−1

T−1=(WAWH)−1=(WH)−1A−1W−1
gdzie to macierz DFT.W

Ponieważ . To równanie staje się:WH=NW−1

T−1=(NW−1)−1A−11NWH=WA−1WH

Wreszcie, ponieważ ma prawdziwą wartość, pod warunkiem, że ma pełną rangę, jest wystarczający.A−1AT−1


Prześpię się, zanim przejdę do dalszych szczegółów, ale tylko do rozważenia: nawet jeśli ograniczenie matrycy diagonalnej nie jest konieczne, można to zrobić bez utraty ogólności, ponieważ wszystko jest możliwe wektory mogą zostać wygenerowane. Czy sie zgadzasz? TY
— Matt L.

Jasne, zgadzam się z tym.
— Igorauad

Odpowiedzi:


1

Myślę, że wpisy w twojej macierzy muszą być zgodne . To znaczy, że wpisy w wierszu są takie same jak współczynniki w rzędzie n, ale gdzie współczynniki są sprzężone i odwrócone. Wzór w dla toTaN−n+1,N−m+1=an,m∗N−n+1TN=4

T4=[a11a12a13a14a21a22a23a24a24∗a23∗a22∗a21∗a14∗a13∗a12∗a11∗]

Jestem pewien, że ktoś wymyśli lepszą i bardziej precyzyjną odpowiedź.


Co z komponentem DC? Składnik DC jest produktem wewnętrznym pierwszego wiersza z (złożonym) wektorem . Jak to będzie wycenione? YTX
— Matt L.,

1
Zostawiłem to jako ćwiczenie dla OP, aby napchać te dwa rzędy kaszlem . Ale nie rozumiem, jak dojść do wniosku, że zadziała tylko matryca diagonalna (nie mówiąc, że się mylisz).
— niaren

Naprawdę mogę się mylić. Kiedy będę miał więcej czasu, pomyślę o tym jeszcze raz ... Powiedzmy to tak: macierz diagonalna (z sprzężoną symetrią) zadziała w każdym przypadku.
— Matt L.,

-1

Jeśli się nie mylę, jedynym rozwiązaniem dla które jest niezależne od wektora jest macierz diagonalna (złożona), w której przekątna spełnia złożoną symetrię sprzężoną.TX

EDYCJA: OK, pomyliłem się. Przekątna jest w porządku, ale nie jest konieczna. Macierz musi mieć następującą ogólną strukturę: elementy i muszą mieć wartość rzeczywistą (odpowiadają DC i Nyquist). Oprócz pierwszy wiersz i kolumna zawierają tylko zera. Dla elementów od do wybierz arbitrażTt11tN/2+1,N/2+1t11t22tN/2,N/2(N/2−1)×(N/2−1)matryca. Następnie użyj tej macierzy arbitrażu, aby utworzyć nową macierz, zamieniając wszystkie rzędy (pierwszy rząd staje się ostatnim, drugi rząd staje się drugim ostatnim itd.), Odwracając rzędy od lewej do prawej i koniugując. Następnie umieść tę submatrix w prawym dolnym rogu całkowitej macierzy . Wszystkie pozostałe elementy muszą wynosić zero. Zdaję sobie sprawę, że trudno jest to zrozumieć bez wizualizacji, więc dodam ją później, gdy będę miał więcej czasu.TT

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.