由图看出:x1=1.5*sin(2*pi*0.1*n)的周期是10则频率为0.1,而x2=sin(0.9*n)是非周期的。
8、 绘制方波、锯齿波和sinc函数:
实验二:离散系统的时域分析
一、 实验目的:
1、加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
二、 实验思路:
分析系统的差分方程,将输入信号分解为x[n],冲激信号统响应y[n]由x[n]和单位冲激响应h[n]卷积得到。在MATLAB中可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。用上述函数可以求解差分方程
三、 核心代码:
1、用conv和filter函数计算h与x的卷积 y = conv(h,x);n = 0:14; y1 = filter(h,1,x1);
2、分析用filter函数在输入信号补零点的不同时的卷积结果 h = [1 4 2 3 2 1 -2 1 0 -4 0 3];x = [1 -2 3 -4 3 2 1 2];n = 0:17; x1 = [x zeros(1,10)]; y1 = filter(h,1,x1); x2 = [x zeros(1,11)]; y2 = filter(h,1,x1); 3、求解系统的单位冲激响应和阶跃响应
(i)y[n]?0.75y[n?1]?0.125y[n?2]?x[n]?x[n?1] (a):单位冲激响应 y1filter=filter(b1,a1,x1); [h]=impz(b1,a1,10); y1conv=conv(h,x1); impz(b1,a1,21); (b):单位阶跃响应
x2=ones(1,21);y1filter=filter(b1,a1,x2);
[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21); a=[1,0.75,0.125];b=1;impz(b,a)
(ii)y[n]=0.25(x[n-1]+x[n-2]+x[n-3]+x[n-4]) (a):单位冲激响应 y2filter=filter(b2,a2,x1); [h]=impz(b2,a2,5); y2conv=conv(h,x1); impz(b2,a2,10); (b):单位阶跃响应 y2filter=filter(b2,a2,x2); y2=conv(h,x2); y2conv=y2(1:21); impz(b,a,21)
四、 成果截图:
1、 用conv和filter函数计算h与x的卷积
2、 分析用filter函数在输入信号补零点的不同时的卷积结果
h[n]有i个值,x[n]有j个值, 以n为x轴,n=0:N,使用x[n]补零后的x1来产生y1,当补零数小于j-1就不能完全卷积;要完全卷积,x1至少需补j-1个零值。其中N>=(i+j-1)-1, n的长度与补零后x1的长度相等,若x1中补a个零值(a>=j-1),则N=i+a-1。 3、 求解系统的单位冲激响应和阶跃响应 (a):单位冲激响应 (i)
(ii)
(b):单位阶跃响应 (i)
(ii)
实验三:FFT算法的应用
一、 实验目的
加深对离散信号的DFT的理解及其FFT算法的MATLAB实现与运用。
二、 实验思路
在MATLAB中将周期信号采样,利用函数x=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。计算时要注意有效点数和DFT的点数的关系。
三、 核心代码
1、计算正弦序列的N点DFT xk1=fft(xa1);xk1=abs(xk1); xk2=fft(xa2);xk2=abs(xk2); 2、计算2N点FFT和N点IFFT X=fft(x,128); x1=ifft(X1,64);
3、比较用IFFT函数时与IDFT理论计算结果 x2=1/(1-0.8^N1)*0.8.^n1;