当a<-1时,y(t)=x(at),y(t)是将x(t)在时间轴上的压缩同时翻转而得到;
由此可见,信号的时域尺度变换,除了对信号进行时域压缩或扩展外,还可能包括对信号的时域反褶运算。
实际上,MATLAB完成式1.5的运算,并不需要特殊的处理,按照数学上的常规方法即能完成。
7、周期信号
周期信号是一类非常重要的信号。
给定一个信号x(t)或x[n],如果满足
x(t)=x(t+kT)x[n]=x[n+kN]
则该信号叫做周期信号。
其中,k为任意整数,T和N为常数,通常称为信号的基本周期或最小周期。
周期信号可以看作是一个时限的非周期信号经过周期延拓之后形成的。
在数字信号处理中,周期延拓这一信号处理方法非常重要。
【实验过程】
1、产生并画出下列信号:
a.单位冲激信号
与单位脉冲序列
;
b.单位阶跃信号u(t)与单位阶跃序列u[n].
(a)
%Impulsesquence
subplot(1,2,1); %将当前绘图窗口分成1行2列,并选中其中的第一块准备绘图
n=[-20:
20]; %n是一个整数向量(数组),从20到20,步长为1,共有41个数,维 %数为1×41
z=(n==0); %z是一个与n维数相同的向量,其中的每个数n中对应位置处的整数与0比较%相等与否的结果。
与0比较的结果为False(0),与0的比较为True(0)
stem(n,z);%以向量n为横坐标的值序列,以向量z为纵坐标的值序列
title('单位脉冲序列');
xlabel('n');%图中横轴x轴标签为n
ylabel('\delta[n]');%纵轴y轴标签为δ(n)
%Impulsefunction
subplot(1,2,2);
t=-20:
0.1:
20;
y=(t==0);
plot(t,y,'r');
title('单位冲击信号');
xlabel('t');ylabel('\delta[t]');
(b)
%Stepsquence
subplot(1,2,1);
n=[-10:
10];
z=(n>=0);
stem(n,z);
title('单位阶跃序列');
xlabel('n');ylabel('u[n]');
%Stepfunction
subplot(1,2,2);
t=-10:
0.1:
10;
y=(t>=0);
plot(t,y,'b');
title('单位阶跃信号');
xlabel('t');ylabel('u[t]');
思考题:
①在matlab中不能产生理想的单位冲激信号.
②不相等,
在零时刻的值为无穷,
在零时刻的值为1.
2.产生并画出下列信号:
a在[-2П,2П]的范围内,画出正弦信号sin(t);
b利用sawtooth函数,在[-5П,5П]的范围内,画出周期三角波和锯齿波;
c利用square函数,在[-5П,5П]的范围内,画出周期方波。
(a)
%sincewave
subplot(1,1,1);
t=-2*pi:
pi/20:
2*pi;
plot(t,sin(t));
title('正弦信号');
xlabel('t');ylabel('sin(t)');
(b)
%Triangularwave
subplot(1,2,1);
t=-5*pi:
pi/100:
5*pi;
x=sawtooth(t,0.5);%sawtooth为MATLAB固有函数;0.5表示x的最大值出现在t一个2π%周期的中点处
plot(t,x);
title('周期三角波');
xlabel('t');ylabel('x');
%Sawtoothwave
subplot(1,2,2);
z=sawtooth(t);%表示z的最大值出现在t一个2π周期的最右边点处
plot(t,z);
title('周期锯齿波');
xlabel('t');ylabel('z');
(c)
%Squarewave
subplot(1,1,1);
t=-5*pi:
pi/100:
5*pi;
x=square(t);
plot(t,x);
axis([-5*pi,5*pi,-1.5,1.5]);%人为制定绘图窗口中的绘图坐标范围,格式为:
%axis([Xmin,Xmax,ymin,ymax]);如果不指定的%话,则由MATLAB自动决定绘图坐标范围,以保证所有%涉及的数据点都被包括在所绘图中
title('Squarewave');
xlabel('t');ylabel('x')
思考题:
(1).锯齿波有下降沿,三角波没有.
(2).两函数都产生周期为2
,可以通过改变角频率w的大小实现。
3.在[-4П,4П]的范围内,产生sinc函数曲线和diric函数曲线(N=5)
Sinc函数的定义sinc(t)=[sin(πt)]/πt;
diric的函数定义为diric=(sin(Nt/2))/(Nsin(t/2))
figure
(1);clf;%指定1号绘图窗口为当前绘图窗口,并清空当前的绘图窗口内容
t=-4*pi:
pi/20:
4*pi;
%Sincfunction
subplot(2,1,1);
plot(t,sinc(t));
title('Sinc函数曲线');grid;
xlabel('t');
ylabel('sinc(t)');
%Diricfunction
subplot(2,1,2);
plot(t,diric(t,5));%diric(x,N)中的正整数N是该函数值在[0,2π]范围内的等间距%的极值数目(极值包括最大值最小值),N=5表示在[0,2π]间正好%有5个极值
title('Diric函数曲线');grid;
xlabel('t');
ylabel('diric(t)');
思考题:
(1)sinc函数是奇函数;当sinc(t)函数的导数等于0即
时,取得极值点;当sin
=0即t=k(整数)时为零点。
diric函数是奇函数;当diric函数得导数等于0即
=0时,取得极值点;当sin(Nt/2)=0即当t=2k
/2时为零点。
4.在n=[-10:
10]范围内产生离散信号:
x[n]=
subplot(1,1,1);
n=[-10:
10];
x=2*n.*(abs(n)<=3);%abs(n)<=3是一个向量的运算,即向量n中的每个元素都取绝对值之%后,再与3比较。
在n中绝对值小于或等于3的元素,该比较结果为%true
(1),其他n中元素该比较结果为false(0)
stem(n,x);
title('离散信号');
xlabel('n');
ylabel('x[n]');
5.在n=[-10:
10]范围内画出以下信号:
clear;clc;clf;%清除工作区间、清除命令行窗口、清除图形窗口
n=[-10:
10];
x1=delta(n);
x2=delta(n+2);
x3=delta(n-4);
x4=2*delta(n+2)-delta(n-4);
subplot(2,2,1);stem(n,x1);
title('x_1[n]=\delta[n]');axis([-10,10,-1,2]);gridon;
subplot(2,2,2);stem(n,x2);
title('x_2[n]=\delta[n+2]');axis([-10,10,-1,2]);gridon;
subplot(2,2,3);stem(n,x3);
title('x_3[n]=\delta[n-4]');axis([-10,10,-1,2]);gridon;
subplot(2,2,4);stem(n,x4);
title('x_4[n]=2*\delta[n+2]-\delta[n-4]');axis([-10,10,-1,2]);gridon;
delta.m的源程序如下:
6产生复信号:
并画出它们的实部和虚部及模值和相角;
(a)
n=[0:
32];
x=exp(j*(pi/8)*n);%exp指数信号
subplot(2,2,1);stem(n,real(x));title('Realpart');xlabel('n');
subplot(2,2,2);stem(n,imag(x));title('Imaginarypart');xlabel('n');
subplot(2,2,3);stem(n,abs(x));title('Magnitude');xlabel('n');
subplot(2,2,4);stem(n,(180/pi)*angle(x));
title('Phase(\circ)part');xlabel('n');
%angle(x)inradunit;(180/pi)*angle(x)indegreeunit
(b)
n=[-10:
10];
x=exp((-0.1+j*0.3)*n);
subplot(2,2,1);stem(n,real(x));title('Realpart');xlabel('n');
subplot(2,2,2);stem(n,imag(x));title('Imaginarypart');xlabel('n');
subplot(2,2,3);stem(n,abs(x));title('Magnitude');xlabel('n');
subplot(2,2,4);stem(n,(180/pi)*angle(x));
title('Phase(\circ)part');xlabel('n');
思考题:
①模等于实部的平方加上虚部的平方再进行开方
②-180到180③Re[x[n]]=模*cos(r(n)),Im[x[n]]=模*sin(
(n))
7.已知x[n]=u[n]-u[n-10],要求将它进行奇偶分量进行分解,分解为奇分量
主程序如下:
n=[0:
10];
x=stepseq(0,0,10)-stepseq(10,0,10);
[xe,xo,m]=evenodd(x,n);
subplot(2,2,1);stem(n,x);title('Stepsequence');
xlabel('n');ylabel('x[n]');axis([-1010-1.21.2]);
subplot(2,2,3);stem(m,xe);title('Evenpart');
xlabel('n');ylabel('xe[n]');axis([-1010-1.21.2]);
subplot(2,2,4);stem(m,xo);title('Oddpart');
xlabel('n');ylabel('xo[n]');axis([-1010-1.21.2]);
Stepseq.m的源程序如下:
function[x,n]=stepseq(n0,n1,n2);
ifnargin~=3%nargin(numberofargumentsinput);“~=”表示不相等
disp('Usage:
Y=stepseq(n0,n1,n2)');
elseif((n0n2)|(n1>n2))%n0n2或者n1>n2
error('argumentsmustsatisfyn1<=n0<=2')
end
n=[n1:
n2];
x=[(n-n0)>=0];
evenodd.m的源程序如下:
function[xe,xo,m]=evenodd(x,n)
ifany(imag(x)~=0)
error('xisnotarealsequence');
return;
end
m=-fliplr(n);%fliplr为MATLAB的固有函数,可将矩阵过向量进行左右对称翻转
m1=min([m,n]);m2=max([m,n]);m=m1:
m2;%m1取[m,n]最小值,m2取[m,n]最大值。
%m1m2组成新的区间赋给m
nm=n
(1)-m
(1);n1=1:
length(n);
x1=zeros(1,length(m));
x1(n1+nm)=x;x=x1;%现在的x的值也填满了这个对称区间,并且在这个新的对称区间内与原%来的x的区间相应的那些x元素之仍保持不变xe=0.5*(x+fliplr(x));%偶对称分量由1/2*(x[n]+x[-n])得到
xo=0.5*(x-fliplr(x));%奇对称分量由1/2*(x[n]-x[-n])得到
8.已知序列
a.画出x[n];
x=zeros(1,21);y1=zeros(1,21);y2=zeros(1,21);y3=zeros(1,21);%零矩阵
forn=-10:
10%for循环语句
switchn%switch语句的开始,后面紧跟着分支条件。
分支条件可以是一个变量、函数 %或表达式
case0
x(n+11)=2;
case2
x(n+11)=1;
case3
x(n+11)=-1;
case4
x(n+11)=3;
otherwise
x(n+11)=0;
end
end
forn=1:
21;
ifn-2>0
y1(n)=x(n-2);
end
ifn+1<=21
y2(n)=x(n+1);
end
end
forn=-10:
10;
y3(n+11)=x(-n+11);
end
n=-10:
10;
subplot(2,2,1);stem(n,x);title('x[n]');xlabel('n');ylabel('x');gridon;
subplot(2,2,2);stem(n,y1);title('y_1[n]');xlabel('n');ylabel('y_1');gridon;
subplot(2,2,3);stem(n,y2);title('y_2[n]');xlabel('n');ylabel('y_2');gridon;
subplot(2,2,4);stem(n,y3);title('y_3[n]');xlabel('n');ylabel('y_3');gridon;
思考题:
①x[
]为x[n]向右移动了
个单位(
为正整数)
②x[-n]为x[n]沿纵轴翻转得来的
9.在n=[0:
31]范围内画出下列信号:
n=[0:
31];
x1=sin(n*pi/4).*cos(n*pi/4);x2=sin(n);
figure
(1);stem(n,x1);title('x_1[n]');
xlabel('n');ylabel('x_1');axis([031-11]);gridon;
figure
(2);stem(n,x2);title('x_2[n]');
xlabel('n');ylabel('x_2');axis([031-11]);gridon;
思考题:
①
=(2kп)/N(N为整数)
②信号
[n]与
[n]是周期信号,其基波周期是8.