circonv2.asv

来自「两个序列的循环卷积」· ASV 代码 · 共 22 行

ASV
22
字号
function y=circonv2(x1,x2,N)
%realize circular convolution use dft method 
%y=circonv2(x1,x2,N)
%y:output sequence 
%x1,x2:input sequences
%N:circulation length
%采取矩阵计算的方法,即先生成矩阵H,它的第k行包含序列x2((k-1-n))N,这样,矩阵H与序列x1(n)相乘的结果
%就是两个序列的循环卷积。
if length(x1)>N
    error('N must not be less than length of x1')
end
if length(x2)>N
    error('N must not be less than length of x2')
end                           %以上语句判断两个序列的长度是否小于N
X1k=fft(x1,N);                %作序列1的DFT
X2k=fft(x2,N);                %作序列2的DFT
Yk=X1k.*X2k;
y=ifft(Yk);                   %求两序列的循环卷积
if(all(imag(x1==0))&(all(imag(x2)==0))
    y=real(y);
end                           %实序列的循环卷积的结果仍是实序列

⌨️ 快捷键说明

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