目录
一、序
在 MATLAB 中,序列是用矩阵向量表示,但它没有包含采样信息,即序列位置信息,为此,要表示一个序列需要建立两个向量:一是时间序列 n,或称位置序列,另一个为取值序列 x。表示如下:n=[…,-3,-2,-1,0,1,2,3,…] ,x=[…,-6,4,7,4,-3,8,2,…]。
一般程序都从 0 位置起始,即 x= [x(0), x(1), x(2),…]。对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。(这里要注意,MATLAB中数组索引必须为正整数或逻辑值。)
二、常见序列及其表示代码
1、单位冲激响应序列
冲激响应函数仅在n=0处有值,因此可以借用MATLAB函数“zeros”建立全0序列。
MATLAB代码如下:
N=40;%设置需要的序列的长度
delta=zeros(1,N+1); %用zeros函数创建零序列
delta(N/2+1)=1; %规定N/2+1处的值为1
figure(1) %画图
stem(-N/2:N/2,delta); %用stem绘制序列更清晰
xlabel('time');ylabel('amplitude');title('delta function');
hold on;
效果如下:
2、单位阶跃响应序列
单位阶跃响应序列在n<0时等于0,在n>0时等于1,因此可以借用MATLAB函数zeros和ones创建部分全0序列和部分全1序列。
MATLAB代码如下:
N=40;%设置需要的序列的长度
u=[zeros(1,N/4) ones(1,N)]; %用zeros函数创建0序列,ones创建1序列并合并成数组形式
figure(1) %画图
stem(-N/4:N-1,delta); %用stem绘制序列更清晰
xlabel('time');ylabel('amplitude');title('unit step function');axis([-10 40 0 1]);
hold on;
效果如下:
3、 正弦序列
正弦序列的变量由幅度A,周期2/和相位。可以借助MATLAB函数sin构建。
MATLAB函数如下:
N=40; %设置序列长度
w=4; %设置正弦序列角频率
n=1:N; %创建长度为N的数组n
A=2; %设置正弦序列幅度
phi=pi/6; %设置正弦序列相位
fun2=A*sin(w.*n+phi);
figure(1) %画图
stem(n,fun2);
xlabel('time');ylabel('amplitude');title('sin funtion')
效果如下:
4、指数序列
MATLAB代码如下:
N=40; %设置序列长度
a=0.5; %设置a
n=1:N; %创建序列n
fun=a.^n; %指数序列
stem(n,fun); %画图
xlabel('time');ylabel('amplitude');title('a^n funtion')
效果如下:
5、复指数序列
MATLAB代码如下:
N=40; %设置序列长度
K0=4; %设置序列幅度
n=1:N; %构建长度为N的序列n
a=-0.2;b=0.5; %设置参数值
fun=K0*exp((a+1j*b).*n);
figure(1) %画图
subplot(4,1,1)
stem(n,abs(fun));xlabel('time');ylabel('amplitude');title('K0exp(a+bi)n funtion') %函数幅值
subplot(4,1,2)
stem(n,real(fun));xlabel('time');ylabel('Real');title('K0exp(a+bi)n funtion') %函数实部
subplot(4,1,3)
stem(n,imag(fun));xlabel('time');ylabel('Image');title('K0exp(a+bi)n funtion') %函数虚部
subplot(4,1,4)
stem(n,angle(fun));xlabel('time');ylabel('phase');title('K0exp(a+bi)n funtion') %函数相位
效果如下:
三、总结
在数字信号处理中常用的信号有指数信号、正弦信号、余弦信号、方波信号、锯齿波信号
等,在 MATLAB 语言中分别由 exp, sin, cos, square, sawtooth 等函数来实现。
可利用这些典型序列作用在系统上,研究测试系统的某些时域、频域特性。例如最基本的单位冲激响应函数,它作用在系统上,可以得到系统的单位抽样响应,从而得到系统的频率响应。又可以利用冲激响应函数表示任意序列。