So finden Sie die MOD-2- für die beiden Sequenzen und .
Ich weiß, dass die Antwort von matlab aber ich weiß nicht, wie ich sie grafisch oder mathematisch finden kann
So finden Sie die MOD-2- für die beiden Sequenzen und .
Ich weiß, dass die Antwort von matlab aber ich weiß nicht, wie ich sie grafisch oder mathematisch finden kann
Antworten:
Schreiben Sie und berechnen Sie , dh teilen Sie durch und nehmen Sie nur der Rest. Dies sieht zwar sehr kompliziert aus, aber wenn Sie ein wenig darüber nachdenken, werden Sie feststellen, dass Sie nur [-1 \ quad3 \ -2 \ quad 1] in und [-2 \ quad 1 ] teilen ] und Addieren der kürzeren Vektoren, um . Wiederholen Sie diesen Vorgang für , um vier Vektoren der Länge zu addieren und . Dies ist in MATLAB vermutlich nicht allzu schwierig, obwohl ich mit der Syntax nicht vertraut genug bin, um bestimmte Befehle vorzuschlagen. Berechnen Sie als nächstes die zyklische Faltung von und vorzugsweise ohne MATLAB-Funktionen aufzurufen. Das Ergebnis ist
Mathematisch gesehen berechnen Sie was Sie sich vorstellen können, indem Sie zuerst mithilfe von FFTs finden und was Sie gefolgt von -Berechnung (dies zerlegt den langen Vektor effektiv in kurze Stücke und fügt sie hinzu) oder einfacher, indem zuerst berechnet wird und (das Zerlegen in kürzere Vektoren und deren Addition) und anschließende Berechnung der zyklischen Faltung was einfach zu tun ist.
Chop-Add-Convolve ist einfacher als Convolve-Chop-Add
Ein Ansatz besteht darin, eine kreisförmige Faltung in voller Größe "neu zu verpacken":
sum(reshape(ifft(fft(x, 8) .* conj(fft(h, 8))), 2, 8 / 2), 2)
Eine andere Implementierung besteht darin, die FFT direkt zu dezimieren:
N = 2;
Xf = fft(x); Xf = Xf(1:length(Xf) / N:end);
Hf = fft(h); Hf = Hf(1:length(Hf) / N:end);
ifft(Xf .* conj(Hf))
Wenn Sie das Verhalten von cconv aus matlab reproduzieren möchten, ist es möglicherweise am besten, sich nur den Quellcode in den matlab-Dateien anzusehen :)