当前位置:文档之家› 数字信号处理第七章介绍

数字信号处理第七章介绍

数字信号处理第七章介绍
数字信号处理第七章介绍

第七章数字滤波器设计

7.1:无限冲激响应滤波器的阶数的估计

Q7.1用MATTAB确定一个数字无限冲激响应低通滤波器所有四种类型的最低阶数。指标如下:40 kHz的抽样率,,4 kHz的通带边界频率,8 kHz的阻带边界频率,0.5 dB的通带波纹,40 dB的最小阻带衰减。评论你的结果。

答:标准通带边缘角频率Wp是:

标准阻带边缘角频率Ws是:

理想通带波纹Rp是0.5dB

理想阻带波纹Rs是40dB

1.使用这些值得到巴特沃斯低通滤波器最低阶数N=8,相应的标准通带边缘频率Wn是0.2469.

2.使用这些值得到切比雪夫1型低通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是0.2000.

3/使用这些值得到切比雪夫2型低通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是0.4000.

4.使用这些值得到椭圆低通滤波器最低阶数N=8,相应的标准通带边缘频率Wn是0.2000. 从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。

Q7.2用MATLAB确定一个数字无限冲激响应高通滤波器所有四种类型的最低阶数。指标如下:3500Hz的抽样率,1050 Hz的通带边界频率,600 Hz的阻带边界频率,1 dB 的通带波纹,50 dB的最小阻带衰减。评论你的结果

答:标准通带边缘角频率Wp是:

标准阻带边缘角频率Ws是:

理想通带波纹Rp是1dB

理想阻带波纹Rs是50dB

1.使用这些值得到巴特沃斯高通滤波器最低阶数N=8,相应的标准通带边缘频率Wn是0.5646.

2.使用这些值得到切比雪夫1型高通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是

0.6000.

3.使用这些值得到切比雪夫2型高通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是

0.3429.

4.使用这些值得到椭圆低通滤波器最低阶数N=4,相应的标准通带边缘频率Wn是0.6000.

从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。

Q7.3用MATLAB确定一个数字无限冲激响应带通滤波器所有四种类型的最低阶数。指

标如下:7 kHz的抽样率,1.4 kHz和2.1 kHz的通带边界频率,1.05 kHz和2.45 kHz

的阻带边界频率,,0 .4 dB的通带波纹,50 dB的最小阻带衰减。评论你的结果。

答:标准通带边缘角频率Wp是:

标准阻带边缘角频率Ws是:

理想通带波纹Rp是0.4dB

理想阻带波纹Rs是50dB

1.使用这些值得到巴特沃斯带通滤波器最低阶数2N=18,相应的标准通带边缘频率Wn是[0.3835 0.6165].

2.使用这些值得到切比雪夫1型带通滤波器最低阶数2N=12,相应的标准通带边缘频率Wn 是[0.4000 0.6000].

3.使用这些值得到切比雪夫2型带通滤波器最低阶数2N=12,相应的标准通带边缘频率Wn 是[0.3000 0.7000].

4.使用这些值得到椭圆带通滤波器最低阶数2N=8,相应的标准通带边缘频率Wn是[0.4000 0.6000].

从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。

Q7.4用MATLAB确定一个数字无限冲激响应带阻滤波器所有四种类型的最低阶数。指标如下:12 kHz的抽样率,2.1 kHz和4.5 kHz的通带边界频率,2.7 kHz和3.9 kHz的阻带边界频率,0.6 dB的通带波纹,45 dB的最小阻带衰减。评论你的结果。

答:标准通带边缘角频率Wp是:

标准阻带边缘角频率Ws是:

理想通带波纹Rp是0.6dB

理想阻带波纹Rs是45dB

1.使用这些值得到巴特沃斯带阻滤波器最低阶数2N=18,相应的标准通带边缘频率Wn是[0.3873 0.7123].

2.使用这些值得到切比雪夫1型带阻滤波器最低阶数2N=10,相应的标准通带边缘频率Wn 是[0.3500 0.7500].

3.使用这些值得到切比雪夫2型带阻滤波器最低阶数2N=10,相应的标准通带边缘频率Wn 是[0.4500 0.6500].

4.使用这些值得到椭圆带阻滤波器最低阶数2N=8,相应的标准通带边缘频率Wn是[0.3500 0.7500].

从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。

7.2:无限冲激响应滤波器设计

程序P7.1说明巴特沃斯带阻滤波器的设计。

% 巴特沃斯带阻滤波器的设计

Ws = [0.4 0.6]; Wp = [0.2 0.8]; Rp = 0.4; Rs = 50;

% 估计滤波器的阶数

[N1, Wn1] = buttord(Wp, Ws, Rp, Rs);

% 设计滤波器

[num,den] = butter(N1,Wn1,'stop');

% 显示传输函数

disp('分子系数是 ');disp(num);

disp('分母系数是 ');disp(den);

% 计算增益响应

[g, w] = gain(num,den);

% 绘制增益响应

plot(w/pi,g);grid

axis([0 1 -60 5]);

xlabel('\omega /\pi'); ylabel('增益, dB');

title('巴特沃斯带阻滤波器的增益响应');

Q7.5通过运行程序P7. 1来设计巴特沃兹带阻滤波器。写出所产生的传输函数的准确表达式。滤波器的指标是什么,你的设计符合指标吗,使用MATLAB,计算并绘制滤波器的未畸变的相位响应及群延迟响应。

答:表达式是:

滤波器参数是:

Wp1=0.2π,Ws1=0.4π,Ws2=0.6π,Wp2=0.8π,Rp=0.4dB,Rs=50dB.

设计的滤波器增益响应如下:

从图中可以总结出设计符合指标。

滤波器的未畸变的相位响应及群延迟响应如下:

Q7.6修改程序P7.1来设计符合习题Q7.1所给指标的切比雪夫1型低通滤波器。写出所产生的传输函数的准确表达式。你的设计符合指标吗?使用MATLAB,计算并绘制滤波器的未畸变的相位响应及群延迟响应。

答:表达式如下:

设计的滤波器增益响应如下:

从图中可以总结出设计符合指标。

滤波器的未畸变的相位响应及群延迟响应如下:

Q7.7修改程序P7.1来设计符合习题Q7.2所给指标的切比雪夫2型高通滤波器。写出所产生的传输函数的准确表达式。你的设计符合指标吗?使用MATLAB,计算并绘制滤波器的未畸变的相位响应及群延迟响应。

答:表达式如下:

设计的滤波器增益响应如下:

从图中可以总结出设计符合指标。

滤波器的未畸变的相位响应及群延迟响应如下:

Q7.8修改程序P7.1来设计符合习题Q7.3所给指标的椭圆带通滤波器。写出所产生的传输函数的准确表达式。你的设计符合指标吗,使用MATLAB,计算井绘制滤波器的未畸变的相位响应及群延迟响应。

答:表达式如下:

设计的滤波器增益响应如下:

从图中可以总结出设计符合指标。

滤波器的未畸变的相位响应及群延迟响应如下:

7.3:吉布斯现象

Q7.9使用函数sinc编写一个MATLAB程序,以产生截止频率在Wc= 0.4π处、长度分别为81,61,41和21的四个零相位低通滤波器的冲激响应系数,然后计算并画出它们的幅度响应。使用冒号“:”运算符从长度为81的滤波器的冲激响应系数中抽出较短长度滤波器的冲激响应系数。在每一个滤波器的截止频率两边研究频率响应的摆动行为。波纹的数量与滤波器的长度之间有什么关系?最大波纹的高度与滤波器的长度之间有什么关系?你将怎样修改上述程序以产生一个偶数长度的零相位低通滤波器的冲激响应系数?

答:长度为81时幅度响应如下:

长度分别为61,41和21的幅度响应如下:

从中可以观察到由于吉布斯现象产生的幅度响应的摆动行为。

波纹的数量与滤波器的长度之间的关系——波纹的数量减少与长度成正比。

最大波纹的高度与滤波器的长度之间的关系——最大波纹的高度与长度无关。

Q7.10使用函数sinc编写一个MATLAB程序,以产生一个截止频率在Wc= 0.4π处、长度为45的零相位高通滤波器的冲激响应系数,计算并画出其幅度响应。在每一个滤波器的截止频率两边研究频率响应的摆动行为。你将怎样修改上述程序以产生一个偶数长度的零相位高通滤波器的冲激响应系数?

答:长度为45时幅度响应如下:

从中可以观察到由于吉布斯现象产生的幅度响应摆动行为。

在这种情况下你不能改变长度。原因:这是一个零相位滤波器,这意味着它也是一个线性相位滤波器,因为零相是一种特殊的线性相位的子集。现在,理想的有限脉冲响应长度甚至有对称的中点h[n]。使其成了一个线性相位FIR滤波器。二型滤波器不可能是高通滤波器,因为必须在z=-1处有零点,意味着w=+-π。

Q7.11编写一个MATLAB程序,以产生长度分别为81,61,41和21的四个零相位微分器的冲激响应系数,计算并画出它们的幅度响应。下面的代码段显示了怎样产生一个长度为2M+1的微分器。

n=1:M;

b=cos(pi*n)./n;

num=[-fliplr(b) 0 b];

对于每种情况,研究微分器的频率响应的摆动行为。波纹的数量与微分器的长度之间有什么关系,最大波纹的高度与滤波器的长度之间有什么关系?

答:幅度响应分别如下:

从中可以观察到由于吉布斯现象产生的幅度响应的摆动行为。

波纹的数量与微分器的长度之间的关系——两者成正比。

最大波纹的高度与滤波器的长度之间的关系——两者间没有关系。

Q7.12编写一个MA11AB程序,以产生长度分别为81,61.41和21的四个离散时间希尔伯特变换器的冲激响应系数,计算并画出它们的幅度响应。下面的代码段显示了怎样产生一个长度为2M十1的希尔伯特变换器。

n=1:M;

c=sin(pi*n)./2;

b=2*(c.*c)./(pi*n);

num=[-fliplr(b) 0 b];

对于每种情况,研究希尔伯特变换器的频率响应的摆动行为。波纹的数量与希尔伯特变换器的长度之间有什么关系?最大波纹的高度与滤波器的长度之间有什么关系?

答:幅度响应如下:

从中可以观察到由于吉布斯现像产生的幅度响应的摆动行为。

波纹的数量与希尔伯特变换器的长度之间的关系——两者成正比。

最大波纹的高度与滤波器的长度之间的关系——两者无关系。

7.4:有限冲激响应滤波器的阶数估计

Q7.13 线性相位低通FIR滤波器的阶数估算,参数如下:

p =2 kHz, s =2.5 kHz, p = 0.005, s = 0.005, F T = 10kHz

使用 kaiord 的结果为N = 46

使用 ceil 命令的目的是朝正方向最接近整数方向取整。

使用nargin命令的目的是表明函数M文件体内变量的数目。

Q7.14 (a)线性相位FIR滤波器的阶数估算,其中采样频率改为F T = 20 kHz ,则结果为 N=91。

(b) 线性相位FIR p= 0.002s= 0.002 结果为 N=57。

(c)线性相位FIR s = 2.3 kHz ,结果为N=76.

从上述结果和7.13的对比我们可以观察到:

滤波器阶数和采样频率的关系为–对于一个给定的模拟过渡带宽,采样频率的增加导致估算阶数也相应增加,朝下一个整数取整。

其中模拟过渡带宽|Fp-Fs|和Δω的关系:Δω=2pi*|Fp-Fs|/FT。

因此增加FT会减小Δω。

滤波器阶数和通带波纹宽度的关系为估计的阶数大致和log(底数为10)成比例的扩散。

滤波器阶数和过渡带宽度的关系为在舍入的时候,阶数随着过渡带宽成比例的改变。

有两个因素增加过渡带宽来分割顺序。

Q7.15线性相位FIR低通滤波器阶数的估算,其中滤波器满足7.13给的规格,使用

kaiserord的结果为N=54

正确结果:kaiserord([2000 2500],[1 0],[0.005 0.005],10000)

将上述结果和7.13比较我们观察到:用凯瑟来估算阶数是较小的。因为凯瑟使用了一个不

同的近似估计。这种估计经常和FIR设计的凯瑟窗一起用。

Q7.16 线性相位FIR低通滤波器的阶数估算满足的规格和7.13中的一样,使用remezord函数

的结果为N=47.

正确结果:firpmord([2000 2500],[1 0],[0.005 0.005],10000)

通过和7.13和7.15比较我们可以观察到:在这里,firpmord给了一个比凯尔更大比凯瑟更小

一点的结果。使用凯尔则更接近与一般情况。而使用凯瑟和firpmord则有专门的用途。

Q7.17 线性相位带通FIR滤波器的阶数估算满足如下规格:通带边界为1.8和3.6kHz,阻带边

界为1.2kHz到4.2kHz p = 0.01,阻带波纹s = 0.02,F T = 12 kHz。

使用kaiord 函数求得的结果为:通带波纹δp= 0.1,得到的结果为:kaiord([1800 3600],[1200 4200],0.1,0.02,12000),N=20。但是当δp= 0.01时结果为:kaiord([1800 3600],[1200 4200],0.01,0.02,12000),得到的N=33。所以答案不唯一,可以选择其中一个。

Q7.18线性相位带通FIR滤波器的阶数估算,其中FIR滤波器的规格和7.17一样,则使用kaiserord的结果为同样,它也有矛盾。当使用δp= 0.1时,得到的结果为:kaiserord([1200

1800 3600 4200],[0 1 0],[0.02 0.1 0.02],12000),则N=37.

当用δp= 0.01时,结果为:kaiserord([1200 1800 3600 4200],[0 1 0],[0.02 0.01 0.02],12000),此时N=45.

和7.17的结果比较我们观察到通过kaiserord函数估计的阶数要更高,但如果你要设计Kaiser窗的话则结果更精确。

Q7.19 线性相位带通FIR滤波器的阶数估算,其中FIR滤波器的规格和7.17一样,使用函数remezord。

当取δp= 0.01时,结果为firpmord([1200 1800 3600 4200],[0 1 0],[0.02 0.1 0.02],12000),此时N=22.

而如果δp= 0.01,则结果为:firpmord([1200 1800 3600 4200],[0 1 0],[0.020.01 0.02],12000),此时N=35.可以从中任意选择。

和7.17和7.18的结果比较我们可以观察到通过firpmord来估算的阶数在另外两个的中间,在设计Parks-McClellan时更准确。

7.5有限冲激响应滤波器设计

Q7.20 使用matlab程序设计并画出线性相位FIR滤波器增益和相位反应,使用fir1如下。通过使用函数kaiserord.来估计滤波器阶数,输出结果为滤波器的系数。低通滤波器满足7.20所要求的规格的系数如下:

增益和相位响应如下:

从增益图像我们可以知道这个设计不能满足规格.这个滤波器满足规格的阶数为N=66.为了满足规格,图如下:

Q7.21汉宁窗:

布莱克曼窗:

切比雪夫窗:

Q7.22 程序如下:

% Program Q7_22

% Use Parks-McClellan to design a linear phase Lowpass

% FIR Digital Filter meeting the design specification given % in Q7.13.

% - Print out the numerator coefficients

% for the transfer function.

% - Compute and plot the gain function.

% - Compute and plot the phase response.

% - Compute and plot the unwrapped phase response.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;

% Design spec as given in Q7.13.

Fp = 2*10^3;

Fs = 2.5*10^3;

FT = 10*10^3;

Rp = 0.005;

Rs = 0.005;

% Estimate the filter order and print to console

N = kaiord(Fp,Fs,Rp,Rs,FT)

% Design the filter using Parks-McClellan

Wp = 2*Fp/FT; % These freqs are normalized: they go

Ws = 2*Fs/FT; % zero to one, not zero to pi.

F = [0 Wp Ws 1];

A = [1 1 0 0];

h = firpm(N,F,A);

% Show the Numerator Coefficients

disp('Numerator Coefficients are ' );disp(h);

% Compute and plot the gain response

[g, w] = gain(h,[1]);

figure(1);

plot(w/pi,g);grid;

xlabel('\omega /\pi' ); ylabel('Gain in dB' );

title('Gain Response' );

% Compute the frequency response

w2 = 0:pi/511:pi;

Hz = freqz(h,[1],w2);

% TEST: did we meet the spec?

MagH = abs(Hz);

T1 = 1.005*ones(1,length(w2));

T2 = 0.995*ones(1,length(w2));

T3 = 0.005*ones(1,length(w2));

figure(4);

plot(w2/pi,MagH,w2/pi,T1,w2/pi,T2,w2/pi,T3);grid;

% Find and plot the phase

figure(2);

Phase = angle(Hz);

plot(w2/pi,Phase);grid;

xlabel('\omega /\pi' ); ylabel('Phase (rad)' );

title('Phase Response' );

figure(3);

UPhase = unwrap(Phase);

plot(w2/pi,UPhase);grid;

xlabel('\omega /\pi' ); ylabel('Unwrapped Phase (rad)' );

title('Unwrapped Phase Response' );

低通滤波器系数:

0.0028 -0.0022 -0.0046 -0.0006 0.0053 0.0019 -0.0073 -0.0058 0.0079 0.0106 -0.0069 -0.0170 0.0032 0.0243 0.0045 -0.0319 -0.0182 0.0390 0.0422 -0.0448 -0.0924 0.0486 0.3136 0.4501 0.3136 0.0486 -0.0924 -0.0448 0.0422 0.0390 -0.0182 -0.0319 0.0045 0.0243 0.0032 -0.0170 -0.0069 0.0106 0.0079 -0.0058 -0.0073 0.0019 0.0053 -0.0006 -0.0046 -0.0022 0.0028

增益和相位响

从图中可以看出此时的滤波器不满足指标。欲满足指标,应调节N=47. Q7.23 用凯泽窗设计一个有限冲激响应低通滤波器。

程序:

% Program Q7_23

% Use Kaiser window to design a linear phase Lowpass

% FIR Digital Filter meeting the design specification given % in Q7.23.

%

% It is clear from the statement of the question that Mitra

% wants us to use (7.36) and (7.37) for this problem. That

% isn't the greatest thing to try because kaiserord already does % exactly what we need.... but that's Q7_24! So here goes!

% - Print out the numerator coefficients

% for the transfer function.

% - Compute and plot the gain function. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;

% Design spec as given in Q7.23.

Wp = 0.31;

Ws = 0.41;

Wn = Wp + (Ws-Wp)/2;

As = 50;

Ds = 10^(-As/20);

Dp = Ds; %Kaiser window design has equal ripple in

% passband and stopband.

% estimate order using (7.37)

if As > 21

N = ceil((As-7.95)*2/(14.36*(abs(Wp-Ws)))+1)

else

N = ceil(0.9222*2/abs(Wp-Ws)+1)

end

% Use (7.36) to get Beta

if As > 50

BTA = 0.1102*(As-8.7);

elseif As >= 21

BTA = 0.5842*(As-21)^0.4+0.07886*(As-21);

else

BTA = 0;

end

Win = kaiser(N+1,BTA);

h = fir1(N,Wn,Win);

% Show the Numerator Coefficients

disp('Numerator Coefficients are ' );disp(h);

% Compute and plot the gain response

[g, w] = gain(h,[1]);

figure(1);

plot(w/pi,g);grid;

axis([0 1 -80 5]);

xlabel('\omega /\pi' ); ylabel('Gain in dB' );

title('Gain Response' );

% Compute the frequency response

w2 = 0:pi/511:pi;

Hz = freqz(h,[1],w2);

% Find and plot the phase

figure(2);

Phase = angle(Hz);

plot(w2/pi,Phase);grid;

xlabel('\omega /\pi' ); ylabel('Phase (rad)' );

title('Phase Response' );

figure(3);

UPhase = unwrap(Phase);

plot(w2/pi,UPhase);grid;

xlabel('\omega /\pi' ); ylabel('Unwrapped Phase (rad)' );

title('Unwrapped Phase Response' );

低通滤波器系数:

0.0003 0.0008 0.0003 -0.0011 -0.0017 0.0000 0.0026 0.0027 -0.0010 -0.0049 -0.0035 0.0033 0.0080 0.0034 -0.0074 -0.0119 -0.0018 0.0140 0.0161 -0.0027 -0.0241 -0.0201 0.0127 0.0406 0.0236 -0.0354 -0.0754 -0.0258 0.1214 0.2871 0.3597 0.2871 0.1214 -0.0258 -0.0754 -0.0354 0.0236 0.0406 0.0127 -0.0201 -0.0241 -0.0027 0.0161 0.0140 -0.0018 -0.0119 -0.0074 0.0034 0.0080 0.0033 -0.0035 -0.0049 -0.0010 0.0027 0.0026 0.0000 -0.0017 -0.0011 0.0003 0.0008 0.0003

增益和相位响应如下:

从图中可以看出设计的滤波器满足要求。N=60.

Q7.24 用函数kaiserord和firl重做习题Q7.23

程序:

% Use Kaiser window to design a linear phase Lowpass

% FIR Digital Filter meeting the design specification given % in Q7.23. Use kaiserord and fir1.

% - Print out the numerator coefficients

% for the transfer function.

% - Compute and plot the gain function.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;

% Design spec as given in Q7.23.

Wp = 0.31;

Ws = 0.41;

As = 50;

Ds = 10^(-As/20);

% Design the Filter

F = [Wp Ws];

A = [1 0];

DEV = [Ds Ds];

[N,Wn,BTA,Ftype] = kaiserord(F,A,DEV);

Win = kaiser(N+1,BTA);

h = fir1(N,Wn,Ftype,Win);

% Show the Numerator Coefficients

disp('Numerator Coefficients are ' );disp(h);

% Compute and plot the gain response

[g, w] = gain(h,[1]);

figure(1);

plot(w/pi,g);grid;

axis([0 1 -80 5]);

xlabel('\omega /\pi' ); ylabel('Gain in dB' );

title('Gain Response' );

% Compute the frequency response

w2 = 0:pi/511:pi;

Hz = freqz(h,[1],w2);

% Find and plot the phase

figure(2);

Phase = angle(Hz);

plot(w2/pi,Phase);grid;

xlabel('\omega /\pi' ); ylabel('Phase (rad)' );

title('Phase Response' );

figure(3);

UPhase = unwrap(Phase);

plot(w2/pi,UPhase);grid;

xlabel('\omega /\pi' ); ylabel('Unwrapped Phase (rad)' );

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验指导手册【模板】

数字信号处理实验指导手册 西安文理学院 机械电子工程系

目录 实验一离散时间信号 (2) 实验二时域采样定理 (7) 实验三离散时间系统 (10) 实验四线性卷积与圆周卷积 (13) 实验五用FFT作谱分析 (16) 实验六用双线性变换法设计IIR数字滤波器 (18) 实验七 FIR滤波器设计 (20)

实验一离散时间信号 【实验目的】 用MATLAB实现离散时间信号的表示和运算,掌握MATLAB的基本命令和编程方法,为后续实验打基础。 【实验原理】 在数字信号处理中,所有的信号都是离散时间信号,因此应首先解决在MATLAB中如何表示离散信号。 设一模拟信号经A/D变换后,得到序列信号 由于MATLAB对下标的约定为从1开始递增,因此要表示,一般应采用两个矢量,如:这表示了一个含9个采样点的矢量: 【实验内容】 熟悉下面序列(信号)的产生方法及相关运算 1、单位采样序列 2、单位阶跃序列 3、信号翻转 4、信号相加 5、信号折叠 6、信号移位 【参考程序】 单位采样序列 1、impluse1.m (图1-1) n=10; x=zeros(1,n);

x(1)=1; plot(x,'*'); 2、impluse2.m(图1-2) n=-5:5; x=[n==0]; stem(x,'*'); 3、impluse3.m(图1-3) n=1:10; n0=3; x=[(n-n0)==1]; plot(x,'*'); 单位阶跃序列 1、steps1.m(图1-4) n=10; x=ones(1,n); plot(x,'*'); 2、steps2.m(图1-5) n=10; x=ones(1,n); x(1)=0;

数字信号处理复习资料01

2、对一个带限为3f kHz ≤的连续时间信号采样构成一离散信号,为了保证从此离散信号中能恢复出原信号,每秒钟理论上的最小采样数为多少?如将此离散信号恢复为原信号,则所用的增益为1,延迟为0的理想低通滤波器的截止频率该为多少? 答:由奈奎斯特采样定理,采样频率必须大于两倍的信号最高频率,236s f kHz kHz >?=每秒钟理论上得最小采样数为6000。如将此离散信号恢复为原信号,为避免混淆,理想低通滤波器的截止频率为采样频率的一半,即 32 s kHz Ω=。 3、有限频带信号11()52cos(2)cos(4)f t f t f t ππ=++,式中,11f kHz =。用5s f kHz =的冲激函数序列()T t δ进行 取样。 (1)画出()f t 及采样信号()s f t 在频率区间(10,10)kHz kHz -的频谱图。 (2)若由()s f t 恢复原信号,理想低通滤波器的截止频率c f 。 解:(1)()f t 在频率区间(10,10)kHz kHz -的频谱图 /kHz -10 0 1 2 10 ()s f t 在频率区间(10,10)kHz kHz -的频0谱图 (2)25002 s c f f Hz ≥ = 4、有一连续正弦信号cos(2)ft π?+,其中20f Hz =,6 π ?=。 (1)求其周期0T ; (2)在t nT =时刻对其采样,0.02T s =,写出采样序列()x n 的表达式; (3)求()x n 的周期N 。 解:(1)011 0.0520 T s f = == (2)在t nT =时刻,4()cos(2)cos(2200.02)cos()6 5 6 x n f nT n n π π π?ππ=+=?+=+ (3) 25 425 ππ=,所以5N =。

数字信号处理第七章

成绩: 《数字信号处理》作业与上机实验 (第七章) 班级:电信 学号: 姓名: 任课老师:李宏民 完成时间: 信息与通信工程学院 2015—2016学年第1 学期

第7章 有限脉冲响应数字滤波器设计 一、教材p238: 19,20,21,25,26 二、某信号()x t 为:123()0.5cos(2)0.7cos(20.1)0.4cos(2)x t f t f t f t ππππ=+++,其中121100,130,600.f Hz f Hz f Hz ===设计最低阶FIR 数字滤波器,按下图所示对()x t 进行数字滤波处理,实现: (x t ()y t 1)将3f 频率分量以高于50dB 的衰减抑制,同时以低于2dB 的衰减通过1f 和2f 频率分量; 2)将1f 和2f 频率分量以高于50dB 的衰减抑制,同时以低于2dB 的衰减通过3f 频率分量; 要求:按数字滤波器直接型结构图编写滤波程序,求得()y n ;1)中的FIR 滤波器采用窗函数法设计;2)中的FIR 滤波器采用频率采样法设计。画出所设计的滤波器频率特性图、信号时域图;给出滤波器设计的MATLAB 代码与滤波器实现的代码;选择合适的信号采样周期T 。 3)与第6章作业2的IIR 滤波方法进行比较研究。

一、19、 Fs=80000; fp=15000;fs=20000;rs=40; wp=2*pi*fp/Fs;ws=2*pi*fs/Fs; rp=-20*log10(1-0.02);rs=40; [N1,wpo]=ellipord(wp/pi,ws/pi,rp,rs); [B,A]=ellip(N1,rp,rs,wpo); [Hk,wk]=freqz(B,A,500); Bt=ws-wp; alph=0.5842*(rs-21)^0.4+0.07886*(rs-21); M=ceil((rs-8)/2.285/Bt) wc=(wp+ws)/2/pi; hn=fir1(M,wc,kaiser(M+1,alph)); [Hk1,wk1]=freqz(hn,1,500); figure(1); plot(wk1/pi,20*log10(abs(Hk1)),'k'); hold on plot(wk/pi,20*log10(abs(Hk)),'r--'); hold off legend('FIR 滤波器,'IIR 滤波器'); axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB'); title('损耗函数'); figure(2) plot(wk1/pi,angle(Hk1)/pi,'k'); hold on plot(wk/pi,angle(Hk)/pi,'r--'); hold off legend('FIR 滤波器','IIR 滤波器'); xlabel('w/\pi');ylabel('相位/\pi'); title('相频特性曲线'); 0.20.4 0.60.81 0w/ 幅度/d B 损耗函数

数字信号处理实验作业

实验6 数字滤波器的网络结构 一、实验目的: 1、加深对数字滤波器分类与结构的了解。 2、明确数字滤波器的基本结构及其相互间的转换方法。 3、掌握用MA TLAB 语言进行数字滤波器结构间相互转换的子函数及程序编写方法。 二、实验原理: 1、数字滤波器的分类 离散LSI 系统对信号的响应过程实际上就是对信号进行滤波的过程。因此,离散LSI 系统又称为数字滤波器。 数字滤波器从滤波功能上可以分为低通、高通、带通、带阻以及全通滤波器;根据单位脉冲响应的特性,又可以分为有限长单位脉冲响应滤波器(FIR )和无限长单位脉冲响应滤波器(IIR )。 一个离散LSI 系统可以用系统函数来表示: M -m -1-2-m m m=0 012m N -1-2-k -k 12k k k=1 b z b +b z +b z ++b z Y(z)b(z)H(z)=== =X(z)a(z) 1+a z +a z ++a z 1+a z ∑∑ 也可以用差分方程来表示: N M k m k=1 m=0 y(n)+a y(n-k)=b x(n-m)∑∑ 以上两个公式中,当a k 至少有一个不为0时,则在有限Z 平面上存在极点,表达的是以一个IIR 数字滤波器;当a k 全都为0时,系统不存在极点,表达的是一个FIR 数字滤波器。FIR 数字滤波器可以看成是IIR 数字滤波器的a k 全都为0时的一个特例。 IIR 数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、级联型和并联型。 FIR 数字滤波器的基本结构分为横截型(又称直接型或卷积型)、级联型、线性相位型及频率采样型等。本实验对线性相位型及频率采样型不做讨论,见实验10、12。 另外,滤波器的一种新型结构——格型结构也逐步投入应用,有全零点FIR 系统格型结构、全极点IIR 系统格型结构以及全零极点IIR 系统格型结构。 2、IIR 数字滤波器的基本结构与实现 (1)直接型与级联型、并联型的转换 例6-1 已知一个系统的传递函数为 -1-2-3 -1-2-3 8-4z +11z -2z H(z)=1-1.25z +0.75z -0.125z 将其从直接型(其信号流图如图6-1所示)转换为级联型和并联型。

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验五

实验五:FIR数字滤波器设计与软件实现 信息学院 10电本2班王楚炘 2010304224 10.5.1 实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图10.5.1所示; 图10.5.1 具有加性噪声的信号x(t)及其频谱如图(3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。 (4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,

调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本书 第7章和第?章; 采样频率Fs=1000Hz,采样周期T=1/Fs; 根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止频率,通带最大衰为0.1dB,阻带截至频率,阻带最小衰为60dB。]实验程序框图如图10.5.2所示,供读者参考。 Fs=1000,T=1/Fs xt=xtg 产生信号xt, 并显示xt及其频谱 用窗函数法或等波纹最佳逼近法 设计FIR滤波器hn 对信号xt滤波:yt=fftfilt(hn,xt) 1、计算并绘图显示滤波器损耗函数 2、绘图显示滤波器输出信号yt End 图10.5.2 实验程序框图 4.思考题 (1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?请写出设计步骤. 答:用窗函数法设计线性相位低通滤波器的设计步骤: a.根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口的长度N; b.构造希望逼近的频率响应函数; c.计算h d(n); d.加窗得到设计结果h(n)=h d(n)w(n)。 (2)如果要求用窗函数法设计带通滤波器,且给定通带上、下截止频率为和,阻带上、下截止频率为和,试求理想带通滤波器的截止频率。 答:希望逼近的理想带通滤波器的截止频率分别为:

数字信号处理第七章

第七章数字滤波器设计 7.1:无限冲激响应滤波器的阶数的估计 Q7.1用MATTAB确定一个数字无限冲激响应低通滤波器所有四种类型的最低阶数。指标如下:40 kHz的抽样率,,4 kHz的通带边界频率,8 kHz的阻带边界频率,0.5 dB的通带波纹,40 dB的最小阻带衰减。评论你的结果。 答:标准通带边缘角频率Wp是: 标准阻带边缘角频率Ws是: 理想通带波纹Rp是0.5dB 理想阻带波纹Rs是40dB 1.使用这些值得到巴特沃斯低通滤波器最低阶数N=8,相应的标准通带边缘频率Wn是0.2469. 2.使用这些值得到切比雪夫1型低通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是0.2000. 3/使用这些值得到切比雪夫2型低通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是0.4000. 4.使用这些值得到椭圆低通滤波器最低阶数N=8,相应的标准通带边缘频率Wn是0.2000. 从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。 Q7.2用MATLAB确定一个数字无限冲激响应高通滤波器所有四种类型的最低阶数。指标如下:3500Hz的抽样率,1050 Hz的通带边界频率,600 Hz的阻带边界频率,1 dB 的通带波纹,50 dB的最小阻带衰减。评论你的结果 答:标准通带边缘角频率Wp是: 标准阻带边缘角频率Ws是: 理想通带波纹Rp是1dB 理想阻带波纹Rs是50dB 1.使用这些值得到巴特沃斯高通滤波器最低阶数N=8,相应的标准通带边缘频率Wn是0.5646.

2.使用这些值得到切比雪夫1型高通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是 0.6000. 3.使用这些值得到切比雪夫2型高通滤波器最低阶数N=5,相应的标准通带边缘频率Wn是 0.3429. 4.使用这些值得到椭圆低通滤波器最低阶数N=4,相应的标准通带边缘频率Wn是0.6000. 从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。 Q7.3用MATLAB确定一个数字无限冲激响应带通滤波器所有四种类型的最低阶数。指 标如下:7 kHz的抽样率,1.4 kHz和2.1 kHz的通带边界频率,1.05 kHz和2.45 kHz 的阻带边界频率,,0 .4 dB的通带波纹,50 dB的最小阻带衰减。评论你的结果。 答:标准通带边缘角频率Wp是: 标准阻带边缘角频率Ws是: 理想通带波纹Rp是0.4dB 理想阻带波纹Rs是50dB 1.使用这些值得到巴特沃斯带通滤波器最低阶数2N=18,相应的标准通带边缘频率Wn是[0.3835 0.6165]. 2.使用这些值得到切比雪夫1型带通滤波器最低阶数2N=12,相应的标准通带边缘频率Wn 是[0.4000 0.6000]. 3.使用这些值得到切比雪夫2型带通滤波器最低阶数2N=12,相应的标准通带边缘频率Wn 是[0.3000 0.7000]. 4.使用这些值得到椭圆带通滤波器最低阶数2N=8,相应的标准通带边缘频率Wn是[0.4000 0.6000]. 从以上结果中观察到椭圆滤波器的阶数最低,并且符合要求。 Q7.4用MATLAB确定一个数字无限冲激响应带阻滤波器所有四种类型的最低阶数。指标如下:12 kHz的抽样率,2.1 kHz和4.5 kHz的通带边界频率,2.7 kHz和3.9 kHz的阻带边界频率,0.6 dB的通带波纹,45 dB的最小阻带衰减。评论你的结果。

数字信号处理实验4-6

实验4 离散系统的变换域分析 一、实验目的 1、熟悉对离散系统的频率响应分析方法; 2、加深对零、极点分布的概念理解。 二、实验原理 离散系统的时域方程为 其变换域分析方法如下: 频域: 系统的频率响应为: Z域: 系统的转移函数为:

分解因式: , 其中和称为零、极点。 三、预习要求 1.在MATLAB中,熟悉函数tf2zp、zplane、freqz、residuez、zp2sos的使用,其中:[z, p,K]=tf2zp(num,den)求得有理分式形式的系统转移函数的零、极点;zplane(z,p)绘制零、极点分布图;h=freqz(num,den,w)求系统的单位频率响应;[r,p,k]=residuez (num,den)完成部分分式展开计算;sos=zp2sos(z,p,K)完成将高阶系统分解为2阶系统的串联。 2.阅读扩展练习中的实例,学习频率分析法在MATLAB中的实现; 3.编程实现系统参数输入,绘出幅度频率响应和相位响应曲线和零、极点分布图。 四、实验内容 求系统 的零、极点和幅度频率响应和相位响应。 解析: 【代码】 num=[0.0528 0.0797 0.1295 0.1295 0.797 0.0528]; den=[1 -1.8107 2.4947 -1.8801 0.9537 -0.2336]; [z,p,k]=tf2zp(num,den); disp('零点');disp(z); disp('极点');disp(p); disp('增益系数');disp(k); figure(1) zplane(num,den)

figure(2) freqz(num,den,128) 【图形】 -2 -1.5 -1 -0.500.5 1 1.5 -1.5 -1 -0.5 0.51 1.5 Real Part I m a g i n a r y P a r t 0.1 0.2 0.30.40.50.60.70.80.9 1 -800 -600-400-2000 Normalized Frequency (?π rad/sample) P h a s e (d e g r e e s ) 0.1 0.2 0.30.40.50.60.70.80.9 1 -40-2002040Normalized Frequency (?π rad/sample) M a g n i t u d e (d B ) 【结果】 零点 -1.5870 + 1.4470i

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验二FFT频谱分析

实验三:用FFT 对信号作频谱分析 10.3.1 实验指导 1.实验目的 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。 2. 实验原理 用FFT 对信号作频谱分析是学习数字信号处理的重要容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 3.实验步骤及容 (1)对以下序列进行谱分析。 ?? ? ??≤≤-≤≤-=?? ? ??≤≤-≤≤+==其它n n n n n n x 其它n n n n n n x n R n x ,07 4, 330,4)(,074, 830,1)() ()(3241 选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。 并进行对比、分析和讨论。 (2)对以下周期序列进行谱分析。 4() cos 4 x n n π = 5()cos(/4)cos(/8)x n n n ππ=+ 选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。 (3)对模拟周期信号进行谱分析 6() cos8cos16cos20x t t t t πππ=++ 选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。 4.思考题 (1)对于周期序列,如果周期不知道,如何用FFT 进行谱分析? (2)如何选择FFT 的变换区间?(包括非周期信号和周期信号)

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

数字信号处理实验六-时域采样与信号的重建

实验目的: 1.了解用MATLAB语言进行时域抽样与信号重建的方法 2.进一步加深对时域信号抽样与恢复的基本原理的理解 3.掌握采样频率的确定方法和内插公式的编程方法。 二.实验内容 1认真阅读并输入实验原理与方法中介绍的例子,观察输出波形曲线,理解每一条语句的含义。. 2.已知一个连续时间信号f(t)=sinc(t)。取最高有限带宽频率fm=1Hz。(1)分别显示原连续时间信号波形和Fm=fm、Fm=2fm、Fm=3fm三种情况下抽样信号的波形。 实验程序: dt=0.1; f0=1; T0=1/f0; fm=f0; Tm=1/fm; t=-2:dt:2; f=sinc(t); subplot(4,1,1),plot(t,f,'k'); axis([min(t) max(t) 1.1*min(f) 1.1*max(f)]); title('原连续信号和抽样信号'); for i=1:3; fs=i*fm; Ts=1/fs;

n=-2:Ts:2; f=sinc(n); subplot(4,1,i+1),stem(n,f,'filled','k'); axis([min(n) max(n) 1.1*min(f) 1.1*max(f)]); end 实验截图: (2)求解原连续信号波形和抽样信号所对应的幅度谱。实验程序: dt=0.1;t=-4:dt:4;

N=length(t);f=sinc(t);Tm=1;fm=1/Tm; wm=2*pi*fm;k=1:N; w1=k*wm/N; F1=f*exp(-j*t'*w1)*dt; subplot(4,1,1),plot(w1/(2*pi),abs(F1));grid axis([0 max(4*fm) 1.1*min(F1) 1.1*max(F1)]); for i=1:3; if i<= 2 c=0 ,else c=0.2,end fs=(4-i+c)*fm; Ts=1/fs; n=-4:Ts:4; f=sinc(n); N=length(n); wm=2*pi*fs; k=1:N; w=k*wm/N; F=f*exp(-j*n'*w)*Ts; subplot(4,1,5-i),plot(w/(2*pi),abs(F),'k');grid axis([0 max(4*fm) 1.1*min(F) 1.1*max(F)]); end 实验截图:

数字信号处理实验1

clc; clear; M=26;N=32;n=0:M; xa=0:M/2; xb=ceil(M/2)-1:-1:0; xn=[xa,xb]; Xk=fft(xn,512); Xk1=abs(Xk); X32k=fft(xn,32); X32k1=abs(X32k); x32n=ifft(X32k); X16k=X32k(1:2:N); X16k1=abs(X16k); x16n=ifft(X16k,N/2); figure(1); subplot(3,2,1); stem(Xk1); subplot(3,2,2); stem(X32k1); subplot(3,2,3); stem(x32n); subplot(3,2,4); stem(X16k1); subplot(3,2,5); stem(x16n); Lx=41;N=5;M=10; hn=ones(1,N);hn1=[hn zeros(1,Lx-N)]; n=0:Lx-1; xn=cos(pi*n/10)+cos(2*pi*n/5); yn=fftfilt(hn,xn,M); figure(1); subplot(3,1,1); stem(hn1); subplot(3,1,2); stem(xn); subplot(3,1,3); stem(yn);

clc; clear; n=0:31; A=3; y=A*exp((0.8+j*314)*n); subplot(2,1,1); stem(y); Az=[0.7 0.3]; Bz=[1 -0.8 -0.5]; subplot(2,1,2); zplane(Bz,Az);

数字信号处理实验报告 六

程序P6.1 % 程序 P6_1 % 将一个有理数传输函数 % 转换为因式形式 num = input('分子系数向量 = '); den = input('分母系数向量 = '); [z,p,k] = tf2zp(num,den); sos = zp2sos(z,p,k) Q6.1 使用程序p6.1,生成如下有限冲激响应传输函数的一个级联实现:H1(Z)=2+10Z^-1+23Z^-2+34Z^-3+31Z^-4+16Z^-5+4Z^-6 画出级联实现的框图。H1(Z)是一个线性相位传输函数吗? 分子系数向量 = [2,10,23,34,31,16,4] 分母系数向量 = [1,0,0,0,0,0,0] sos = 2.0000 6.0000 4.0000 1.0000 0 0 1.0000 1.0000 2.0000 1.0000 0 0 1.0000 1.0000 0.5000 1.0000 0 0 Y[k] 2 11 X[k] Q6.2 使用程序p6.1,生成如下有限冲激响应传输函数的一个级联实现:H2(Z)=6+31Z^-1+74Z^-2+102Z^-3+74Z^-4+31Z^-5+6Z^-6 画出级联实现的框图。H2(Z )是一个线性相位传输函数吗?只用4个乘法器生成H2(Z)的一个级联实现。显示新的级联结构的框图。 分子系数向量 = [6,31,74,102,74,31,6] 分母系数向量 = [1,0,0,0,0,0,0] sos =

6.0000 15.0000 6.0000 1.0000 0 0 1.0000 2.0000 3.0000 1.0000 0 0 1.0000 0.6667 0.3333 1.0000 0 0 Y[k] 6 11 X[k] Q6.3 使用程序 6.1生成如下因果无限冲激响应传输函数的级联实现: H1(Z)=(3+8Z^-1+12Z^-2+7Z^-3+2Z^-4-2Z^-5)/(16+24Z^-1+24Z^-2+14Z^-3+5Z^-4+Z^-5),画出级联实现的框图。 分子系数向量 = [3,8,12,7,2,-2] 分母系数向量 = [16,24,24,14,5,1] sos = 0.1875 -0.0625 0 1.0000 0.5000 0 1.0000 2.0000 2.0000 1.0000 0.5000 0.2500 1.0000 1.0000 1.0000 1.0000 0.5000 0.5000 Y [k ] 0.1875 11 11X [k ] Q6.4使用程序6.1生成如下因果无限冲激响应传输函数的级联实现:

数字信号处理实验二

实验二: 用FFT 作谱分析 实验目的 (1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。 (2) 熟悉FFT 算法原理和FFT 子程序的应用。 (3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法, 了解可能出现的分析误差及其原因, 以便在实际中正确应用FFT 。 ● 实验步骤 (1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。 (2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。 (3) 编制信号产生子程序, 产生以下典型信号供谱分析用: (4) 编写主程序。 下图给出了主程序框图, 供参考。 本实验提供FFT 子程序和通用绘图子程序。 (5) 按实验内容要求, 上机实验, 并写出实验报告。 1423()()1,03()8470403()3470 x n R n n n x n n n n n x n n n =?+≤≤? =-≤≤?? ?-≤≤?? =-≤≤???456()cos 4 ()sin 8 ()cos8cos16cos20x n n x n n x n t t t π π πππ===++

●实验内容 (1) 对2 中所给出的信号逐个进行谱分析。 (2) 令x(n)=x4(n)+x5(n),用FFT计算8 点和16 点离散傅里叶变换, X(k)=DFT[x(n)] (3) 令x(n)=x4(n)+jx5(n),重复(2)。 ●实验报告要求 (1) 简述实验原理及目的。 (2) 结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。 (3) 总结实验所得主要结论。 (4) 简要回答思考题。 Matlab代码: 对六个所给信号进行谱分析的主程序(对信号进行64点的FFT变换): clc;clear all; N=64; x1=Signal_x1(N);

matlab数字信号处理实验指导

电工电子实验中心实验指导书 数字信号处理 实验教程 二○○九年三月

高等学校电工电子实验系列 数字信号处理实验教程 主编石海霞周玉荣 攀枝花学院电气信息工程学院 电工电子实验中心

内容简介 数字信号处理是一门理论与实践紧密联系的课程,适当的上机实验有助于深入理解和巩固验证基本理论知识,了解并体会数字信号处理的CAD手段和方法,锻炼初学者用计算机和MATLAB语言及其工具箱函数解决数字信号处理算法的仿真和滤波器设计问题的能力。 本实验指导书结合数字信号处理的基本理论和基本内容设计了八个上机实验,每个实验对应一个主题内容,包括常见离散信号的MATLAB产生和图形显示、离散时间系统的时域分析、离散时间信号的DTFT、离散时间信号的Z变换、离散傅立叶变换DFT、快速傅立叶变换FFT及其应用、基于MATLAB的IIR和FIR数字滤波器设计等。此外,在附录中,还简单介绍了MATLAB的基本用法。每个实验中,均给出了实验方法和步骤,还有部分的MATLAB程序,通过实验可以使学生掌握数字信号处理的基本原理和方法。

目录 绪论 (1) 实验一常见离散信号的MATLAB产生和图形显示 (2) 实验二离散时间系统的时域分析 (6) 实验三离散时间信号的DTFT (9) 实验四离散时间信号的Z变换 (14) 实验五离散傅立叶变换DFT (18) 实验六快速傅立叶变换FFT及其应用 (24) 实验七基于MATLAB的IIR数字滤波器设计 (30) 实验八基于MATLAB的FIR数字滤波器设计 (33) 附录 (37) 参考文献 (40)

绪论 绪论 随着电子技术迅速地向数字化发展,《数字信号处理》越来越成为广大理工科,特别是IT领域的学生和技术人员的必修内容。 数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。数字信号处理的理论和技术一出现就受到人们的极大关注,发展非常迅速。而且随着各种电子技术及计算机技术的飞速发展,数字信号处理的理论和技术还在不断丰富和完善,新的理论和技术层出不穷。目前数字信号处理已广泛地应用在语音、雷达、声纳、地震、图象、通信、控制、生物医学、遥感遥测、地质勘探、航空航天、故障检测、自动化仪表等领域。 数字信号处理是一门理论和实践、原理和应用结合紧密的课程,由于信号处理涉及大量的运算,可以说离开了计算机及相应的软件,就不可能解决任何稍微复杂的实际应用问题。Matlab是1984年美国Math Works公司的产品,MATLAB 语言具备高效、可视化及推理能力强等特点,它的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础,是目前工程界流行最广的科学计算语言。早在20世纪90年代中期,MATLAB就己成为国际公认的信号处理的标准软件和开发平台。从1996年后,美国新出版的信号处理教材就没有一本是不用MATLAB的。 本实验指导书结合数字信号处理的基本理论和基本内容,用科学计算语言MATLAB实现数字信号处理的方法和实践,通过实验用所学理论来分析解释程序的运行结果,进一步验证、理解和巩固学到的理论知识,从而达到掌握数字信号处理的基本原理和方法的目的。

数字信号处理实验1概论

数字信号处理实验2 ——离散系统频率响应和零极点分布姓名:李倩 学号:13081403 班级:通信四班 指导教师:周争

一.实验原理 离散时间系统的常系数线性差分方程: ∑ak*y(n-k)=∑br*x(n-r) 求一个系统的频率响应: H(e^jw)=(∑br*e^(-jwr))/( ∑ak*e^(-jwk)) 其中的r和k都是从零开始的。H(e^jw)是以2pi为周期的连续周期复函数,将其表示成模和相位的形式: H(e^jw)=|H(e^jw)|*e^(jarg[H(e^jw)]) 其中|H(e^jw)|叫做振幅响应(幅度响应),频率响应的相位arg[H(e^jw)]叫做系统的相位响应。 将常系数线性差分方程的等式两边求FT,可以得到系统的频率响应与输入输出的频域关系式: H(e^jw)=Y(e^jw)/X(e^jw) 将上式中的e^jw用z代替,即可得系统的系统函数: H(z)=Y(z)/X(z) H(z)=∑h(n)*z^(-n)(n的取值从负无穷到正无穷) H(z)=( ∑br*z^(-r))/( ∑ak*z^(-k)) 将上式的分子、分母分别作因式分解,可得到LTI系统的零极点增益表达式为: H(z)=g∏(1-zr*z^(-1))/∏(1-pk*z^(-1)) 其中g为系统的增益因子,pk(k=1,2,3,…,N)为系统的极点,zr(r=1,2,3,…,M)为系统的零点。通过系统的零极点增益表达式,可

以判断一个系统的稳定性,对于一个因果的离散时间系统,若所有的极点都在单位圆内,则系统是稳定的。 二.实验内容 一个LTI离散时间系统的输入输出差分方程为 y(n)- 三.程序与运行结果 (1)编程求上述两个系统的输出,并分别画出系统的输入和输出波形 程序:

相关主题
文本预览
相关文档 最新文档