数字信号处理上机实习报告.docx
- 文档编号:9661252
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:35
- 大小:721.48KB
数字信号处理上机实习报告.docx
《数字信号处理上机实习报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理上机实习报告.docx(35页珍藏版)》请在冰点文库上搜索。
数字信号处理上机实习报告
专题一离散卷积的计算
一、实验内容
设线性时不变(LTI)系统的冲激响应为h(n),输入序列为x(n)
1、h(n)=(0.8)n,0≤n≤4;x(n)=u(n)-u(n-4)
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
2、h(n)=(0.8)nu(n),x(n)=u(n)-u(n-4)
3、h(n)=(0.8)nu(n),x(n)=u(n)
求以上三种情况下系统的输出y(n)。
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
二、实验目的
1、掌握离散卷积计算机实现。
2、进一步对离散信号卷积算法的理解。
三、原理及算法概要
算法:
把冲激响应h(n)与输入序列x(n)分别输入到程序中,然后调用离散卷积函数y=conv(x.,h)即可得到所要求的结果。
原理:
离散卷积定义为
当序列为有限长时,则
四.理论计算
1、h(n)=(0.8)n,0≤n≤4;x(n)=u(n)-u(n-4)
(a)当n<0时,y(n)=0
(b)当
时,
(0.8)n
(c)当
时,
(0.8)n
(d)当n>7时,y(n)=0
理论结果与上图实验结果图中所示吻合。
2、h(n)=(0.8)nu(n),x(n)=u(n)-u(n-4)
(a)当n<0时,y(n)=0
(b)当
时,
(0.8)n
(c)当
时,
(0.8)n
(d)当
时,
(0.8)n
(e)当n>23时,y(n)=0
在卷积序列中,因为n趋于无穷,在实验中无法实现,而0.8的20次幂基本接近于0,所以这里只取到n为20就可以了。
由以上可以看出,理论结果与上图实验结果图中所示吻合。
3、h(n)=(0.8)nu(n),x(n)=u(n)
(a)当n<0时,y(n)=0
(b)当
时,
(0.8)n
(c)当
时,
(0.8)n
(d)当n>140时,y(n)=0
在卷积序列中,因为n趋于无穷,在实验中无法实现,而0.8的70次幂的叠加基本接近于最大值,所以这里只取到n为70就可以了。
由以上可以看出,理论结果与上图实验结果图中所示吻合。
五.程序
x1=[1111];nx1=0:
3;
h1=[10.80.640.8^30.8^4];nh1=0:
4;
y1=conv(x1,h1);
subplot(3,3,1);stem(nx1,x1);title('序列x1');
xlabel('n');ylabel('x1(n)');
subplot(3,3,2);stem(nh1,h1);title('序列h1');
xlabel('n');ylabel('h1(n)');
subplot(3,3,3);stem(y1);title('序列y1');
xlabel('n');ylabel('y1(n)');
x2=[1111];nx2=0:
3;
nh2=0:
1:
20;
h2=(0.8).^nh2;
y2=conv(x2,h2);
subplot(3,3,4);stem(x2);title('序列x2');
xlabel('n');ylabel('x2(n)');
subplot(3,3,5);stem(h2);title('序列h2');
xlabel('n');ylabel('h2(n)');
subplot(3,3,6);stem(y2);title('序列y2');
xlabel('n');ylabel('y2(n)')
nx3=0:
1:
20;
x3=1.^nx3;
nh3=0:
1:
20;
h3=(0.8).^nh3;
y3=conv(x3,h3);
subplot(3,3,7);stem(nx3,x3);title('序列x3');
xlabel('n');ylabel('x3(n)');
subplot(3,3,8);stem(nh3,h3);title('序列h3');
xlabel('n');ylabel('h3(n)');
subplot(3,3,9);stem(y3);title('序列y3');
xlabel('n');ylabel('y3(n)'
六.程序运行结果
七.结果分析
有限长序列的离散卷积计算结果与理论值一致,而存在无限长序列做卷积时,由于在程序处理时是用比较长有限长序列代替的,所以与理论值基本相同。
八.专题实习心得
该专题主要进行的是有matlab实现离散卷积的计算,分为三个类型:
冲激响应h(n)与输入序列x(n)都为有限长,一个序列为有限长一个序列为无限长和两个序列均为无限长。
这部分实习内容不难,是原来做过的,主要是为了拾拣起原来所学的知识。
第一种类型是最简单,也是最基本的,直接调用函数y=conv(x.,h)即可。
在第二种和第三种类型的计算中遇到了一些困难,在输入序列时,由于存在无限长的序列,不知道该怎么输入,查过了相关的题目才弄明白。
通过本专题的实习,让我对数字信号处理中的一些基础知识有了一些回顾,对原来所学过的知识也熟悉了一些。
专题二离散傅里叶变换及其应用
一、实验内容
设有离散序列x(n)=cos(0.48πn)+cos(0.52πn)
分析下列三种情况下的幅频特性。
(1)采集数据长度N=16,分析16点的频谱,并画出幅频特性。
(2)采集数据长度N=16,并补零到64点,分析其频谱,并画出幅频特性。
(3)采集数据长度N=64,分析46点的频谱,并画出幅频特性。
观察三幅不同的幅频特性图,分析和比较它们的特点及形成原因。
2、实现序列的内插和抽取所对应的离散傅里叶变换。
(选做)
求
和
对应的128点傅里叶变换,比较三个结果所得到的幅频特性,分析其差别产生的原因。
二、实验目的
1、了解DFT及FFT的性质和特点
2、利用FFT算法计算信号的频谱。
三、关键算法
算法1:
读入离散序列x(n)=cos(0.48πn)+cos(0.52πn),采集长度为N=16的数据,调用matlab中的函数fft(x,16)与fft(x,64)对其作离散傅里叶变换得到16点、64点的频谱。
采集数据长度为N=64,,调用matlab中的函数fft(x,46)对其作离散傅里叶变换得到46点的频谱。
算法2:
读入离散序列信号
,每隔N=4采集一个数值,得到新的抽取离散序列
,每隔K=0.25采集一个数值得到新的内插离散序列
。
分别对其做离散傅氏变换,得到对应的频谱图。
原理概要:
当抽样数N=2M时,以下为算法蝶形图。
一般规律如下:
1、当N=2M时,则要进行M次分解,即进行M级蝶形单元的计算
2、按自然顺序输入,输出是码位倒置。
3、每一级包含N/2个基本蝶形运算
4、第L级有2L-1个蝶群,蝶群间隔为N/2L-1
如果是Matlab实现的话,可用以下两种方法计算信号频谱
1、调用库函数为:
fft(),直接计算X(k)
2、进行矩阵运算
四.程序
程序1:
n=0:
1:
15;
x1=cos(0.48*3.14*n)+cos(0.52*3.14*n);
g1=abs(fft(x1,16));
subplot(3,2,1);stem(x1);title('x1');
subplot(3,2,2);stem(g1);title('g1');
n2=0:
1:
15;
x2=cos(0.48*3.14*n2)+cos(0.52*3.14*n2);
x2=[x2zeros(1,48)];
g2=abs(fft(x2,64));
subplot(3,2,3);stem(x2);title('x2');
subplot(3,2,4);stem(g2);title('g2');
n3=0:
1:
64;
x3=cos(0.48*3.14*n3)+cos(0.52*3.14*n3);
g3=abs(fft(x3,46));
subplot(3,2,5);stem(x3);title('x3');
subplot(3,2,6);stem(g3);title('g3');
程序2:
x=[];
forn=0:
127
x=[x(cos(1/36*pi*n)+cos(1.5/36*pi*n))]
end
X=abs(fft(x));
subplot(3,2,1);stem(x);title('序列x');
xlabel('n');ylabel('x(n)');
subplot(3,2,2);stem(X);title('序列X');
xlabel('\omega');ylabel('X');
x1=[];
forn=0:
4:
508
x1=[x1(cos(1/36*pi*n)+cos(1.5/36*pi*n))]
end
X1=abs(fft(x1));
subplot(3,2,3);stem(x1);title('序列x1');
xlabel('n');ylabel('x1(n)');
subplot(3,2,4);stem(X1);title('序列X1');
xlabel('\omega');ylabel('X1');
x2=[];
forn=0:
0.25:
31.75
x2=[x2(cos(1/36*pi*n)+cos(1.5/36*pi*n))]
end
X2=abs(fft(x2));
subplot(3,2,5);stem(x2);title('序列x2');
xlabel('n');ylabel('x2(n)');
subplot(3,2,6);stem(X2);title('序列X2');
xlabel('\omega');ylabel('X2');
五.程序运行结果
结果1:
结果2:
六.结果分析
N点DFT的频谱分辨率是2π/N。
一节指出可以通过补零观察到更多的频点,但是这并不意味着补零能够提高真正的频谱分辨率。
这是因为x[n]实际上是x(t)采样的主值序列,而将x[n]补零得到的x'[n]周期延拓之后与原来的序列并不相同,也不是x(t)的采样。
因此是不同离散信号的频谱。
对于补零至M点的x'的DFT,只能说它的分辨率2π/M仅具有计算上的意义,并不是真正的、物理意义上的频谱。
频谱分辨率的提高只能通过提高采样频率实现。
七.专题实习心得
离散傅里叶变换是一种快速算法,由于有限长序列在其频域也可离散化为有限长序列,因此离散傅里叶变换在数字信号处理中是非常有用的。
DFT是重要的变换,在分析有限长序列的有用工具、信号处理的理论上有重要意义、运算方法上起核心作用,谱分析、卷积、相关都可以通DFT在计算机上实现。
DFT解决了两个问题:
一是离散与量化,二是快速运算。
通过编程实践体会到了时域、频域信号的对应关系,也对采样频率的含义有了深刻的认识,同时也加深了对采样信号频谱周期性的理解。
八.思考题
1、直接计算DFT与用FFT计算,理论上的速度差别应是多少?
整个DFT运算总共需要4N2次实数乘法和2N(2N-1)次实数加法。
整个FFT运算总共需要(N2/2)+(N/2)=N(N+1)/2≈N2/2次复数乘法和N(N/2-1)+N=N2/2次复数加法。
由此可见,理论上用FFT计算运算速度是DFT的二倍。
2、什么是高密度频谱及高分辨率频谱?
实验1中至少应采集几个样本才能区分两个频率分量?
DFT的频谱分辨率一定时,在尾部补零可以得到DFT的高密度频谱,可以细化当前分辨率下的频谱,但不能改变DFT的分辨率。
高分辨率是指对信号中两个靠得较近的频谱分量的识别能力比较高,在采样频率不变时,采样点数N越大,频谱分辨率越高。
在实验1中至少要采集8个点才能区分两个频率分量。
专题三IIR滤波器的设计
一、实验内容
1、设计一个Butterworth数字低通滤波器,设计指标如下:
通带截止频率:
0.2π,幅度衰减不大于1分贝
阻带截止频率:
0.3π,幅度衰减大于15分贝
2、让不同频率的正弦波通过滤波器,验证滤波器性能。
3、分析不同滤波器的特点和结果。
4、编程设计实现IIR滤波器。
二、实验目的
掌握不同IIR滤波器的性质、特点。
通过实验学习如何设计各种常用的IIR滤波器,以便在实际工作中能根据具体情况使用IIR滤波器。
三、原理及算法概要
算法:
输入通带截止频率Wp,阻带截止频率Ws,通带衰减Rp,阻带衰减Rs,通过这些数值调用[NWn]=buttord(Wp,Ws,Rp,Rs)函数计算巴特沃斯数字滤波器的阶数N和截止频率wn,再根据阶数N通过函数[b,a]=butter(N,Wn),即可得到所要的巴特沃斯滤波器。
设计一个正弦波信号,再调用函数A=filter(b,a,I)让正弦波信号通过滤波器,得到滤波信号。
原理概要:
1、滤波器类型
Butterworth滤波器
Butterworth滤波器的特点是在通带内的频率特性是平坦的,并且随着频率的增加而衰减。
Butterworth滤波器又是最简单的滤波器。
N阶低通Butterworth滤波器的幅度平方函数为:
Chebyshev滤波器
Chebyshev滤波器的在通带内的响应是等纹波的,而在阻带内是单调下降的,或在通带内是单调下降的,在阻带内是等纹波的特性
其幅度平方函数为
其中VN是Chebyshev多项式。
椭圆滤波器
椭圆滤波器在通带和阻带内都是等纹波振荡。
椭圆滤波器的特性函数为:
其中UN是N阶雅可比函数。
模拟滤波器设计完成后,就可以进行典型滤波器设计的第二个步骤,通过冲激响应不变法和双线性变换转变为相应的数字滤波器。
2、变换方法
(1)冲激响应不变法
冲激响应不变法的基本原理是从滤波器的冲激响应出发,对模拟滤波器冲激响应h(t)进行取样,所得到的离散序列h(nT)作为数字滤波器的单位取样响应。
H(z)是由H(s)通过下式的对应关系得到。
(2)双线性变换是在所得到满足性能指标要求的模拟滤波器的基础上,通过变换
从而得到相应的数字滤波器。
四.程序
Wp=0.2;
Ws=0.3;
Rp=1;
Rs=15;
[NWn]=buttord(Wp,Ws,Rp,Rs)%用于计算巴特沃斯数字滤波器的阶数N和截止频率wn
[b,a]=butter(N,Wn);%计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a,设计所需的低通滤波器
[h,omega]=freqz(b,a,512);%返回量h包含了离散系统频响,调用中若N默认,默认值为512。
plot(omega/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');ylabel('Gain,dB');
title('IIRButterworthLowpassFilter');
Wp=0.2;
Ws=0.3;
Rp=1;
Rs=15;
[N1,Wn1]=buttord(Wp,Ws,Rp,Rs);%用于确定阶次
[b,a]=butter(N,Wn);%用于直接设计巴特沃兹数字滤波器,即为IIR滤波器
%freqz(b,a);
t=1:
300
I=sin(0.1*pi*t)+sin(0.4*pi*t);%设计正弦波
plot(I);
figure;
A=filter(b,a,I);%正弦波通过滤波器
plot(A);
五.程序运行结果
N=
6
Wn=
0.2329
N1=
6
Wn1=
0.2329
六.结果分析
Butterworth滤波器在通带内的频率特性是平坦的,并且随着频率的增加而衰减。
正弦信号在经过IIR滤波器滤波后,高频信号被滤除,低频信号被保留了下来。
七.专题实习心得
通过本专题的学习,熟悉和巩固了Butterworth数字低通滤波器的设计方法和原理,实现滤波器设计的有关经典算法,更重要的是熟练掌握使用MATLAB语言设计各种要求的数字滤波器。
这一部分的内容相对来说是有些难度了,做起来花费的精力也多了一些,不过对数字信号处理内容的掌握上又加深了一层。
八.思考题
1、比较双线性变换与冲激响应不变法的优缺点。
冲激响应不变法的特点:
模仿模拟滤波器的单位抽样相应,时域模仿性好产生频率响应的混叠失真。
保持系统的相位特性换不改变系统的因果性和稳定性;
因为存在频率响应的混叠效应,只适用于限带的模拟滤波器,高通和带阻滤波器不宜采用冲激响应不变法,冲激响应不变法是一种时域模仿,缺点是产生频率响应的混叠失真。
冲激响应不变法产生混叠失真的原因是映射是多对一的映射。
双线性变换的特点是一对一的映射,消除了多值变换性,也就消除了频谱混叠。
1、和频率变换相比,数字变换有什么优点?
数字滤波器的幅频响应相对于模拟滤波器的幅频响应有畸变
3、实验中求取相应模拟滤波器原形时,为什么要对模拟频率Ωc进行归一化?
用归一化巴特沃思低通滤波器为原型滤波器,一旦归一化低通滤波器的系统函数确定后,其它巴特沃思低通滤波、高通、带通、带阻滤波器的传递函数都可以通过变换法从归一化低通原型的传递函数Ha(S)得到。
归一化原型滤波器是指截止频率Ωc已经归一化成Ωc’=1的低通滤波器。
对于截止频率为某个Ωc的低通滤波器,则令S/Ωc代替归一化原型滤波器系统函数中的S∧,即S∧S/Ωc对于其他高通、带通、带阻滤波器,可应用后面讨论到的频带变换法,由其变换得出。
专题四用窗函数设计FIR滤波器
一、实验内容
选取合适窗函数设计一个线性相位FIR低通滤波器,使它满足如下性能指标:
通带截止频率:
ωp=0.5π,通带截止频率处的衰减不大于3分贝;
阻带截止频率:
ωs=0.66π,阻带衰减不小于40分贝。
二、实验目的
1、掌握用窗函数法设计FIR滤波器的原理和方法。
2、熟悉线性相位滤波器特性。
3、了解各种窗函数对滤波器特性的影响。
三、原理及算法概要
算法:
通过其通带截止频率ωp与阻带截止频率ωs算出其过渡带的宽度与滤波器的长度,从而得到理想滤波器的截止频率,根据所要求的理想滤波器,得到hd(n)。
由于其通带截止频率处的衰减不大于3分贝与阻带衰减不小于40分贝,我选择最接近的汉宁窗,最后调用函数h=hd.*win及freqz(h,1,512)得到实际汉宁窗的响应和实际滤波器的幅度响应。
原理概要:
1、利用窗函数法设计FIR滤波器
FIR滤波器的最大特点是其相位特性可以设计为严格的线性,而其幅值可以任意设置,这样输出波形就不会相位失真。
理想低通滤波器的单位取样响应hd(n)是无限长的,所以要用一个有限长的因果序列
h(n)进行逼近,最有效的方法是截断hd(n),即用有限长的窗函数w(n)来截取
hd(n),表示为h(n)=hd(n)w(n)
为获得线性相位的FIR滤波器,h(n)必须满足中心对称条件,序列h(n)应有一定的延迟α,且α=(N-1)/2
频率响应逼近hd(ejw)的FIR滤波器,最简单的窗函数为矩形窗
1n<(N-1)/2
W(n)=
0n>(N-1)/2
加窗后的频谱
加窗后使实际频响偏离理想频响,影响主要有两个方面:
(1)通带和阻带之间存在过渡带,过渡带宽度取决于窗函数频响的主瓣宽度。
(2)通带和阻带区间有纹波,这是由窗函数的旁瓣引起的,旁瓣越多,纹波越多。
增加窗函数的宽度N,其主瓣宽度减小,但不改变旁瓣的相对值。
为了改善滤波器的性能,要求窗函数的主瓣宽度尽可能窄,以获得较窄的过渡带;
旁瓣衰减尽可能大,数量尽可能大,从而改善纹波状况,使实际频响H(ejω)更好地逼近理想频响Hd(ejω)
除了矩形窗外,一般还可以采用以下几种窗函数
Battlet窗:
汉宁窗:
海明窗
布来克曼窗
其中:
WR是矩形窗的频谱
四.程序
wp=0.5*pi;
ws=0.66*pi;
wdelta=ws-wp;%过渡带宽度
N=ceil(8*pi/wdelta)%滤波器长度
ifrem(N,2)==0
N=N+1;
end
Nw=N;
wc=(wp+ws)/2;%理想低通滤波器的截止频率
n=0:
N-1;
alpha=(N-1)/2;
m=n-alpha+0.00001;
hd=sin(wc*m)./(pi*m);%一个响应
win=(hanning(Nw))';%汉宁窗
h=hd.*win;%实际汉宁窗的响应
freqz(h,1,512);%实际滤波器的幅度响应
五.程序运行结果
N=
50
六.结果分析
上图中第一个图为FIR滤波器的相频特性,第二个图为幅频特性;根据滤波器特性:
通带截止频率处的衰减不大于3分贝;阻带衰减不小于40分贝。
选用汉宁窗。
FIR滤波器的最大特点是其相位特性可以设计为严格的线性,而其幅值可以任意设置,这样输出波形就不会相位失真。
理想低通滤波器的单位取样响应hd(n)是无限长的,所以要用一个有限长的因果序列
h(n)进行逼近,最有效的方法是截断hd(n),即用有限长的窗函数w(n)来截取
hd(n),表示为h(n)=hd(n)w(n)
为获得线性相位的FIR滤波器,h(n)必须满足中心对称条件,序列h(n)应有一定的延迟α,且α=(N-1)/2
频率响应逼近hd(ejw)的FIR滤波器,最简单的窗函数为矩形窗
1n<(N-1)/2
W(n)=
0n>(N-1)/2
加窗后的频谱
加窗后使实际频响偏离理想频响,影响主要有两个方面:
(3)通带和阻带之间存在过渡带,过渡带宽度取决于窗函数频响的主瓣宽度。
(4)通带和阻带区间有纹波,这是由窗函数的旁瓣引起的,旁瓣越多,纹波越多。
增加窗函数的宽度N,其主瓣宽度减小,但不改变旁瓣的相对值。
为了改善滤波器的性能,要求窗函数的主瓣宽度尽可能窄,以获得较窄的过渡带;
旁瓣衰减尽可能大,数量尽可能大,从而改善纹波状况,使实际频响H(ejω)更好地逼近理想频响Hd(ejω)
七.专题实习心得
FIR有限冲击响应数字滤波器由于设计灵活,在滤波效果和响应时间之间能较好的折衷,因此在数字信号处理领域应用广泛。
用窗函数法设计FIR数字滤波器在截断点依旧取模拟样本冲激响应的全值更利于理解和仿真。
但是,窗函数法设计FIR数字滤波器的频率特性与模拟样本频率特性不完全一样,且具有线性相移的特点。
窗函数法设计FIR数字滤波器是傅立叶变换的典型运用。
通过学习有益于加深对数字滤波器的理解,并提高使用傅立叶变换分析解决实际问题的能力。
八:
思考题
1、在这个实验中,你选择哪一种窗函数?
试说明原因。
选用汉宁窗。
根据所给定滤波器特性:
通带截止频率处的衰减不大于3分贝;阻带衰减不小于40分贝。
参照书本上的各滤波器的特性。
2、用窗函数法设计FIR滤波器时,滤波器的过渡带宽度和阻带衰减和哪些因素有关?
窗函数的主瓣宽度决定滤波器过渡带宽度,旁瓣幅值决定阻带衰减。
选择窗函数应使其频谱满足:
主瓣宽度尽可能的窄,以使过渡带尽可能陡;最大旁瓣相对于主瓣尽可能小,使能量尽可能集中在主瓣
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 上机 实习 报告