数字信号处理MATLAB简单序列

数字信号处理应用的几个基本序列:

1 单位样本序列

function  mainImseq()
clc
clear
disp(\'生成抽样序列\');
y=imseq(1,1,5);   %调用样本函数,此时序列下标以1开头(1~5之间5个数,下标为1的抽样值为1)

%子函数imseq:抽样函数
function [x,n]=imseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0) ==0 ]

2 单位阶越序列

产生u(n)

function  mainImseq()
clc
clear
disp(\'生成单位阶跃序列\');
y=stepseq(4,1,10);   %调用样本函数,此时序列下标以1开头(1~10之间10个数,下标为4之后的抽样值全为1)

%子函数stepseq:阶跃函数
function [x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0) >=0 ]

3 实值指数序列

n=[0:10]; x=(0.9).^n; plot(x,\'*\')

4复值指数序列

n=[0:10];

x=exp((2+3j)*n);

plot(x,\'*\')

5正弦序列

n=[0:10];

x=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n);

plot(x,\'*\')

6随机序列

两种伪随机序列

rand(1,N)产生一个长度为N,其值在[0,1]之间均匀分布的随机序列;

     rand(m,n)生成m行n列的均匀分布的伪随机数 eg:rand(1,10);

rand(m,n,\'double\')生成指定精度的均匀分布的伪随机数,参数还可以是\'single\'

rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数

randn(1,N)产生一个长度为N,均值为0,方差为1的高斯型随机序列

主要语法:和上面一样

7周期序列

把一个序列x(n)=[1 2 3 4]产生为3个周期:

x=[1 2 3 4];

xtilde=[x,x,x] %因变量符号可以为任意,如y等

方法二:

>> x=[1 2 3 4];

>> y=x\'*ones(1,5);

>> y=y(:);

>> y=y\'