www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/CircularConvolutionUsingToeplitzExample.m
%% Create Circulant Matrices Using |toeplitz| Function % You can create circulant matrices using |toeplitz|. Circulant matrices % are used in applications such as circular convolution. % % Create a circulant matrix from vector |v| using toeplitz. % Copyright 2015 The MathWorks, Inc. v = [9 1 3 2]; toeplitz([v(1) fliplr(v(2:end))], v) %% % Perform discrete-time circular convolution by using |toeplitz| to form the % circulant matrix for convolution. % % Define the periodic input |x| and the system response |h|. x = [1 8 3 2 5]; h = [3 5 2 4 1]; %% % Form the column vector |c| to create a circulant matrix where |length(c) % = length(h)|. c = [x(1) fliplr(x(end-length(h)+2:end))] %% % Form the row vector |r| from |x|. r = x; %% % Form the convolution matrix |xConv| using |toeplitz|. Find the convolution % using |h*xConv|. xConv = toeplitz(c,r) h*xConv %% % If you have the Signal Processing Toolbox™, you can use the % <docid:signal_ref.bq1w5b7> % function to find the circular convolution.