📄 circonv2.asv
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -