给做网站建设的一些建议,毕业季网站如何做网页,深圳培训公司网站建设,购物网站seo搜索引擎前期分析文章目录 前言1.单位冲激序列函数1.2 函数#xff1a;1.3 实现代码#xff1a;1.3 调用方式1.4 调用结果 2.单位阶跃序列函数2.1 函数2.2实现代码2.3调用方式2.4调用结果 3.矩形序列3.1函数3.2 实现代码3.3调用方式3.4 调用结果 4.实指数序列4.1函数4.2实现代码4.3调用方式4.… 文章目录 前言1.单位冲激序列函数1.2 函数1.3 实现代码1.3 调用方式1.4 调用结果 2.单位阶跃序列函数2.1 函数2.2实现代码2.3调用方式2.4调用结果 3.矩形序列3.1函数3.2 实现代码3.3调用方式3.4 调用结果 4.实指数序列4.1函数4.2实现代码4.3调用方式4.4调用结果 5.正弦型序列5.1函数5.2实现代码5.3调用方式5.4调用结果 6.复指数序列6.1函数6.2实现代码6.3调用方式6.4调用结果 备注7.序列的简单运算7.1序列相加7.1.1 代码实现7.1.2 调用测试7.1.3 调用结果 7.2序列相乘7.2.1 代码实现7.2.2 调用测试7.2.3 调用结果 7.3序列移位7.3.1 代码实现7.3.2 调用测试7.3.3 调用结果 7.4 序列翻褶7.4.1 代码实现7.4.2 调用测试7.4.3 调用结果 结语 前言
本篇博客介绍了基于matlab的数字信号处理中的常见离散时间信号以及常见的序列运算并通过编写代码实现相关运算。
1.单位冲激序列函数
1.2 函数 1.3 实现代码
function [x,n] impseq(n0,n1,n2)% Generates x(n) delta(n-n0); n1 n,n0 n2% ----------------------------------------------% [x,n] impseq(n0,n1,n2)%if ((n0 n1) || (n0 n2) || (n1 n2))error(arguments must satisfy n1 n0 n2)endn n1:n2;%x [zeros(1,(n0-n1)), 1, zeros(1,(n2-n0))];x (n-n0) 0;
1.3 调用方式
[x,n]impseq(1,-2,5);
% n[-2,-1,0,1,2,3,4,5]
% x 1x8 logical
stem(n,x,filled)1.4 调用结果 2.单位阶跃序列函数
2.1 函数 2.2实现代码
function [x,n] stepseq(n0,n1,n2)% Generates x(n) u(n-n0); n1 n,n0 n2% ------------------------------------------% [x,n] stepseq(n0,n1,n2)%if ((n0 n1) || (n0 n2) || (n1 n2))error(arguments must satisfy n1 n0 n2)endn n1:n2;%x [zeros(1,(n0-n1)), ones(1,(n2-n01))];x (n-n0) 0;
2.3调用方式
[x,n]stepseq(2,-2,7);
% n[-2,-1,0,1,2,3,4,5,6,7]
% x1x10 logical
stem(n,x,filled,r)2.4调用结果 3.矩形序列
3.1函数 3.2 实现代码
function [x,n]rectseq(n1,n2,N)
% 个人编写可能有误if n10||n2n1||n2N||N0error(输入的格式错误);endnn1:n2;% x[zeros(1,0-n1),ones(1,N),zeros(1,n2-N1)];xbitand(n0,nN);
end3.3调用方式
[x,n]rectseq(-2,5,4);
% n[-2,-1,0,1,2,3,4,5]
% x1x8 logical
stem(n,x,filled)3.4 调用结果 4.实指数序列
4.1函数 4.2实现代码
function [x,n]realexpseq(n1,n2,a)
% 个人编写
if n1n2error(n1应该小于n2);
endnn1:n2;ana.^n;xan.*stepseq(0,n1,n2);
end4.3调用方式
[x,n]realexpseq(-4,5,2);
% n[-4,-3,-2,-1,0,1,2,3,4,5]
% x[0,0,0,0,1,2,4,8,16,32]
stem(n,x,r)4.4调用结果 5.正弦型序列
5.1函数 5.2实现代码
function [x,n]sinseq(n1,n2,w,w0)
%该函数表示sin(w*nw0)
if n1n2error(n1应该小于n2);
end
nn1:n2;
xsin(w*nw0);
end5.3调用方式
[x,n]sinseq(-pi*2,2*pi,1,0);
% n1x13 double
% x1x13 double
stem(n,x,filled)5.4调用结果 6.复指数序列
6.1函数 6.2实现代码
function [x,n]comexpseq(n1,n2,a,w0)
nn1:n2;
xexp((a1i*w0).*n);
end6.3调用方式
[x,n]comexpseq(-2,5,2,1);
subplot(2,1,1);
stem(n,real(x),filled)
xlabel(n);
ylabel(实部)
subplot(2,1,2);
stem(n,imag(x),filled)
xlabel(n)
ylabel(虚部)6.4调用结果 备注
以上函数部分是自己写的部分是以封装好的可能有些的不足的地方欢迎批评指正
7.序列的简单运算
7.1序列相加
将两个序列对应位置直接相加即可
7.1.1 代码实现
function [y,n]seqadd(x1,x2,n1,n2)nmin([n1,n2]):max([n1,n2]);% 将相加的序列扩展至相同长度y1zeros(1,length(n));y2y1;y1((nmin(n1))(nmax(n1))1)x1;y2((nmin(n2))(nmax(n2))1)x2;yy1y2;
end7.1.2 调用测试
x1[2 3 1 4];
n1-1:2;
x2[1 2 4];
n21:3;
subplot(3,1,1);
stem(n1,x1,filled,b)
xlim([min([n1,n2]) max([n1,n2])])
subplot(3,1,2)
stem(n2,x2,filled,g);
xlim([min([n1,n2]) max([n1,n2])])
[y,n]seqadd(x1,x2,n1,n2);
subplot(3,1,3)
stem(n,y,filled,r);
xlim([min([n1,n2]) max([n1,n2])])7.1.3 调用结果 7.2序列相乘
将两个序列对应位置直接相乘即可
7.2.1 代码实现
function [y,n]seqmul(x1,x2,n1,n2)
nmin([n1,n2]):max([n1,n2]);
y1zeros(1,length(n));
y2y1;
y1((nmin(n1)nmax(n1))1)x1;
y2((nmin(n2)nmax(n2))1)x2;
yy1.*y2;
end
7.2.2 调用测试
x1[2 3 1 4];
n1-1:2;
x2[1 2 4];
n21:3;
subplot(3,1,1);
stem(n1,x1,filled,b)
xlim([min([n1,n2]) max([n1,n2])])
subplot(3,1,2)
stem(n2,x2,filled,g);
xlim([min([n1,n2]) max([n1,n2])])
[y,n]seqmul(x1,x2,n1,n2);
subplot(3,1,3)
stem(n,y,filled,r);
xlim([min([n1,n2]) max([n1,n2])])7.2.3 调用结果 7.3序列移位
将序列左移或者右移
7.3.1 代码实现
function [y,n]seqshift(x,n,m)
% 将序列向左移m位
% yx(n-m)
nn-m;
yx;
end7.3.2 调用测试
x[2 4 3 5];
n1:4;
subplot(2,1,1)
stem(n,x,filled,g)
xlim([-5,5])
[y,n]seqshift(x,n,3);
subplot(2,1,2);
stem(n,y,filled,r);
xlim([-5,5])7.3.3 调用结果 7.4 序列翻褶
将序列沿着原点翻褶
7.4.1 代码实现
function [y,n]seqfold(x,n)
n-max(n):-min(n);
yzeros(1,length(x));
for i1:length(x)y(length(n)-i1)x(i);
end7.4.2 调用测试
x[4 2 5 3];
n-1:2;
subplot(2,1,1);
stem(n,x,filled,g);
xlim([-4 4])
[y,n]seqfold(x,n);
subplot(2,1,2);
stem(n,y,filled,r);
xlim([-4 4])
7.4.3 调用结果 结语
上述函数虽然在Signal Processing Toolbox中都有提供后续只要会使用即可本篇博客为了帮助初学者更好的理解各种序列和运算实现的底层过程为后续学习基于matlab仿真的数字信号处理打下良好的基础。上述代码可能有部分编写不足之处欢迎批评指出