0 0 1 2 1 2 1 3 6 3 6 3 1 2 1 2 1 0 0 0 0 1 5 8 7 8 5 1 0 0
function shvbk = shrgt(v,nsh) nel = length(v); shvbk = [v(nel-nsh+1:nel) v(1:nel-nsh)]g = [1 2 3 2 1 0 0 0 0 0 0 0 0 0]; w = [0 0 1 0 0 0 2 0 0 1 2 1 0 0 ]
50-4
r = [zeros(1,40) ones(1,40)]; h = [(1:40) (39:-1:0)]/40; p = 1-(-1:0.025:0.975).^2 ; g = (1-(-1:0.025:0.975).^2).^2 ; rh = conv(r,h); plot(rh); pause; rp = conv(r,p); plot(rp); pause; rg = conv(r,g); plot(rg); pause; hp = conv(h,p); plot(hp); pause; hg = conv(h,g); plot(hg); pause; pg = conv(p,g); plot(pg);
50-5 Sobald der Rechteckpuls
eine größere Breite hat als 6, das ist die Indexdifferenz zwischen
den beiden Peaks von a=[0 1 2 3 2 1 0 1 2 3 2 1 0], gibt es keinen
Doppelpeak mehr.
50-6
function vbk = vecinsert(lg,v,nsh) nel = length(v); vbk = zeros(1,lg); for k=1+nsh:nsh+lg vbk = v(k-nsh) %------------ function sfres = selffalt(a,b) la = length(a) lb = length(b) sfres = zeros(1, la+lb-1) for k=1:lb sfres = sfres + b(k)* vecinsert(la+lb-1, a, k-1) end
50-7
function c = formfalt(a,b) % c = formfalt(a,b) gewoehnliche Faltung nach Formel n1 = length(a) ; n2 = length(b); nr = n1+n2-1; for j=1:nr k1 = max(1,j-n2+1); k2 = min(n1,j); c(j) = 0; for k=k1:k2 c(j)= c(j)+a(k)*b(j-k+1); end end
50-8 Siehe Beispiel-M-Files
50-9
function c = formfaltz(a,b) % c = formfaltz(a,b) zirkulaere Faltung nach Formel n1 = length(a) ; n2 = length(b); al = a; bl = b; if n1 < n2 al = [al zeros(1,n2-n1)]; n1 = n2; elseif n1 > n2 bl = [bl zeros(1,n1-n2)]; end for j=1:n1 c(j) = 0; for k=1:j c(j)= c(j)+b(k)*a(j-k+1); end for k=j+1:n1 c(j)= c(j)+b(k)*a(j-k+n1+1); end end
50-10
t = 0:pi/40:2*pi-pi/40; si = sin(t); si2 = real(ifft(fft(si).*fft(si))); plot(si2); hold on; plot(-40*cos(t)+1,'--r'); hold off
50-11
a = [1 2 3 4 5 6]; b = [1 0 0 1 0 0]; c = [5 7 9 5 7 9]; cf = real(ifft(fft(a).*fft(b)))
50-12
function c = fftfaltz(a,b) % c = fftfaltz(a,b) zirkulaere Faltung nach Faltungssatz n1 = length(a) ; n2 = length(b); al = a; bl = b; if n1 < n2 % Laengen-Test mit Nullen nachfuellen al = [al zeros(1,n2-n1)]; n1 = n2; elseif n1 > n2 bl = [bl zeros(1,n1-n2)]; end c = real(ifft(fft(al).*fft(bl)));
50-13
function c = fftfaltgew(a,b) % c = fftfaltgew(a,b) gewoehnliche Faltung nach Faltungssatz n1 = length(a) ; n2 = length(b); al = a; bl = b; nr = n1+n2-1; % Nullen auffuellen bis zu Reaultatlaenge der gewoehnlichen Faltung al = [al zeros(1,nr-n1)]; bl = [bl zeros(1,nr-n2)]; c = real(ifft(fft(al).*fft(bl)));
50-14 Cz = [22 20 18 16 16 18 20 22 23]
Cg = [0 1 2 6 10 15 19 22 23 22 19 15 10 6 3 1 0]
50-15 Das Skalarprodukt von zwei Folgen entspricht dem Entegral über das Produkt der vorliegenden Funktionen.
function sicovec = sico(n,cc,cs,k) % sicovec = sico(npt,coscoef,sincoef,kharm) t = (0:n-1)*2*pi/n; sicovec = cc*cos(k*t)+cs*sin(k*t);
50-16 bis 50-21 siehe Beispiel-M-Files.
50-22 2dim: ,
4dim:
;
; ;
;
;
;
8dim:
;
;
;
;
damit 1. 4dim aus g:
;
;
;
;
;
;
damit 2. 4dim aus u
;
;
T511 - Die Berechnung der Gleichstromkomponente hat dann den gleichen Vorfaktor - Durch verschiedene Phasenlagen - 21: 10 cos, 10 sin, 1 Gleichstrom -
T512 conv(a,b) = [1 2 4 7 5 8 6 3 4]
al=[1 2 3 4 0 0 0 0 0];
bl=[1 0 1 1 0 1 0 0 0]; cl = ifft(fft(al).*fft(bl))
T513 ; , ; , ; , ; ; ,
T514
DFT4 = [1 1 1 1; 1 j -1 -j; 1 -1 1 -1; 1 -j -1 j]
T515
w=(0:7)/8*2*pi; a=zeros(1,8); b = zeros(1,8); for k=0:3 a(k+1) = 2/8*sum(cos(k*w).*f); b(k+1) = 2/8*sum(sin(k*w).*f); end