数字信号处理|用Matlab生成常用序列

1. 单位抽样序列

(1)定义

\LARGE \delta \left( n \right) = \left\{ \begin{array}{l} 1,n = 0\\ 0,n \ne 0 \end{array} \right.\

(2)matlab生成 

实例:

生成一个长度为10的单位抽样序列

 1.新建一脚本,生成函数impseq【注意:文件名要与函数名相同】

function[x,n] = impseq(n0,ns,nf)
% ns=序列的起点;nf=序列的终点;n0=序列在n0处有一个单位脉冲。
% x=产生的单位采样序列;n=产生序列的位置信息
n = [ns:nf];
x = [(n-n0)==0];

2.在原脚本文件中,调用函数

[x,n] = impseq(0,-5,4);
%序列长度为10
%x表示生成的序列

2. 单位阶跃序列

(1)定义

\LARGE u\left( n \right) = \left\{ \begin{array}{l} 1,n \ge 0\\ 0,n < 0 \end{array} \right.\

(2)matlab生成

实例:

生成一个长度为10的单位阶跃序列

 1. 新建一脚本,生成函数stepseq【注意:文件名要与函数名相同】 

function[x,n] = stepseq(n0,ns,nf)
% ns=序列的起点;nf=序列的终点
% n0=从n0处开始生成单位阶跃序列
% x=产生的单位阶跃序列; n=产生序列的位置信息
n = [ns:nf];
x = [(n-n0)>=0];

2. 在原脚本文件中,调用函数 

[x,n] = stepseq(0,-5,4);
%序列长度为10
%x表示生成的序列

3. 矩形序列

(1)定义

\LARGE \mathop R\nolimits_N (n) = \left\{ \begin{array}{l} 1,0 \le n \le N - 1\\ 0,others \end{array} \right.\

(2)matlab生成 

 【后面省略调用过程】

function[x,n] = rectseq(n0,ns,nf,N)
% ns=序列的起点;nf=序列的终点;n0=矩形序列开始的位置
% N=矩形序列的长度;x=产生的矩形序列;n=产生序列的位置信息
n = [ns:nf];
x = [(n - n0) >= 0 & ((n0 + N - 1) - n) >= 0];

4. 实指数序列

(1)定义

\LARGE x(n) = \mathop a\nolimits^n u(n)

【a为常数】

(2)matlab生成

function[x,n] = realindex(ns,nf,a)
% ns=序列的起点;nf=序列的终点;n0=实指数的值
% x=产生的实指数序列;n=产生序列的位置信息
n = [ns:nf];
x = a.^n;

5. 正弦序列

(1)定义

\LARGE x(n) = \sin (wn + \alpha )

(2)matlab生成

function[x,n] = sinseq(ns,nf,A,w0,alpha)
% ns=序列的起点;nf=序列的终点;A=正弦序列的幅度
% w0=正弦序列的频率;alpha=正弦序列的初始相位
% x=产生的正弦序列;n=产生序列的位置信息
n = [ns:nf];
x = A * sin(w0 * n + alpha);

6. 复指数序列

(1)定义

\LARGE x(n) = \mathop e\nolimits^{(\sigma + jw)n}

【关于其图像参考专栏“复指数序列”】 

 (2)matlab生成

function[x,n] = complexindex(ns,nf,index)
% ns=序列的起点;nf=序列的终点;index=复指数的值
% x=产生的复指数序列;n=产生序列的位置信息
n = [ns:nf];
x = exp(index.*n);

猜你喜欢

转载自blog.csdn.net/zzztutu/article/details/127422853