数字信号处理报告

更新时间:2024-03-19 05:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字信号处理实验报告

实验目的

一、加深对离散傅立叶变换(DFT)和快速傅立叶变换(FFT)的理解,掌握通过两种变换求卷积的编程方法; 二、掌握设计巴特沃斯低通双线性IIR数字滤波器的原理和方法,以及从低通转换到高通的技术; 三、掌握用窗函数设计FIR数字滤波器的原理及方法,了解各种不同窗函数对滤波器性能的影响; 四、提高综合应用和分析的能力,Matlab编程能力等。

实验内容

实验一

一、实验名称 快速傅立叶变换 二、实验要求

编程利用FFT进行卷积计算,通过实验比较出快速卷积优越性。 三、实验原理

利用FFT进行离散卷积的步骤归纳如下: (1)、设x(n)的列长为N1,h(n)的列长为N2,要求

y(n)=x(n)*h(n)=

?k?0N?1x(k)h((n-k))NRN(n)=

?x(k)h(n?k)

k?0N?1[1]

(2)、为使两有限长序列的线性卷积可用其圆周卷积来代替而不产生混淆,必须选择N≥N1+ N2-1。为使用基-2FFT来完成卷积计算,故要求N=2(v是整数)。用补零的办法使x(n),h(n)具有列长N,即

v

n?0,1,2,??N1-1?x(n)x(n)= ?

0 n? N1,N1?1,??N-1?h(n)= ?

(3)为用圆周卷积定理计算线性卷积,先用FFT计算x(n) ,h(n) 的N点离散傅立叶变换

n?0,1,2,??N2-1?h(n)

n? N2,N2?1,??N-1?0 ? X(k) [2] x(n)??? h(n) (4)组成卷积

Y(k)=X(k)H(k) [4]

(5)利用IFFT计算Y(k)的离散傅立叶逆变换得到线性卷积y(n)。由于 y(n)=

FFT????H(k)

FFT [3]

?[(1/N)Y(k)]k?0N?1WN-nk=[

?[(1/N)Y*(k)]W

k?0N?1N

nk

]* [5]

可见,y(n)可由求(1/N)Y*(k)的FFT再取共轭得到。

四、实验题目

(1) 两个正弦序列的卷积(均为两个周期,256点) 输入序列:

卷积输出:

(2)正弦序列与三角序列的卷积(正弦序列为两个周期,256点;三角序列为一个周期,256个点) 输入序列:

卷积输出:

(3)两个矩形序列的卷积(均为两个周期,256个点,占空比0.5) 输入序列:

卷积输出:

(4)单位冲击与正弦波(单位冲击序列为256个点,正弦序列为1.7个周期,256个点)

输入序列:卷积输出:

任何序列与单位冲击序列的卷积为原序列,所以结果正确。

(5)正弦序列与矩形序列的卷积(两序列均为256个点,正弦序列为两个周期,矩形序列为两个周期,占空比为0.2) 输入序列:

卷积输出:

主要代码(只选一个参考,下同):

%(1)的代码

k=1:256;

s1=sin(k/64*pi); s2=s1;

xk=fft(s1,2*length(k)-1); yk=fft(s2,2*length(k)-1); rm=ifft(xk.*yk); m=(-255):(255); stem(m,rm)

xlabel('m'); ylabel('·ù?è');

实验二

一、实验名称 IIR数字滤波器 二、实验要求:

设计巴特沃斯低通双线性IIR数字滤波器,N=3,ωc=0.2π。 输入信号为以下三种序列(选择点数为128或256): 1. 单位取样

2. 三角序列(两个周期) 3. 矩形序列(占空比0.1或0.5)

给出输出的时域及频域效果,并进行简单的分析。

三、实验原理:

滤波器的作用是滤除信号中某一部分的频率分量。信号经过滤波器处理,就相当与信号频谱与滤波器的频率响应相乘的结果。在时域里来看,这就是信号与滤波器的冲激响应相卷积。可以说滤波器就是一个卷积器。 IIR滤波器的系统函数

H(z)??bzrr?0Nk?1M?r1??akz?kMy(n)?r?0brx(n?r)??aky(n?k)k?1N 对应的差分方程为

模拟滤波器系统函数Ha(s)的一般表示式为

Ha(s)??d?Ck?0?rr?0NNrsrskkd0?d1s?d2s2???dNsN?C0?C1s?C2s2???CNsN 数字滤波器系统函数H(z)的普遍表示式为

H(z)??bzrN?ak?0r?0Nkz?kB0?B1z?1?B2z?2???BNz?N?1?A1z?1?A2z?2???ANz?N 三阶次巴特沃斯滤波器的系统函数为

323?c/(s?2?cs?2?cs??c)32[?c?2?tan()]T2

由Ha(s)的系数表示经双极性变换后的Y(z)的表达式(三阶)ωc=0.2π Y(Z)=0.018099*X(Z)*Z+0.054297*X(Z)*Z+0.054297*X(Z)*Z+0.018099*X(Z)

+0.27806*Y(Z)*Z-1.18289*Y(Z)*Z+1.76004*Y(Z)*Z

y(n)=0.018099*x(n-3)+0.054297*x(n-2)+0.054297*x(n-1)+0.018099*x(n)

+0.27806*y(n-3)-1.18289*y(n-2)+1.76004*y(n-1)

由低通数字滤波器原形变换为高通数字滤波器

-3

-2

-1

-3

-2

-1

??1?az??1?a??1?1???ccos(c)2a?????ccos(c)2由截止频率ωc=0.2π三阶低通变换为截止频率ωc=0.6π三阶高通,经计算,其表达式为: y(n)=-0.098531x(n-3)+0.295594x(n-2)-0.295594x(n-1)+0.098531x(n)

-0.056297y(n-3)-0.42179y(n-2)-0.57724y(n-1)

计算过程:由给定的条件可计算出巴特沃斯系统函数的系数,相应可知摸拟系统函数的系数,经双极性变换法求出数字滤波器的系数,最后由差分方程实现低通滤波效果。经相应的Z平面映射,由映射公式变换得出数字高通滤波器系统函数的系数,从而由差分方程实现高通效果。

四、实验结果及分析: A.低通滤波:

(1).单位取样(256个点) 输入序列:

低通滤波后的傅立叶变换和输出序列:

The signal of y 10.80.60.40.200100200300-0.501002003000.51

The result of Filter 021.510.501.510.501234001234

(2).三角序列(256个点,两个周期) 输入序列:

低通滤波后的频谱和输出序列:

The signal of y 10.50-0.5-110.50-0.5-1 The result of Filter 010020030001002003001501501001005050001234001234

(3).矩形序列(两个周期,256个点,占空比0.5) 输入序列:

低通滤波后的频谱和输出序列:

The signal of y 10.50-0.5-1210-1-2 The result of Filter 010020030001002003002001501005002001501005000123401234

主要代码:

%y=[ones(1,64) -ones(1,64) ones(1,64) -ones(1,64)]; %y=[1 zeros(1,255)];

y=[1:32 31:-1:-32 -31:32 31:-1:-32 -31:0]./32; k=2*length(y);

[B,A]=butter(3,0.2*pi);

[num1,den1]=impinvar(B,A);

[h1,w]=freqz(num1,den1); [HH,TT]=impz(B,A);

YY1=conv(HH,y); %YY=filter(B,A,y); f=fft(y,k);

FF1=fft(YY1,k);

subplot(2,2,2);

stem(YY1(1:length(y)),'.');title(' The result of Filter '); subplot(2,2,1);

stem(y,'.');title(' The signal of y '); subplot(2,2,3); plot(w,abs(f)); subplot(2,2,4); plot(w,abs(FF1));

B.高通滤波:

(1)矩形序列(256个点,两个周期,占空比0.5) 输入序列:

高通滤波输出的频谱:

高通滤波输出:

The signal of y 10.50-0.5-1010020030010.50-0.5-10x 10-20-22x 10 The result of Filter 1002003002001501005000123410.5001234

(2)矩形序列(256个点,两个周期,占空比0.1) 输入序列:

高通滤波输出的频谱和高通滤波输出:

The signal of y 10.50-0.5-1010020030010.50-0.5-1-22x 10 The result of Filter 0x 10-201002003003002001001.510.5001234001234

主要代码:

y=[ones(1,13) -ones(1,115) ones(1,13) -ones(1,115)]; k=2*length(y);

[B,A]=butter(3,0.2*pi,'high'); [num1,den1]=impinvar(B,A);

[h1,w]=freqz(num1,den1); [HH,TT]=impz(B,A,'high');

YY1=conv(HH,y); %YY=filter(B,A,y); f=fft(y,k);

FF1=fft(YY1,k);

subplot(2,2,2);

stem(YY1(1:length(y)),'.');title(' The result of Filter '); subplot(2,2,1);

stem(y,'.');title(' The signal of y '); subplot(2,2,3); plot(w,abs(f)); subplot(2,2,4); plot(w,abs(FF1));

实验三

一、实验名称 FIR数字滤波器 二、实验要求:

设计一个截止频率为ωc=0.2π的线性相位低通数字滤波器,ω1=0.3π,ω2=0.3π的线性相位带通滤波器,分别用矩形窗和海明窗对其进行截断,N为61。输入序列64-128点,输出128-256点。输入单位取样及矩形序列(占空比0.1),画出输出序列及其频谱。

三、实验原理:

理想低通数字滤波器,其频率特性为Hd(ejω),现假设其幅频特性|Hd(ejω)|=1,相频特性φ(ω)=0,那么,该滤波器的单位

抽样响应hd(n)是以为hd(0)为对称的sinc函数,hd(0)=ωc/π。我们将hd(n)截短,例如仅取hd(-M/2),…,hd(0),…,hd(M/2),并将截短后的hd(n)移位,得

h(n)=hd(n-M/2) n=0,1,…,M

那么h( n )是因果的,且为有限长,长度为M+1,令 H(z)=∑h(n)Z-n n=0,1,…,M

即得到所设计滤波器的转移函数。H(z)的频率响应将近似Hd(ejω),且是线形相位的。

窗函数设计法是一种逼近,用其频响H(ejw)去逼近所要求的理想滤波器频响Hd(ejw),用其有限长单位冲击响应h(n)去逼近理想滤波器的无限长单位冲击响应hd(n),即:

设计FIR DF的关键是求出h(n),它应该是一个有限长因果序列。有限性可通过对hd(n)截取一段,即与某一窗函数相乘获

得;因果性可通过在时域上进行等。

设计时,先根据

的时延来获得,这不影响幅频特性,只影响相频。常用的窗函数有矩形窗、海明窗

算出hd(n),再根据指定的窗函数点数以及窗的类型得出h(n),对输入的待滤波序列和h(n)做卷积,即可达到滤波效果。具体实现时可根据线形卷积和圆周卷积的关系,通过补点把线形卷积化为圆周卷积,再根据离散时域的卷积定理,借助FFT求出两序列的频谱,对其频域的乘积做IFFT,即得到时域的圆周卷积。

理想低通滤波器幅频特性

可知: 同理:

带通滤波器的单位冲击响应为: h(n)=(Sinω2n- Sinω1n)/ (πn) 所以: y(n)?

m?0?h(m)x(n?m)

N?1四、实验结果及分析:

以下各图输入序列均为128个点,输出序列均为256个点,滤波器窗函数取样点的数目N均为61。 低通滤波

(1) 单位冲击序列输入:

输入序列1x(n)0.500204080100n加矩形窗低通滤波后频谱601201401幅度/dB0.50050150200n加矩形窗低通滤波后输出序列1002503000.2y(n)0-0.2050100150n200250300

输入序列1x(n)0.500204080100n加海明窗低通滤波后频谱601201400.5幅度/dB0050150200n加海明窗低通滤波后输出序列1002503000.1y(n)0-0.1050100150n200250300

加矩形窗后响应0幅度/dB-10-20-3000.10.20.30.40.50.6归一化频率/p加海明窗后响应0.70.80.91-5-10幅度/dB-15-20-2500.10.20.30.40.50.6归一化频率/p0.70.80.91

主要代码:

n=0:127;N=30;x(1)=1;x(2:128)=0;

h=sin(0.2*pi*(n-30))./(pi*(n-30+eps));y=conv(x,h);Y=abs(fft(y)); subplot(3,1,1); stem(n,x); xlabel('n'); ylabel('x(n)'); title('输入序列');

subplot(3,1,2); stem(0:254,Y) ;xlabel('n'); ylabel('幅度/dB'); title('加矩形窗低通滤波后频谱'); subplot(3,1,3); stem(0:254,y); xlabel('n'); ylabel('y(n)'); title('加矩形窗低通滤波后输出序列');

hd=sin(0.2*pi*(n-30))./(pi*(n-30+eps));

w=0.5-0.5*cos(2*pi*n/128); h=hd.*w; y=conv(x,h); Y=abs(fft(y)); subplot(3,1,1) ;stem(n,x); xlabel('n'); ylabel('x(n)'); title('输入序列');

subplot(3,1,2); stem(0:254,Y); xlabel('n'); ylabel('幅度/dB'); title('加海明窗低通滤波后频谱'); subplot(3,1,3); stem(0:254,y); xlabel('n'); ylabel('y(n)'); title('加海明窗低通滤波后输出序列'); n=0:127;h=sin(0.2*pi*(n-30))./(pi*(n-30+eps));[h1,w1]=freqz(h,1); subplot(2,1,1); plot(w1/pi,20*log10(abs(h1)));

xlabel('归一化频率/?'); ylabel('幅度/dB'); title('加矩形窗后响应') d=sin(0.2*pi*(n-30))./(pi*(n-30+eps)); w=0.5-0.5*cos(2*pi*n/128); h=d.*w;

[h1,w1]=freqz(h,1); subplot(2,1,2); plot(w1/pi,20*log10(abs(h1))); xlabel('归一化频率/?') ;ylabel('幅度/dB'); title('加海明窗后响应') ;

(2) 矩形序列输入(占空比0.5):

输入序列1x(n)0-10204080100n加矩形窗低通滤波后频谱60120140100幅度/dB500050150200n加矩形窗低通滤波后输出序列1002503002y(n)0-2050100150n200250300

输入序列1x(n)0-10204080100n加海明窗低通滤波后频谱6012014040幅度/dB200050150200n加海明窗低通滤波后输出序列1002503000.5y(n)0-0.5050100150n200250300

主要代码:

n=0:127;N=30;x=[ones(1,32) -ones(1,32),ones(1,32) -ones(1,32)]; h=sin(0.2*pi*(n-N))./(pi*(n-N+eps));y=conv(x,h);Y=abs(fft(y)); subplot(3,1,1) ;stem(n,x); xlabel('n'); ylabel('x(n)'); title('输入序列');

subplot(3,1,2) ;stem(0:254,Y); xlabel('n') ;ylabel('幅度/dB'); title('加矩形窗低通滤波后频谱'); subplot(3,1,3); stem(0:254,y); xlabel('n') ;ylabel('y(n)') ;title('加矩形窗低通滤波后输出序列'); hd=sin(0.2*pi*(n-30))./(pi*(n-30+eps));

w=0.5-0.5*cos(2*pi*n/128); h=hd.*w; y=conv(x,h); Y=abs(fft(y)); subplot(3,1,1) ;stem(n,x); xlabel('n'); ylabel('x(n)') ;title('输入序列');

subplot(3,1,2) ;stem(0:254,Y) ;xlabel('n'); ylabel('幅度/dB'); title('加海明窗低通滤波后频谱'); subplot(3,1,3) ;stem(0:254,y) ;xlabel('n'); ylabel('y(n)'); title('加海明窗低通滤波后输出序列');

分析:

可以看见相同的信号经过矩形窗与海宁窗后的效果有一定的区别,因为海宁窗可以得到旁瓣更小的效果,使能量能够更加集中于窗谱的主瓣内,增大了阻带衰减,可以使设计的信号更加接近模拟信号。

实验心得

通过该实验,我深刻了解了各种类型的序列表示,无论是正弦序列,矩形序列,三角序列都已经有了较为明确的概念了解。同时,我们对序列进行巴特沃斯低通双线性IIR数字滤波器,最终得到了卷积的图样。

除此之外,我们再次温习了MATLAB,并且对其中的傅里叶变换函数有了进一步的了解。

在此次试验中,我遇到了许多困难,由于对MATLAB的不熟悉,最初的导入函数总是出错,最后,在同学的指导下,终于完成了工作。

本文来源:https://www.bwwdw.com/article/1pv8.html

Top