⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fft1.txt

📁 使用matlab编程
💻 TXT
字号:
1 线形卷积算法的程序:
function y=xxjj(x,h) 
n1=length(x) ;
n2=length(h) ;
y=zeros(1,n1+n2-1) ;
z=0;
for n=0:(n1+n2-2) 
    for m=0:n1-1
        for m1=(n-n2+1) :n
            if m==m1
    z=x(m+1)*h(n-m+1);
else
    z=0;
end
    y(n+1)=y(n+1)+z;
end
end
end
n=0:(n1+n2-2)
stem(n,y)
2  FFT计算卷积的程序
function y=ksjj(x,h)
n1=length(x);
n2=length(h);
n=n1+n2-1;
x1=[x,zeros(1,n-n1)];
h1=[h,zeros(1,n-n2)];
H=fft(h1,n);
X=fft(x1,n);
Y=X.*H;
y=ifft(Y,n)
N=0:n-1;
stem(N,y)
3.重叠相加法程序
function z=cdxj(x,h)
n1=length(x);
n2=length(h);
m=2*n2-1;
n3=m-n2+1;
for n=0:3
    xx(n+1,:)=x(:,(n2*n+1):n2*(n+1));
    x1(n+1,:)=[xx(n+1,:),zeros(1,m-n2)];
    h1=[h,zeros(1,m-n2)];
    H=fft(h1,m);
    X(n+1,:)=fft(x1(n+1,:),m);
    Y(n+1,:)=H.*X(n+1,:);
    y(n+1,:)=ifft(Y(n+1,:),m);
    yy(n+1,:)=[zeros(1,n*n3),y(n+1,:),zeros(1,(4-n)*n3)];
end
y(4,:)
z=zeros(1,n1+n2-1);
for I=1:(n1+n2-1)
    for J=1:(n+1)
        z(I)=yy(J,I)+z(I);
    end
    z(I);
end
z
a=0:(n1+n2-3);
b=z(:,1:(n1+n2-2));
stem(a,b)
4 重叠保留法程序:
function z=cdblf(x,h)
n1=length(x);
n2=length(h);
m=2*n2-1;
n3=m-n2+1;
for n=0:4
    xx(n+1,:)=x(:,(n2*n+1):n2*(n+1));
end
x1(1,:)=[zeros(1,n2-1),xx(1,:)];
for nx=1:4
    x1(nx+1,:)=[x1(nx,(n2+1):m),xx(nx+1,:)];
end
x1(6,:)=[x1(5,(n2+1):m),zeros(1,n2)]
for nn=0:5
    H=fft(h,m);
    X(nn+1,:)=fft(x1(nn+1,:),m);
    Y(nn+1,:)=H.*X(nn+1,:);
    y(nn+1,:)=ifft(Y(nn+1,:),m);
    yy(nn+1,:)=[zeros(1,nn*n3),y(nn+1,n2:m),zeros(1,(5-nn)*n3)];
end
z=zeros(1,n1+n2-1);
for I=1:(n1+n2-1)
    for J =1:(n+2)
        z(I)=yy(J,I)+z(I);
    end
    z(I);
end
z
a=0:(n1+n2-3)
b=z(:,1:(n1+n2-2))
stem(a,b)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -