数字信号实验报告

更新时间:2024-01-27 17:16:01 阅读量: 教育文库 文档下载

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

实验二 DFT在卷积计算中的应用

一、实验目的:

学习MATLAB计算信号DFT;学习利用MATLAB由DFT计算线性卷积。 二、实验原理:

在MATLAB信号处理工具箱中,函数dftmtx(n)用来产生N*N的DFT矩阵DN。另外MATLAB提供了4个内部函数用于计算DFT和IDFT。分别为:fft(x),fft(x,n),ifft(x),ifft(x,n)。

fft(x):计算M点的DFT,M是序列X的长度;

fft(x,n):计算N点的DFT,若M>N,则截断,反之则补0; ifft(x),ifft(x,n):分别为以上两种运算的逆运算;

Fftfilt:函数基于重叠相加法的原理,可实现长短序列的线性卷积,其格式为:y=fftfilt(h,x,n),h为短序列,x长序列,n为DFT点数。 三、实验内容:

1.分别计算16点序列x(n)?cos15?n,0?n?15的16点和32点DFT,绘出幅度谱图形。 162.已知x[k]=2k+1,0?k?18,h[k]={1,3,2,4};试分别用重叠相加法和直接求卷积法求两序列的卷积,并绘出幅度谱图形。 四、实验结果:

1.

n1=0:15;

x=cos(15*pi/16*n); X1=fft(x,16); n2=0:31; X2=fft(x,32); mag1=abs(X1); mag2=abs(X2);

subplot(2,1,1);stem(n1,mag1);title('取样16点的DFT'); subplot(2,1,2);stem(n2,mag2);title('取样32点的DFT')

0

2. k=0:18; x=2*k+1; h=[1 3 2 4]; n=16;

y=fftfilt(h,x,n); z=conv(h,x);

mag1=abs(y);mag2=abs(z);

subplot(2,1,1);stem(mag1);title('重叠相加法'); subplot(2,1,2);stem(mag2);title('直接求卷积法');

1

2

实验三 快速Fourier变换(FFT)及其应用

一、实验目的:

加深对离散信号的DFT的理解及其FFT算法的运用。 二、实验原理:

N点序列的DFT和IDFT变换定义式如下:

nkX(k)?DFT?x(n)???x(n)WNn?0N?1k?0,1,N?1

1N?1?nkx(n)?IDFT?X(k)???X(k)WNNk?0利用旋转因子WnKNn?0,1,LN?1

?e?nk?j2N的周期性,可以得到快速算法(FFT)。

在Matlab中,可以用函数X=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。 三、实验要求:

利用Matlab编程完成下列序列的FFT,绘出相应图形。并与理论计算相比较,说明实验结果的原因。 四、实验内容:

1、高斯序列

??(n?p)q?xa(n)??e??02、衰减正弦序列

20?n?15else

?e?n?sin2?fn0?n?15xb(n)??0else ?3、三角波序列

?n?10?n?3?xc(n)??8?n4?n?7?0else? 3

4、反三角序列

?4?n0?n?3?xd(n)??n?34?n?7?0else?

五、实验结果:

1.高斯序列

n=0:15; p=8; q=2;

x=exp(-1*(n-p).^2/q); close all; y=fft(x);

subplot(2,1,1);

stem(y); title('高斯序列'); X=abs(fft(x)); subplot(2,1,2);

stem(X);title('高斯序列幅度谱');

4

2.衰减正弦序列 n=0:15; a=0.1; f=0.065;

x=exp(-a*n).*sin(2*pi*f*n); close all; subplot(2,1,1);

stem(x); title('衰减正弦序列'); subplot(2,1,2);

stem(abs(fft(x))); title('衰减正弦序列幅度谱');

3.三角序列 for n=1:4 x(n)=n; end

for n=5:8 x(n)=9-n; end

close all;

subplot(2,1,1);

5

stem(x);

title('三角波序列') y=fft(x,n); Y=abs(y); subplot(2,1,2); stem(Y);

title('傅里叶变换后的三角波')

4.反三角序列 for n=1:4 x(n)=5-n; end

for n=5:8 x(n)=n-4; end

close all;

subplot(2,1,1); stem(x);

title('反三角波序列') y=fft(x,n);

6

Y=abs(y); subplot(2,1,2); stem(Y);

title('傅里叶变换后的反三角波')

7

实验四 IIR滤波器的设计

一、模拟滤波器的设计 (1)滤波器的原型设计 [z,p,k]=besslap(n) H(s)的表达式

(2)滤波器阶数的选择

除能求模拟阶数,也能求数字的阶数 [n,Wn]=buttord(Wp,Ws.Rp,Rs)(数字) [n,Wn]=buttord(Wp,Ws.Rp,Rs,’s’)(模拟) (3)模拟频率的变换 [bt,at]=lp2lp(b,a,wo) 二、模拟到数字的映射 (1)双线性变换法

[zd,pd,kd]=bilinear(z,p,k,fs)

[numd,dend]=bilinear(num,den,fs) (2)冲激响应不变法 [bz,az]=impinvar(b,a,fs) 三、直接设计 [b,a]=butter(n,wn)

[b,a]=butter(n,wn,’ftype’) [b,a]=butter(n,wn,’s’)

[b,a]=butter(n,wn,’ftype’,’s’) 另外:

Freqz(B,A,N,FS)

一.实验目的

1.了解工程上两种最常用的变换方法:脉冲响应不变法和双线性变换法。

2.掌握双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通、带通和高通IIR数字滤波器的计算机程序。

3.观察用双线性变换法设计的滤波器的频域特性,并与脉冲响应不变法相比较,了解双线性变换法的特点。

4.熟悉用双线性变换法设计数字Butterworth和Chebyshev 滤波器的全过程。

二.实验原理

从模拟滤波器设计IIR数字滤波器具有四种方法:微分-差分变换法、脉冲响应不变法、双线性变换法、z平面变换法。工程上常用的是其中的两种:脉冲响应不变法、双线性变换法。脉冲响应不变法需要经历如下基本步骤:由已知系统传输函数H(S)计算系统冲激响应h(t);对h(t)等间隔采样得到h(n)=h(nT);由h(n)获得数字滤波器的系统响应H(Z)。这种方

8

法非常直观,其算法宗旨是保证所设计的IIR滤波器的脉冲响应和模拟滤波器的脉冲响应在采样点上完全一致。而双线性变换法的设计准则是使数字滤波器的频率响应与参考模拟滤波器的频率响应相似。

脉冲响应不变法一个重要的特点是频率坐标的变换是线性的(???T),其确定是有频谱的周期延拓效应,存在频谱混叠的现象。为了克服脉冲响应不变法可能产生的频谱混叠,提出了双线性变换法,它依靠双线性变换式:

1?z?11?sz?s?1?s, 其中 s???j?,z?rej? 1?z?1,

建立其S平面和Z平面的单值映射关系,数字域频率和模拟域频率的关系是:

??tg(?/2), ??2arctg(?)

由上面的关系式可知,当???时,?终止在折叠频率???处,整个j?轴单值

的对应于单位圆的一周。因此双线性变换法不同于脉冲响应不变法,不存在频谱混叠的问题。从式(3-1)还可以看出,两者的频率不是线性关系。这种非线性关系使得通带截至频率、过渡带的边缘频率的相对位置都发生了非线性畸变。这种频率的畸变可以通过预畸变来校正。用双线性变换法设计数字滤波器时,一般总是先将数字滤波器的个临界频率经过频率预畸变,求得相应参考模拟滤波器的个临界频率,然后设计参考模拟滤波器的传递函数,最后通过双线性变换式求得数字滤波器的传递函数。这样通过双线性变换,正好将这些频率点映射到我们所需要的位置上。参考模拟滤波器的设计,可以按照一般模拟滤波器设计的方法,利用已经成熟的一整套计算公式和大量的归一化设计表格和曲线。这些公式、表格主要是用于归一化低通原型的。通过原型变换,可以完成实际的低通、带通和高通滤波器的设计。在用双线性变换法设计滤波器的过程中,我们也可以通过原型变换,直接求得归一化参考模拟滤波器原型参数,从而使得设计更加简化。综上所述,以低通数字滤波器设计为例,可以将双线性变换法设计数字滤波器的步骤归纳如下:

(1)确定数字滤波器的性能指标。这些指标包括:通带、阻带临界频率fp,fs;通带内的最大衰减?p;阻带内的最小衰减?s;采样周期T。

(2)确定相应的数字频率,?p?2?fpT,?s?2?fsT。

(3)计算经过频率预畸变的相应参考模拟低通原型的频率,?p?tg(?p/2),

9

?s?tg(?s/2)

(4)计算低通原型阶数N;计算3dB归一化频率?c,从而求得低通原型的传递函数Ha(s)。

1?z?1s?1?z?1,代入Ha(s),求得数字滤波器的传世函数(5)用表(3-1)中所列变换公式H(z)。

(6)分析滤波器频域特性,检查其指标是否满足要求。 1、ButterWorth 模拟和数字滤波器

(1)butterd 函数:ButterWorth 滤波器阶数的选择。

调用格式:[n,Wn]=buttord(Wp,Ws,Rp,Rs),在给定滤波器性能的情况下(通带临界频率Wp、阻带临界频率Ws、通带内最大衰减Rp 和阻带内最小衰减Rs),计算ButterWorth 滤波器的阶数n 和截止频率Wn。相同参数条件下的模拟滤波器则调用格式为:

[n,Wn]=buttord(Wp,Ws,Rp,Rs,’s’)

(2)butter 函数:ButterWorth 滤波器设计。

调用格式:[b,a]=butter(n,Wn),根据阶数n 和截止频率Wn 计算ButterWorth 滤波器分子分母系数(b 为分子系数的矢量形式,a 为分母系数的矢量形式)。相同参数条件下的模拟滤波器则调用格式为:[b,a]=butter(n,Wn,’s’)

例1:采样频率为1Hz,通带临界频率fp =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率fs=0.3Hz,阻带内衰减大于25dB(αs=25)。设计一个数字滤波器满足以上参数。

[n,Wn]=buttord(0.2,0.3,1,25); [b,a]=butter(n,Wn); freqz(b,a,512,1); 2、Chebyshev 模拟和数字滤波器

(1)cheb1ord 函数:Chebyshev型滤波器阶数计算。

调用格式:[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs),在给定滤波器性能的情况下(通带临界频率Wp、阻带临界频率Ws、通带内波纹Rp 和阻带内衰减Rs),选择ChebyshevⅠ型滤波器的最小阶n 和截止频率Wn。

(2)cheby1 函数:ChebyshevⅠ型滤波器设计。

调用格式:[b,a]= cheby1(n,Rp,Wn),根据阶数n、通带内波纹Rp 和截止频率Wn 计算ButterWorth 滤波器分子分母系数(b 为分子系数的矢量形式,a 为分母系数的矢量形式)。

注:ChebyshevⅡ型滤波器所用函数和Ⅰ型类似,分别是cheb2ord、cheby2。

10

实现上例中的滤波器:

[n,Wn]=cheb1ord(0.2,0.3,1,25); [b,a]=cheby1(n,1,Wn); freqz(b,a,512,1);

3、滤波器设计

(1)脉冲响应不变法设计数字ButterWorth 滤波器

调用格式:[bz,az]=impinvar(b,a,Fs),再给定模拟滤波器参数b,a 和取样频率Fs 的前提下,计算数字滤波器的参数。两者的冲激响应不变,即模拟滤波器的冲激响应按Fs 取样后等同于数字滤波器的冲激响应。

(2)利用双线性变换法设计数字ButterWorth 滤波器

调用格式:[bz,az]=bilinear[b,a,Fs],根据给定的分子b、分母系数a 和取样频率Fs,根据双线性变换将模拟滤波器变换成离散滤波器,具有分子系数向量bz 和分母系数向量az。模拟域的butter 函数说明与数字域的函数说明相同[b,a]=butter(n,Wn,’s’)可以得到模拟域的Butterworth滤波器。

三.实验内容

采样频率为1Hz,通带临界频率fp =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率fs=0.3Hz,阻带内衰减大于25dB(αs=25)。设计一个数字滤波器满足以上参数。

四、实验结果:

1、Butter函数:

[n,Wn]=buttord(0.2,0.3,1,25); [b,a]=butter(n,Wn); freqz(b,a,512,1);

11

2、双线性变换法:

[n,Wn]=buttord(0.2,0.3,1,25,'s'); [b,a]=butter(n,Wn,'s'); [bz,az]=impinvar(b,a,1); freqz(bz,az,512,1);

12

3、冲击响应不变法:

[n,Wn]=buttord(0.2,0.3,1,25,'s');

[b,a]=butter(n,Wn,'s'); [bz,az]=bilinear(b,a,1); freqz(bz,az,512,1);

13

14

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

Top