自己怎么做拼单网站,外贸网站 源码,西安旅游攻略知乎,qq群推广网站免费MATLAB 求离散信号卷积
代码如下#xff1a;
function [C,Ck] dt_convolution_advance(A,B,Ak,Bk)
% dt_convolution_advance 计算离散信号卷积
% A 输入信号
% B 输入信号
% Ak 输入信号A下标
% Bk 输入信号B下标
% C 输出信号
% Ck 输出信号C下标
% 计算输入信号A
function [C,Ck] dt_convolution_advance(A,B,Ak,Bk)
% dt_convolution_advance 计算离散信号卷积
% A 输入信号
% B 输入信号
% Ak 输入信号A下标
% Bk 输入信号B下标
% C 输出信号
% Ck 输出信号C下标
% 计算输入信号AB的离散卷积并画出输出信号的杆状图
% calculate the discrete time convolution of the input signal A and B .
% then output the stem picture[~,a]size(A); %输出矩阵A的列数
[~,b]size(B); %输出矩阵B的列数
Czeros(1,ab-1); %预定义输出矩阵
A_zeros(1,ab-1); B_zeros(1,ab-1); for i1:ab-1 %将A的长度拉长到与C相等多余的补0if iaA_(i)A(i);elseA_(i)0;end
endfor i1:ab-1 %将B的长度拉长到与C相等多余的补0if ibB_(i)B(i);elseB_(i)0;end
end%% 计算卷积
%C的第i个值等于A_的前i个值与B_的对应的前i个值的乘积和
%注意计算乘积和时的序号 A(k)应与B(i1-k)相乘
for i1:ab-1for k1:itemptA_(k)*B_(i-k1);C(i)C(i)tempt;end
end%%
CkAk(1)Bk(1):Ak(end)Bk(end); %计算结果的下标%% 作图
stem(Ck,C);
xlabel(n);
ylabel(y(n));end
应用demo: