信号仿真实验报告剖析.docx
《信号仿真实验报告剖析.docx》由会员分享,可在线阅读,更多相关《信号仿真实验报告剖析.docx(15页珍藏版)》请在冰豆网上搜索。
信号仿真实验报告剖析
信号与系统
仿真实验报告
实验一
(1)
Function-M文件
function[x,t]=dirac(t1,t2,t0)
%y=dirac(t-t0),t1dt=0.001;%信号时间间隔
t=t1:
dt:
t2;%信号时间样本点向量
n=length(t);%时间样本点向量长度
x=zeros(1,n);%各样本点信号赋值为零
x(1,(t0-t1)/dt+1)=1/dt;%在时间t=t0处给样本点赋值为1/dt
end
主函数
>>[y,t]=dirac(-1,5,0);
>>stairs(t,y);
>>axis([-1,5,0,1.2/0.001])
>>title('单位冲击信号')
分析:
由于理想的单位冲击函数在Matlab中不能实际给出,于是就在t0附近取一个很小的区间dt,在这个区间中,函数可以认为是一个宽度很窄的门函数,幅值为1/dt,以满足冲击函数定义要求
(2)
Function-M文件
functionf=heaviside(t,t0)
%f=heaviside(t-t0)
f=(t-t0>0);%t>t0时f为1,否则为0
end
主程序
>>t=-1:
0.001:
5;%时间区间定义
>>t0=0;%函数向右位移距离
>>f=heaviside(t,t0);%生成向右位移t0的阶跃信号
>>plot(t,f)
>>axis([-1,3,-0.2,1.2])
分析:
在新版的Matlab函数库中有自带的阶跃函数,调用方法为f=heaviside(t),这里为了方便画位移后的图像,故自定义了一个阶跃函数。
(3)指数
a=1;
>>f=sym('exp(t)');
>>ezplot(f,[-3,3])
>>xlabel('时间t')
>>ylabel('函数f(x)')
a=-1;
f=sym('exp((-1)*t)');
>>ezplot(f,[-3,3])
>>xlabel('时间t')
>>ylabel('函数f(x)')
图a)a=1时的指数信号图像图b)a=-1时的指数函数图像
分析:
y=sym(‘f(x)’)是用了符号运算法
(4)
>>t=-1:
0.001:
10;
>>y=heaviside(t,0)-heaviside(t,5);
>>plot(t,y)
>>axis([0,10,-0.2,1.2])
分析:
采用两个跳变点不等的阶跃函数相减得到一个矩形函数的方法生成的门函数。
(5)
>>f=sym('sin(t)/t');
>>ezplot(f,[-30,30])
>>axis([-30,30,-0.4,1.2])
分析:
为了方便编程画图,这里直接采用了符号运算法
(6)正弦函数
f=sym('sin(2*pi*t)');
ezplot(f,[-1,1])
再分别令w=4*pi、6*pi得到后面两个图像
图a)w=2*pi图b)w=4*pi图c)w=6*pi
实验二:
离散时间信号的表示及可视化
(1)
Founction-M文件
function[f,k]=dwxulie(k1,k2,k0)
k=k1:
k2;
n=length(k);
f=zeros(1,n);
f(1,k0-k1+1)=1;
end
主程序
>>[y,k]=dwxulie(-5,5,0);
>>stem(k,y,'filled')
>>axis([-5,5,0,1.5])
>>title('单位序列')
(2)
Founction-M文件
function[y,k]=jyxulie(k1,k2,k0)
fori=1:
k2-k1+1;
ifiy(i)=0;
else
y(i)=1;
end
end
end
主程序
>>y=jyxulie(-5,5,0);
>>stem(k,y,'filled')
>>axis([-5,5,0,1.5])
(3)指数序列
Founction-M文件
function[y,k]=expxulie(k1,k2,a)
%y=exp(a*n),k1k=k1:
k2;
fori=1:
k2-k1+1;
y(i)=exp(a*(k1+i-1));
end
end
主程序
[y1,k]=expxulie(-2,2,1);
>>[y2,k]=expxulie(-2,2,2);
>>[y3,k]=expxulie(-2,2,-1);
>>[y4,k]=expxulie(-2,2,-2);
>>stem(k,y1)
>>holdon
>>stem(k,y2,'rd')
>>stem(k,y3,'g')
>>stem(k,y4,'y')
>>axis([-2.5,2.5,0,60])
蓝色--a=1,红色--a=2,绿色--a=-1,黄色--a=-2
(4)
>>k1=-1;k2=12;
>>y1=jyxulie(k1,k2,0)-jyxulie(k1,k2,3);%y1=R3(n)
>>y2=jyxulie(k1,k2,0)-jyxulie(k1,k2,6);%y2=R6(n)
>>y3=jyxulie(k1,k2,0)-jyxulie(k1,k2,9);%y2=R9(n)
>>k=k1:
k2;
>>subplot(3,1,1)
>>stem(k,y1,'filled')
>>axis([-2,13,0,1.5])
>>subplot(3,1,2)
>>stem(k,y2,'filled')
>>axis([-2,13,0,1.5])
>>subplot(3,1,3)
>>stem(k,y3,'filled')
>>axis([-2,13,0,1.5])
(5)
Founction-M文件
function[y,k]=Saxulie(k1,k2,w)
k=k1:
k2;
fori=1:
k2-k1+1;
if(i+k1-1)==0
y(i)=1;
else
y(i)=sin(w*(i+k1-1))/(w*(i+k1-1));
end
end
主程序
[y1,k]=Saxulie(-10,10,1);%w=1
>>[y2,k]=Saxulie(-10,10,2);%w=2
>>[y3,k]=Saxulie(-10,10,4);%w=4
>>subplot(3,1,1)
>>stem(k,y1,'filled')
>>subplot(3,1,2)
>>stem(k,y2,'filled')
>>subplot(3,1,3)
>>stem(k,y3,'filled')
(6)正弦序列
>>y1=sin(pi*k/4);%w=pi/4
>>y2=sin(pi*k/3);%w=pi/3
>>y3=sin(pi*k/2);%w=pi/2
>>y4=sin(2*pi*k/3);%w=2*pi/3
>>subplot(4,1,1)
>>stem(k,y1,'filled')
>>subplot(4,1,2)
>>stem(k,y2,'filled')
>>subplot(4,1,3)
>>stem(k,y3,'filled')
>>subplot(4,1,4)
>>stem(k,y4,'filled')
实验三:
系统的时域求解
1.1.设h(n)=(0.9)n×u(n),x(n)=u(n)−u(n-10),求:
y(n)=x(n)*h(n),并画出x(n)、h(n)、y(n)波形。
>>k=0:
100;
>>h=0.9.^k;
>>x=jyxulie(0,100,0)-jyxulie(0,100,10);
>>y=conv(h,x);
>>stem(k,h)
>>stem(k,x)
>>n=0:
200;
>>stem(n,y,'filled')
>>axis([0,50,0,7])%取前50个进行分析
h(n)的图像
x(n)的图像
2.2.求因果线性移不变系统y(n)=0.81y(n−2)+x(n)−x(n−2)
的单位抽样响应h(n),并绘出He(jω)的幅频及相频特性曲线。
>>A=[10-0.81];
>>B=[10-1];
>>[x,t]=dwxulie(0,20,0);
>>h=filter(B,A,x);
>>stem(t,h,'filled')
>>H=freqz(B,A,21);%N取21
>>[H,w]=freqz(B,A,21);%N取21
>>Hf=abs(H);Hx=angle(H);
>>figure
(1)
>>stem(w,Hf)
>>figure
(2)
>>stem(w,Hx)
h(n)图像
幅频特性相频特性
实验四:
对离散信号进行DFT分析
计算余弦序列x(n)=cos(nπ/8)RN(n)的DFT
(1)N=10时,
N=10;%设定常量N
n=[0:
N-1];%通过矩阵给n赋值以代替门函数的作用
x=cos((pi/8).*n);%余弦序列的函数表达式
y=fft(x);%求余弦序列的DFT
subplot(2,1,1),stem(n,y,’py’)%绘制y的离散图
subplot(2,1,2),stem(n,abs(y),’py’)%绘制函数y的幅频特性曲线
(2)N=16时
N=16;%设定N值
n=[0:
N-1];%通过矩阵形式给n赋值以代替门函数的作用
x=cos((pi/8).*n);%余弦函数
y=fft(x);%离散序列的傅立叶变换
subplot(2,1,1),stem(n,y,’py’)
subplot(2,1,2),stem(n,abs(y),’py’)%绘制X(ejω)的幅频特性曲线响应
(3)N=22时
N=22;
n=[0:
N-1];%通过矩阵形式给n赋值以代替门函数的作用
x=cos((pi./8)*n);%余弦函数
y=fft(x);%离散序列的傅立叶变换
subplot(2,1,1),stem(n,y,’py‘)
subplot(2,1,2),stem(n,abs(y),’py’)
N=10
N=16
N=22
分析:
由上面3幅图可以看出,当N=10和N=22时,离散傅里叶变换函数值变化趋于平缓,均呈现两边高中间低的趋势,且22点比10点取值点多,更接近真实情况。
而当取16点时,图形变化较大,与另外两种情况明显不同,在图形的中间部分出现了较多零值。
再观察原函数,可见16为8的倍数,当N取16时,原函数x的取值呈现了较大的对称性,此时旋转因子也呈现了较大的对称性,这样当旋转因子矩阵和原函数向量点乘时,出现了抵消现象,导致了图中的情况。
实验五:
系统时瑜解的快速卷积求法
用快速卷积法计算系统响应y(n)=x(n)*h(n),已知:
x(n)=sin(0.4)R15(n),h(n)=0.9nR20(n)要求取不同的L点数,并画出x(n)、h(n)、y(n)波形,分析是否有差别及产生差别的原因。
k1=0:
14;
x=s