数字信号处理课设
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理课程设计
姓名:刘倩
学号:201014407
专业:信息与计算科学
实验一:常见离散信号产生和实现
一、实验目的:
1、加深对常用离散信号的理解;
2、掌握matlab 中一些基本函数的建立方法。
二、实验原理:
1.单位抽样序列
⎩⎨⎧=01
)(n δ 0
0≠=n n 在MATLAB 中可以利用zeros()函数实现。
;
1)1();,1(==x N zeros x 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:
⎩⎨⎧=-01)(k n δ 0
≠=n k n 2.单位阶越序列
⎩⎨⎧0
1)(n u 00<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =
3.正弦序列
)/2sin()(ϕπ+=Fs fn A n x
在MATLAB 中
)
/***2sin(*1:0fai Fs n f pi A x N n +=-= 4.复指数序列
n j e r n x ϖ⋅=)(
在MATLAB 中
)
**ex p(1:0n w j r x N n ⋅=-= 5.指数序列
n a n x =)(
在MATLAB 中
n
a x N n .^1:0=-= 实验内容:由周期为10的正弦函数生成周期为20的余弦函数。
实验代码:
n=0:30;
y=sin(0.2*pi*n+pi/2);
y1=sin(0.1*pi*n+pi/2);
subplot(121)
stem(n,y);
xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); subplot(122)
stem(n,y1);
xlabel ('时间序列n');ylabel('振幅');
title('正弦函数序列y=sin(0.2*pi*n+pi/2)');
实验结果:
实验二:离散系统的时域分析
实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
实验原理:离散系统
其输入、输出关系可用以下差分方程描述:
∑∑==-=-M
k k N k k k n x p k n y d
00][][ 输入信号分解为冲激信号,
∑∞
-∞=-=
m m n m x n x ][][][δ。 记系统单位冲激响应 ][][n h n →δ,
则系统响应为如下的卷积计算式:
∑∞
-∞=-=
*=m m n h m x n h n x n y ][][][][][ 当N k d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。
在MATLAB 中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。
实验内容:用MATLAB 计算全解
当n>=0时,求用系数差分方程y[n]+y[n-1]-6y[n-2]=x[n]描述的一个离散时间系统对阶跃输入x[n]=8μ[n]的全解。
实验代码:
n=0:7;
>> [y,sf]=filter(1,[1 1 -6],8*ones(1,8),[-7 6]);
>> y1(n+1)=-1.8*(-3).^n+4.8*(2).^n-2;
>> subplot(121)
>> stem(n,y);
>> title('由fliter 函数计算结果');
>> subplot(122)
>> stem(n,y1);
>> title('准确结果');
实验结果:
结果分析:有图可得由fliter函数得出的结果与计算出的准确结果完全一致。
实验三FFT算法的应用
实验代码:实验目的:加深对离散信号的DFT的理解及其FFT算法的运用。
实验原理:N点序列的DFT和IDFT变换定义式如下:
,
利用旋转因子具有周期性,可以得到快速算法(FFT)。
在MATLAB中,可以用函数X=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。
实验步骤:(1)画出标准的12点离散余弦函数的DFT幅度函数
(2)在原来的离散点后补零,使点数增加到16点,画出离散余弦函数的DFT幅度函数(2)保持波形,增加点数
N=12;
n=0:11;
x1=cos(2*n*pi/6);
subplot(3,2,1);
stem(n,x1);
X1=fft(x1);X1=abs(X1);
subplot(3,2,2);
stem(n,X1);
n1=0:15;
x2=[x1 zeros(1,4)];
subplot(3,2,3);
stem(n1,x2);
X2=fft(x2);X2=abs(X2);
subplot(3,2,4);
stem(n1,X2);
n2=0:23;
x3=cos(2*n2*pi/12);
subplot(3,2,5);
stem(n2,x3);
X3=fft(x3);X3=abs(X3);
subplot(3,2,6);
stem(n2,X3);
实验结果:
理论分析:(1)由图可以看出,离散余弦函数的12点DFT是一个冲击响应,在n=1,n=10时有
对,其2N点的DFT变换为:
当时, =0
当时,即
因此X[k]在k=2,k=10时有值,其他值为零。
(2)第二幅图是在离散时间序列的一边补四个零,使得离散点数位2的4次幂,然后对其做fft,由图可以看出图像的分辨率并没有提高,只是让图显得光滑了,这是因为,补的值是零值而不是抽到的余弦函数本身的值