DSP实验报告B13011025讲解 下载本文

Input Sequence420-2-4051015202530Time index nOutput Sequence35404550AmplitudeAmplitude420-2-4051015202530Time index n35404550

答:产生的输出序列和预料是不一样的。

Q8.14程序P8.4设计了什么类型的滤波器?其指标是什么?滤波器的阶数是多少?为了验证仿真,需计算多少个冲激响应样本?仿真是正确的吗?

FIR低通滤波器,指标为?p?[0,0.3?],?s?[0.5?,?],阶数为9,为了验证仿真需计算的冲激响应样本为10个。仿真正确。

实验名称:数字滤波器的设计

实验目的和任务:

(1)用窗口法设计满足指标的FIR数字滤波器。 (2)以模拟低通滤波器为原型设计IIR数字滤波器

(3)选定一个信号滤波问题,设计数字滤波器,验证滤波效果。

实验内容:

阅读Page 91-93相应的函数和程序P7.1,完成Q7.1, Q7.5,Q7.6 阅读Page 94-96相应的函数, 完成Q7.9,Q7.13,Q7.14,Q7.20 sinc函数的功能与使用,可通过help查询:

Matlab-Help-Search-Function Name-输入sinc 实验指导书Page 49有sinc函数使用实例

幅度响应的分析:

通过DTFT定义计算幅度响应 通过freqz函数分析

实验过程与结果分析:…参见实验一格式…

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

解:FT=40kHz,Fp=4kHz,Fs=8kHz,Rp=0.5dB,Rs=40dB。

?p?2?FpFT2??4?103??0.2? 340?10Wp??p?0.2 ?2?Fs2??8?103?s???0.4? 3FT40?10Ws??s?0.4 ?(1)巴特沃兹滤波器:

[N,Wn]=buttord(0.2,0.4,0.5,40)

运行结果: N = 8 Wn =

0.2469

答:最低阶数是8.

(2)切比雪夫1型滤波器:

[N,Wn]=cheb1ord(0.2,0.4,0.5,40)

运行结果: N =

5 Wn =

0.2000

答:最低阶数是5.

(3)切比雪夫2型滤波器:

[N,Wn]=cheb2ord(0.2,0.4,0.5,40)

运行结果: N = 5 Wn =

0.4000

答:最低阶数是5. (4)椭圆滤波器:

[N,Wn]=ellipord(0.2,0.4,0.5,40)

运行结果: N = 4 Wn =

0.2000

答:最低阶数是4.

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

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('Numerator Coefficients are ');disp(num); disp('Denominator Coefficients are ');disp(den); [g, w] = gain(num,den); plot(w/pi,g);grid axis([0 1 -60 5]);

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

title('Gain Response of a Butterworth Bandstop Filter');

运行结果:

Numerator Coefficients are

0.0493 0.0000 0.2465 0.0000 0.4930 0.0000 0.4930 0.0000 0.2465 0.0000 0.0493 Denominator Coefficients are

1.0000 0.0000 -0.0850 0.0000 0.6360 0.0000 -0.0288 0.0000 0.0561 0.0000 -0.0008

0.0493?0.2465z?2?0.493z?4?0.493z?6?0.2465z?8?0.0493z?10表达式:H(z)?

1?0.085z?2?0.636z?4?0.0288z?6?0.0561z?8?0.0008z?10指标:?p1?0.2?,?p2?0.8?,?s1?0.4?,?s2?0.6?,Rp?0.4dB,Rs?50dB。

编写的MATLAB程序如下(计算未畸变的相位响应及群延迟响应):

% Program Q7_6

Ws = [0.4 0.6]; Wp = [0.2 0.8]; Rp = 0.4; Rs = 50; % Estimate the Filter Order

[N1, Wn1] = buttord(Wp, Ws, Rp, Rs); % Design the Filter

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

% Find the frequency response; find and plot unwrapped phase wp = 0:pi/1023:pi; wg = 0:pi/511:pi; Hz = freqz(num,den,wp); Phase = unwrap(angle(Hz)); figure(1);

plot(wp/pi,Phase); grid;

% axis([0 1 a b]);

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

title('Unwrapped Phase Response of a Butterworth Bandstop Filter'); % Find and plot the group delay GR = grpdelay(num,den,wg); figure(2); plot(wg/pi,GR); grid;

%axis([0 1 a b]);

xlabel('\\omega /\\pi'); ylabel('Group Delay (sec)');