数字信号处理课程设计实验报告..docx
- 文档编号:251296
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:28
- 大小:507.71KB
数字信号处理课程设计实验报告..docx
《数字信号处理课程设计实验报告..docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计实验报告..docx(28页珍藏版)》请在冰豆网上搜索。
基础实验
实验一 离散时间系统及离散卷积
一、实验原理
利用Matlab软件计算出系统函数的零极点分布、单位脉冲响应和系统频率响应等的图像并于笔算结果进行比较,找出异同。
编译合适程序能计算取值范围不同的离散卷积。
二、实验目的
(1)熟悉MATLAB软件的使用方法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
(4)熟悉离散卷积的概念,并利用MATLAB计算离散卷积。
三、实验源程序及实验结果
1.离散时间系统的单位脉冲响应
functionpr1() %定义函数pr1
a=[1,-1,0.9]; %定义差分方程y(n)-y(n-1)+0.9y(n-2)=x(n)b=1;
x=impseq(0,-20,120);%调用impseq函数
n=[-20:
120]; %定义n从-20到120
h=filter(b,a,x); %输入x为滤波前序列,b为分子,a为分母
figure
(1) %绘图figure1(冲激响应)
stem(n,h); %在图中绘出冲激
title('冲激响应'); %定义标题为:
'冲激响应'xlabel('n'); %绘图横座标为n
ylabel('h(n)'); %绘图纵座标为h(n)
figure
(2) %绘图figure2[z,p,g]=tf2zp(b,a); %绘出零极点图zplane(z,p)
function[x,n]=impseq(n0,n1,n2) %声明impseq函数n=[n1:
n2];
x=[(n-n0)==0];
1
0.8
0.6
0.4
ImaginaryPart
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1 -0.5 0 0.5 1
RealPart
□位位位
1
0.8
0.6
0.4
0.2
h(n)
0
-0.2
-0.4
-0.6
-0.8
-1
-20 0 20 40 60 80 100 120
n
2.离散系统的幅频、相频的分析方法functionpr2()b=[0.0181,0.0543,0.0543,0.0181];
a=[1.000,-1.76,1.1829,-0.2781];
m=0:
length(b)-1; %m从0到3
l=0:
length(a)-1; %l从0到3
K=500;k=1:
K;w=pi*k/K; %角频率wH=(b*exp(-j*m'*w))./(a*exp(-j*l'*w));%对系统函数的定义magH=abs(H); %magH为幅度
angH=angle(H); %angH为相位figure
(1)
subplot(2,1,1); %在同一窗口的上半部分绘图
plot(w/pi,magH); %绘制w(pi)-magH的图形grid;
axis([0,1,0,1]); %限制横纵座标从0到1
xlabel('w(pi)'); %x座标为w(pi)
ylabel('|H|'); %y座标为angle(H)
title('幅度,相位响应'); %图的标题为:
'幅度,相位响应'subplot(2,1,2); %在同一窗口的下半部分绘图
plot(w/pi,angH); %绘制w(pi)-angH的图形grid; %为座标添加名称
xlabel('w(pi)'); %x座标为w(pi)
ylabel('angle(H)'); %y座标为angle(H)
□位位位位位位
1
|H|
0.5
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
w(pi)
4
2
angle(H)
0
-2
-4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
w(pi)
3.离散卷积的计算
functionpr3()
n=-5:
50; %声明n从-5到50
u1=stepseq(0,-5,50); %调用stepseq函数声用明u1=u(n)u2=stepseq(10,-5,50); %调用stepseq函数声用明u2=u(n-10)x=u1-u2; %x(n)=u(n)-u(n-10)
h=((0.9).^n).*u1; %h(n)=0.9^n*u(n)L=length(x)+length(h)-1;
X=fft(x,L);
H=fft(h,L);
y=ifft(X.*H)
subplot(3,1,1);stem(n,x);axis([-5,50,0,2]);title('输入序列');xlabel('n');ylabel('x(n)');%输入序列subplot(3,1,2);stem(n,h);axis([-5,50,0,2]);title('冲激响应序列');xlabel('n');ylabel('h(n)');%冲激相应序列
n=0:
L-1;
subplot(3,1,3); stem(n,real(y));title('输出响应');xlabel('n');ylabel('y(n)');%卷积结果
function[x,n]=stepseq(n0,n1,n2)n=n1:
n2;
x=[(n-n0)>=0];
□位位位
2
x(n)
1
0
-5 0 5 10 15 20 25 30 35 40 45 50
n
□位位位位位
2
h(n)
1
0
-5 0 5 10 15 20 25 30 35 40 45 50
n
□位位位
10
y(n)
0
-10
0 20 40 60 80 100 120
n
实验二离散傅立叶变换与快速傅立叶变换
一、实验原理
对有限长序列使用离散Fouier变换(DFT)可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为
X(k)=DFT[x(n)]=N-1()nk
0£k£N-1
åxnWNn=0
反变换为
x(n)=IDFT[X(k)]=
1N-1X(k) -nk
0£n£N-1
å WN
Nn=0
有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。
FFT是为了减少DFT运算次数的一种快速算法。
它是对变换式进行一次次分解,使其成为若干较短序列的组合,从而减少运算量。
常用的FFT是以2为基数的,其长度
。
它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。
用FFT可以实现两个序列的圆周卷积。
在一定的条件下,可以使圆周卷积等于线性卷积。
一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是
FFT的长度
N≥N1+N2
对于长度不足N的两个序列,分别将他们补零延长到N。
二、实验目的
(1)加深理解离散傅立叶变换及快速傅立叶变换概念;
(2)学会应用FFT对典型信号进行频谱分析的方法;
(3)研究如何利用FFT程序分析确定性时间连续信号;
(4)熟悉应用FFT实现两个序列的线性卷积的方法。
3、实验源程序及结果
1.DFT程序
functionpr4()F=50;N=64;T=0.000625;n=1:
N;
x=cos(2*pi*F*n*T); %x(n)=cos(pi*n/16)subplot(2,1,1);stem(n,x);title('x(n)');xlabel('n');%x(n)X=dft(x,N);subplot(2,1,2);stem(n,X);title('DFT|X|');xlabel('f(pi)');%DFT|X|
%dft的子程序
%实现离散傅里叶变换function[Xk]=dft(xn,N)
n=0:
N-1;
k=0:
N-1;
WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;
x(n)
1
0.5
0
-0.5
-1
0 10 20 30 40 50 60 70
nDFT|X|
40
20
0
-20
0 10 20 30 40 50 60 70
f(pi)
2.三角序列与反三角序列DFT
N=8;
fs=100;T=1/fs;n=-6:
9;
xc=(n+1).*(n>=0&n<=3)+(8-n).*(n>=4);
xd=(4-n).*(n>=0&n<=3)+(n-3).*(n>=4);
X1=fft(xc,N);
X2=fft(xd,N);magX1=abs(X1),phaX1=angle(X1)magX2=abs(X2),phaX2=angle(X2)subplot(3,2,1);stem(n,xc);
xlabel('n');title('xc(n)');
subplot(3,2,2);stem(n,xd);
xlabel('n');title('xd(n)');k=0:
N-1;
subplot(3,2,3);stem(k,magX1);
subplot(3,2,4);stem(k,magX2);
xlabel('k');ylabel('dftdefudu');
subplot(3,2,5);stem(k,phaX1);
subplot(3,2,6);stem(k,phaX2);xlabel('k');ylabel('dftdexiangwei');
xc(n)
5
xd(n)
10
0 5
-5
-10 -5 0 5 10
n
4
0
-10 -5 0 5 10
n
10
2
0
0 2 4 6 8
5
dftdefudu
0
0 2 4 6 8
k
dftdexiangwei
5 5
0
-5
0 2 4 6 8
0
-5
0 2 4 6 8
k
3.余弦信号傅里叶变换
F=50;N=64;T=0.000625;n=1:
N;
x=cos(2*pi*F*n*T); %x(n)=cos(pi*n/16)subplot(2,1,1);plot(n,x);title('x(n)');xlabel('n'); %在第一个子窗中绘图x(n)
X=fft(x);subplot(2,1,2);plot(n,X);title('DTFT|X|');xlabel('f(pi)'); %在第二个子图中绘图x(n)的快速傅里叶变换
x(n)
1
0.5
0
-0.5
-1
0 10 20 30 40 50 60 70
nDTFT|X|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 课程设计 实验 报告