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(N1)X(2)=X(N2)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/21)×(N/21)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:T1

T1=(WAWH)1=(WH)1A1W1
gdzie to macierz DFT.W

Ponieważ . To równanie staje się:WH=NW1

T1=(NW1)1A11NWH=WA1WH

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


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 toTaNn+1,Nm+1=an,mNn+1TN=4

T4=[a11a12a13a14a21a22a23a24a24a23a22a21a14a13a12a11]

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/21)×(N/21)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.