DSP基本序列MATLAB代码

代码参考《数字信号处理基础及MATLAB实现》冀振元
因为只用于学习使用所以就不放在这里了,课本pdf可私信我(免费)

1.单位冲激序列

function [x,n] = impseq(n0,n1,n2,figureflag)
%impseq(n0,n1,n2,figureflag)
%产生x(n) = delta(n-n0);n1 <= n0 <= n2
%n0为冲击位置,n1为序列起点,n2为序列终点
%figureflag为画图标志,1为画,0则不画
if( (n0 < n1) | (n0 > n2) | (n1 > n2) ) 
	error('参数必须满足 n1 <= n0 <= n2');
elseif( figureflag ~= 1 & figureflag ~= 0)
	error('figureflag 只能为1或者0');
end 
n = [n1:n2];
x = [(n-n0) == 0];
if(figureflag == 1)
stem(n,x),axis([n1-2,n2+2,-1,2]),xlabel('序列'),ylabel('序列值'),grid on;
end

2.单位阶跃序列

function [x,n] = stepseq(n0,n1,n2,figureflag)
%stepseq(n0,n1,n2,figureflag)
%产生x(n) = u(n-n0);n1 <= n0 <= n2
%n0为阶跃位置,n1为序列起点,n2为序列终点
%figureflag为画图标志,1为画,0则不画
if( (n0 < n1) | (n0 > n2) | (n1 > n2) ) 
	error('参数必须满足 n1 <= n0 <= n2');
elseif( figureflag ~= 1 & figureflag ~= 0)
	error('figureflag 只能为1或者0');
end 
n = [n1:n2];
x = [(n-n0) >= 0];
    if (figureflag == 1)
        stem(n,x),axis([n1-2,n2+2,-1,2]),xlabel('序列'),ylabel('序列值'),grid on;
    end

3.矩形序列

function [RN,n] = RN(ns,nf,n1,n2,figureflag)
%RN(ns,nf,n1,n2,figureflag)
%ns = 矩阵始点,nf=矩阵终点,[n1,n2]=给出的坐标范围
%figureflag为画图标志,1为画,0则不画
if( figureflag ~= 1 & figureflag ~= 0)
	error('figureflag 只能为1或者0');
end 
n = n1:n2;
RN = stepseq(ns,n1,n2,0) - stepseq(nf,n1,n2,0); %u(n-ns) - u(n-nf)
if (figureflag == 1)
    stem(n,RN),axis([n1-2,n2+2,-1,2]),xlabel('序列'),ylabel('序列值'),grid on;
end

这里用了之前定义的函数,可以根据自己定义的名字来更改这个函数。

4.实指数序列

function [x,n] = axp(a,ns,nf)
%axp(a,ns,nf)
%a为底 ns为序列开始,nf为序列结束
if (ns > nf)
    error('ns要小于等于nf');
end
n = [ns:nf];
x = a.^n;

5.复指数序列

clc;clear;
%产生复指数序列x(n) = exp((a+jw)n)
n0 = -1;n1 = 10;
n = n0:n1;
a = 0.4;
w = 0.6;
x = exp((a+i*w).*n);%i或者j都可以
figure(1)
subplot(211),stem(n,real(x),'filled'),axis([n0-1,n1+1,min(real(x))-1,max(real(x))+1]),title('复指数序列');
ylabel('实部'),grid on;
subplot(212),stem(n,imag(x),'filled'),axis([n0-1,n1+1,min(imag(x))-1,max(imag(x))+1]);
ylabel('虚部');
xlabel('n');
grid on;

6.正弦序列

clc;clear;close all;
n = [1:12];
x = 4*sin(0.3*pi.*n+pi/4) + 7*cos(0.7*pi.*n+pi/5);
stem(n,x),grid on;
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值