数字信号处理 实验报告.docx
《数字信号处理 实验报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理 实验报告.docx(32页珍藏版)》请在冰豆网上搜索。
数字信号处理实验报告
重庆交通大学
学生实验报告
实验课程名称数字信号处理
开课实验室数学实验室
学院理学院年级09专业班信息与计算科学1班
学生姓名张恒学号09180106
开课时间2011至2012学年第2学期
评分细则
评分
报告表述的清晰程度和完整性(20分)
程序设计的正确性(40分)
实验结果的分析(30分)
实验方法的创新性(10分)
总成绩
教师签名
蒋伟
实验一、Z变换及离散时间系统分析
(一)、实验目的
1、通过本实验熟悉Z变换在离散时间系统分析中的地位和作用。
2、掌握并熟练使用有关离散系统分析的MATLAB调用函数及格式,以深入理解离散时间系统的频率特性。
(二)、实验内容
对于一个给定的LSI系统,其转移函数H(z)习惯被定义为H(z)=B(z)/A(z),即:
公式中
和
分别是H(Z)分子与分母多项式的阶次,在有关MATLAB的系统分析的文件中,分子和分母的系数被定义为向量,即
并要求
=1,如果
≠1,则程序将自动的将其归一化为1。
1、系统的阶跃响应
调用格式为:
y=filter(b,a,x),其中x,y,a,b都是向量。
2、单位抽样响应h(n)
调用格式为:
h=impz(b,a,N)或[h,t]=impz(b,a,N)
其中N是所需的h(n)的长度,前者绘图时n从1开始,而后者从0开始。
3、求频率响应
基本调用格式为:
[H,w]=freqz(b,a,N,‘whole’,Fs)
其中N是频率轴的分点数,建议N为2的整次幂;w是返回频率轴坐标向量,供绘图用;Fs是抽样频率,若Fs=1,频率轴给出归一化频率;whole指定计算的频率范围是从0~Fs,缺省时是从0~Fs/2。
4、离散系统的极零图
调用格式:
zplane(z,p)或zplane(b,a)
前者是在已知系统零点的列向量z和极点的列向量p的情况下画出的极零图,后者是在已知B(z),A(z)的情况下的极零图。
(三)、实验题目
给定系统
,编程并绘出系统的单位阶跃响应y(n),频率响应
。
给出实验报告。
(四)、实验过程
1、求系统的阶跃响应的程序代码:
clearall;
x=ones(100);%x(n)=1,n=1~100;
t=1:
100;%t用于后面的绘图;
b=[00-0.2];%形成向量b;
a=[100.8];%形成向量a;
y=filter(b,a,x);
%求所给系统的输出,本例实际上是求所给系统的阶跃响应;
plot(t,x,'r.',t,y,'k-');gridon;%将x(n)(绿色)y(n)(黑色)画在同一个图上;
ylabel('x(n)andy(n)')
xlabel('n')
结果分析:
单位阶跃响应是指系统在单位阶跃信号的作用下所产生的响应。
其单位阶跃序列
,类似于连续时间信号与系统中的单位跃函数u(t),所以x(n)的取值
时为1。
和
间的关系为
,而
令
,代入上式可得
,u(n)即为单位阶跃响应,所以y(n)的值有逐渐趋于稳定的趋势,当n越大时,其值也为1。
2、求系统的单位抽样响应的程序代码;
clear;
b=[00-0.2];
a=[100.8];
[h,t]=impz(b,a,50);
stem(t,h,'.');
结果分析:
单位抽样序列类似于连续时间信号与系统中的单位冲击函数
,当t=0点脉宽趋于零,幅值趋于无限大,面积为1的信号。
系统
,其初始幅值为-0.2,当n趋于无穷大时,其值趋于0。
3、求频率响应
的程序代码:
clear;
b=[00-0.2];
a=[100.8];
[H,w]=freqz(b,a,256,1);
Hr=abs(H);
Hphase=angle(H);%相位角;
Hphase=unwrap(Hphase);%解卷绕
subplot(211)
plot(w,Hr);gridon;
ylabel('AmplitudeFreq.Res.')
subplot(212)
plot(w,Hphase);gridon;
ylabel('PhaseFreq.Res.')
系统的频率响应是h(n)的傅里叶变换,其表达式为
,也是系统函数H(z)在单位圆上的值
。
由于题目中未给出抽样频率Fs的值,作为缺省时处理,其频率范围是从0~Fs/2。
w是返回频率轴坐标向量。
上图的第一个图表示(w,Hr)的关系,第二个图表示(w,Hphase)的关系。
(五)实验体会
通过此次实验,知道了在离散时间系统中Z变换的重要作用,能够灵活运用MATLAB中的调用函数求系统的单位阶跃响应,单位抽样响应和频率响应。
对z变换有了更深的理解和掌握,希望在以后的学习中,能够有更大的进步和提高,取得更好的成绩。
实验二、快速傅里叶变换
(一)、实验目的
1、通过本实验进一步加深对快速傅里叶变换的理解。
2、会熟练运用fft,ifft,czt实现线性调频z变换。
(二)、实验内容
1、快速傅里叶变换(fft)
调用格式为X=fft(x)或X=fft(x,N)
对前者,若x的长度是2的整次幂,则按该长度实现x的快速变换,否则,实现的是非2的整次幂的变换;对后者,N应为2的整次幂,若x得长度小于N,则补零,若超过N,则舍弃N以后的数据。
ifft的调用格式与之相同。
2、线性调频Z变换(CZT)
CZT可用来计算单位圆上任一段曲线上的Z变换,做DFT时输入的点数N和输出的点数可以不相等,从而达到频域“细化”的目的。
CZT在单位圆上的Z变换就是傅里叶变换。
其调用格式为:
X=czt(x,M,W,A)
式中x是待变换的时域信号x(n),其长度设为N,M是变换的长度,W确定变换的步长,A确定变换的起点。
若M=N,A=1,则CZT变成DFT。
(三)、实验题目
设x(n)由三个实正弦组成,频率分别是8Hz,9Hz,10Hz,抽样频率为60Hz,时域取256点,作CZT变换、IFFT变换和FFT变换,观察波形,更改参数,得出不同参数下的CZT变换波形。
给出实验报告。
(四)、实验过程
1、作CZT变换的程序代码:
clearall;
%构造三个不同频率的正弦信号的叠加作为试验信号
N=256;
f1=8;f2=9;f3=10;fs=60;
stepf=fs/N;
n=0:
N-1;
t=2*pi*n/fs;
n1=0:
stepf:
fs/2-stepf;
x=sin(f1*t)+sin(f2*t)+sin(f3*t);
M=N;
W=exp(-j*2*pi/M);
%A=1时的czt变换
A=1;
Y1=czt(x,M,W,A);
subplot(311)
plot(n1,abs(Y1(1:
N/2)));gridon;
%DTFT
Y2=abs(fft(x));
subplot(312)
plot(n1,abs(Y2(1:
N/2)));gridon;
%详细构造A后的czt
M=60;
f0=7.2;
DELf=0.05;
A=exp(j*2*pi*f0/fs);
W=exp(-j*2*pi*DELf/fs);
Y3=czt(x,M,W,A);
n2=f0:
DELf:
f0+(M-1)*DELf;
subplot(313);plot(n2,abs(Y3));gridon;
结果分析:
第一个图形表示A=1时的线性调频Z变换(czt),第二个图形表示离散时间傅里叶变换(DTFT),第三个图形表示详细构造A后的线性调频Z变换(czt),即改变M和N的值和其他相应的参数(如
点间的角度间隔
,频率分辨率,起始点
等),所得到的czt变换的图形,由于变换长度M的值减小,因此所得到的图形较第一个图形离散。
CZT是用来计算单位圆上任一段曲线上的Z变换,当M=N且变换起点A=1,即起始抽样点
z0的矢量半径长度为1时,CZT在单位圆上的Z变换就是傅里叶变换,也就是说,抽样序列在单位圆上的Z变换,就等于其理想抽样信号的傅里叶变换。
因此第一个图形和第二个图形相同。
作IFFT变换和FFT变换的程序代码:
clearall;
%产生三个正弦;
N=256;%2的8次幂,进行8级蝶形运算;
f1=8;f2=9;f3=10;fs=60;
n=0:
N-1;
t=2*pi*n/fs;
x=sin(f1*t)+sin(f2*t)+sin(f3*t);
%应用FFT求频谱;
subplot(3,1,1);
plot(x(1:
N/4));%作图向量x的第一到第N/4个值;
xlabel('x=N/4');
ylabel('x(1:
N/4)');
title('X');
f=-0.5:
1/N:
0.5-1/N;
X=fft(x);%快速傅里叶变换;
y=ifft(X);%快速傅里叶逆变化
subplot(3,1,2);
plot(f,fftshift(abs(X)));
title('FFT');
subplot(3,1,3);
plot(real(y(1:
N/4)));%作图向量y的第一到第N/4个值的实部;
title('IFFT');
(五)实验体会
通过此次实验,使我对快速傅里叶变换有了更进一步的理解和加深,快速傅里叶变换只是离散傅里叶变换(DFT)的一种快速算法,FFT算法的基本思路是利用
的对称性、周期性和可约性,将长序列的DFT分解为短序列的DFT,减小运算量。
对FFT算法,若x的长度是2的整次幂,则按该长度实现x的快速变换,否则,实现的是非2的整次幂的变换;对后者,N应为2的整次幂,若x得长度小于N,则补零,若超过N,则舍弃N以后的数据。
FFT算法分为按时间抽选法(DIT)和按频率抽选法(DIF)。
且能够利用MATLAB编程,运用fft,ifft,czt实现线性调频z变换,从而得到fft,ifft,czt的图形,及其改变参数后的图形。
收获不少,取得了一定的进步,希望在以后的学习中能够学到更多,更上一层楼。
实验三、无限冲击响应数字滤波器设计
(一)实验目的
1、要求掌握IIR数字滤波器的设计原理、设计方法和设计步骤;
2、能根据给定的滤波器指标进行滤波器设计;
3、掌握数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理和步骤;
(二)、实验内容
IIR数字滤波器的设计有多种方法,如频率变换法、数字域直接设计以及计算辅助设计等。
下面只介绍频率变换设计法。
首先考虑由模拟低通滤波器到数字低通滤波器的转换,其基本的设计过程如下:
1、将数字滤波器的技术指标转换为模拟滤波器的技术指标;
2、设计模拟滤波器G(S);
3、将G(S)转换成数字滤波器H(Z)
在低通滤波器的设计基础上,可以得到数字高通、带通、带阻滤波器的设计流程,以高通数字滤波器的设计为例:
1、将数字高通滤波器
的技术指标
,通过
转变为模拟高通
的技术指标
,作归一化处理后得
;
2、利用频率变换关系
,将模拟高通
的技术指标转换为归一化的低通滤波器G(p)的技术指标,并有p=
;
3、设计模拟低通滤波器G(p);
4、将G(p)转换为模拟高通滤波器的转移函数
p=
;
5、将
转换成数字高通滤波器的转移函数
,s=(z-1)/(z+1)。
以上5个步骤同样适用于数字带通、数字带阻滤波器的设计。
只是在步骤2,3,4中频率转