数字信号处理实验报告 - 图文

更新时间:2024-01-14 10:36:01 阅读量: 教育文库 文档下载

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

数字信号处理实验报告

学 院:信息工程学院 专业班级:生物医学工程111班

姓 名: 学 号:

数字信号处理实验报告

目录

1.实验一、系统响应及系统稳定性、时域采样与频域采样……………….2

2.实验二、用FFT对信号作频谱分析………………………………………..13

3.实验三、IIR数字滤波器设计及软件实现…………………………………19

4.实验四、FIR数字滤波器设计与软件实现…………………………………27

- 1 -

数字信号处理实验报告

南昌大学实验报告

实验一: 系统响应及系统稳定性 时域采样与频域采样

学生姓名: 学 号: 班级: 生医111班

实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.16 实验成绩:

一、实验目的

(1)掌握求系统响应的方法

(2)掌握时域离散系统的时域特性 (3)分析、观察及检验系统的稳定性 (4)时域采样理论与频域采样理论是数字信号处理中的重要理论。要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。

二、实验原理与方法

在时域中,本实验仅在时域求解。在计算机上用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响。

系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。

系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。

实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当n??时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。

注意在以下实验中均假设系统的初始状态为零。 时域采样定理的要点是:

a) 对模拟信号xa(t)以间隔T进行时域等间隔理想采样,形成的采样信号的频谱

?(j?)是原模拟信号频谱X(Xa期进行周期延拓。公式为:

j?)以采样角频率?s(?s?2?/T)为周

?1?(j?)?FT[x?a(t)]??Xa(j??jn?s) XaTn???b) 采样频率?s必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的

- 2 -

数字信号处理实验报告

频谱不产生频谱混叠。

利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。

?a(t)和模拟信号xa(t)之间的关系为: 理想采样信号x?a(t)?xa(t) xn?????(t?nT)

??对上式进行傅立叶变换,得到:

?(j?)??[x(t)?(t?nT)]e?j?tdt Xa?a???n??? =n??????????xa(t)?(t?nT)e?j?tdt

在上式的积分号内只有当t?nT时,才有非零值,因此:

?(j?)? Xan????xa(nT)e?j?nT

上式中,在数值上xa(nT)=x(n),再将???T代入,得到:

?(j?)? Xan????x(n)e??j?n

上式的右边就是序列的傅立叶变换X(ej?),即

?(j?)?X(ej?) Xa???T

上式说明理想采样信号的傅立叶变换可用相应的采样序列的傅立叶变换得到,只要将自变量

ω用?T代替即可。 频域采样定理的要点是:

ω

a) 对信号x(n)的频谱函数X(ej)在[0,2π]上等间隔采样N点,得到

XN(k)?X(ej?)

??2?kN , k?0,1,2,?,N?1

则N点IDFT[XN(k)]得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值区序列,公式为:

xN(n)?IDFT[XN(k)]N?[i????x(n?iN)]R?N(n)

b) 由上式可知,频域采样点数N必须大于等于时域离散信号的长度M(即N≥M),才

能使时域不产生混叠,则N点IDFT[XN(k)]得到的序列xN(n)就是原序列x(n),即

xN(n)=x(n)。如果N>M,xN(n)比原序列尾部多N-M个零点;如果N

- 3 -

数字信号处理实验报告

xN(n)=IDFT[XN(k)]发生了时域混叠失真,而且xN(n)的长度N也比x(n)的长度

M短,因此。xN(n)与x(n)不相同。

在数字信号处理的应用中,只要涉及时域或者频域采样,都必须服从这两个采样理论的要点。

对比上面叙述的时域采样原理和频域采样原理,得到一个有用的结论,这两个采样理论具有对偶性:“时域采样频谱周期延拓,频域采样时域信号周期延拓”。因此放在一起进行实验。

三、实验步骤及程序解答分析 1系统响应及系统稳定性

(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。 (2)给定一个低通滤波器的差分方程为

y(n)?0.05x(n)?0.05x(n?1)?0.9y(n?1) 输入信号 x1(n)?R8(n) x2(n)?u(n)

a) 分别求出系统对x1(n)?R8(n)和x2(n)?u(n)的响应序列,并画出其波形。 b) 求出系统的单位冲响应,画出其波形。 (3)给定系统的单位脉冲响应为

h1(n)?R10(n) h2(n)??(n)?2.5?(n?1)?2.5?(n?2)??(n?3) 用线性卷积法分别求系统h1(n)和h2(n)对x1(n)?R8(n)的输出响应,并画出波形。 (4)给定一谐振器的差分方程为

y(n)?1.8237y(n?1)?0.9801y(n?2)?b0x(n)?b0x(n?2) 令 b0?1/100.49,谐振器的谐振频率为0.4rad。

a) 用实验方法检查系统是否稳定。输入信号为u(n)时,画出系统输出波形。 b) 给定输入信号为

x(n)?sin(0.014n)?sin(0.4n) 求出系统的输出响应,并画出其波形。

四、实验程序及结果

(1)filter求系统响应函数,covn求线性卷积函数。 (2)程序:

- 4 -

数字信号处理实验报告

close all;clear all

%======内容 1:调用 filter 解差分方程,由系统对 u(n)的响应判断稳定性====== A=[1,-0.9];B=[0.05,0.05]; %系统差分方程系数向量 B 和 A xln=[1 1 1 1 1 1 1 1 zeros(1,50)]; %产生信号 x1(n)=R8(n) x2n=ones(1,128); %产生信号 x2(n)=u(n)

hn=impz(B,A,58); %求系统单位脉冲响应 h(n) subplot(2,2,1);y='h(n)';

tstem(hn,y); %调用函数 tstem 绘图 title('(a) 系统单位脉冲响应 h(n)');box on

y1n=filter(B,A,xln); %求系统对 x1(n)的响应 y1(n) subplot(2,2,2);y='y1(n)'; tstem(y1n,y);

title('(b) 系统对 R8(n)的响应 y1(n)');box on

y2n=filter(B,A,x2n); %求系统对 x2(n)的响应 y2(n) subplot(2,2,4);y='y2(n)'; tstem(y2n,y);

title('(c) 系统对 u(n)的响应 y2(n)');box on 结果:

(3)程序:

%===内容 2:调用 conv 函数计算卷积============================ x1n=[1 1 1 1 1 1 1 1 ]; %产生信号 x1(n)=R8(n) h1n=[ones(1,10) zeros(1,10)];

- 5 -

数字信号处理实验报告

h2n=[1 2.5 2.5 1 zeros(1,10)]; y21n=conv(h1n,x1n) y22n=conv(h2n,x1n); figure(2)

subplot(2,2,1);y='h1(n)';

tstem(h1n,y); %调用函数 tstem 绘图 title('(d) 系统单位脉冲响应 h1(n)');box on subplot(2,2,2);y='y21(n)'; tstem(y21n,y);

title('(e) h1(n)与 R8(n)的卷积 y21(n)');box on subplot(2,2,3);y='h2(n)';

tstem(h2n,y); %调用函数 tstem 绘图 title('(f) 系统单位脉冲响应 h2(n)');box on subplot(2,2,4);y='y22(n)'; tstem(y22n,y);

title('(g) h2(n)与 R8(n)的卷积 y22(n)');box on

结果:

(4)程序:

%=========内容 3:谐振器分析======================== un=ones(1,256); %产生信号 u(n)

- 6 -

数字信号处理实验报告

n=0:255;

xsin=sin(0.014*n)+sin(0.4*n); %产生正弦信号

A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49]; %系统差分方程系数向量 B 和 A y31n=filter(B,A,un); %谐振器对 u(n)的响应 y31(n) y32n=filter(B,A,xsin); %谐振器对 u(n)的响应 y31(n) figure(3)

subplot(2,1,1);y='y31(n)'; tstem(y31n,y);

title('(h) 谐振器对 u(n)的响应 y31(n)');box on subplot(2,1,2);y='y32(n)'; tstem(y32n,y);

title('(i) 谐振器对正弦信号的响应 y32(n)');box on

结果:

2时域采样与频域采样

(1)时域采样理论的验证。

给定模拟信号,xa(t)?Ae??tsin(?0t)u(t)

式中A=444.128,它的幅频特性曲线如图10.2.1 ?=502π,?0=502πrad/s,

- 7 -

数字信号处理实验报告

图10.2.1 xa(t)的幅频特性曲线

现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。

安照xa(t)的幅频特性曲线,选取三种采样频率,即Fs=1kHz,300Hz,200Hz。观测时间选Tp?50ms。

为使用DFT,首先用下面公式产生时域离散信号,对三种采样频率,采样序列按顺序用x1(n),x2(n),x3(n)表示。 x(n)?xa(nT)?Ae??nTsin(?0nT)u(nT)

因为采样频率不同,得到的x1(n),x2(n),x3(n)的长度不同, 长度(点数)用公式N?Tp?Fs计算。选FFT的变换点数为M=64,序列长度不够64的尾部加零。

X(k)=FFT[x(n)] , k=0,1,2,3,-----,M-1 式中k代表的频率为 ?k?2?k。 M要求: 编写实验程序,计算x1(n)、x2(n)和x3(n)的幅度特性,并绘图显示。观察分析频谱混叠失真。

(2)频域采样理论的验证。 给定信号如下:

?n?10?n?13? x(n)??27?n14?n?26

?0其它?编写程序分别对频谱函数X(e)?FT[x(n)]在区间[0,2?]上等间隔采样32 和16点,得到X32(k)和X16(k): X32(k)?X(e)j?j???2?k32 , k?0,1,2,?31

- 8 -

数字信号处理实验报告

X16(k)?X(e)j???k16?2 , ?k ?0,1 ,2,15再分别对X32(k)和X16(k)进行32点和16点IFFT,得到x32(n)和x16(n):

X[32k(3)2] x32(n)?IFFT ? n , ?0, 1,2,,31,15X[16k(1)6] ? n , ?0, 1,2, x16(n)?IFFTj?分别画出X(e)、X32(k)和X16(k)的幅度谱,并绘图显示x(n)、x32(n)和x16(n)的波形,进行对比和分析,验证总结频域采样理论。

程序及结果: (1)程序:

% 时域采样理论验证程序exp2a.m close all;clear all

Tp=64/1000; %观察时间Tp=64 微秒 %产生M 长采样序列x(n) % Fs=1000;T=1/Fs; Fs=1000;T=1/Fs; M=Tp*Fs;n=0:M-1;

A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*n*T).*sin(omega*n*T); Xk=T*fft(xnt,M); %M 点FFT[xnt)] yn='xa(nT)';subplot(3,2,1);

tstem(xnt,yn); %调用自编绘图函数tstem 绘制序列图 box on;title('(a) Fs=1000Hz'); ylabel('xa(nT)'); axis([0,60,-10,160]); k=0:M-1;fk=k/Tp;

subplot(3,2,2);plot(fk,abs(Xk));title('(a) T*FT[xa(nT)],Fs=1000Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))]) % Fs=300;T=1/Fs; Fs=300;T=1/Fs; M=Tp*Fs;n=0:M-1;

A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*n*T).*sin(omega*n*T); Xk=T*fft(xnt,M); %M 点FFT[xnt)] yn='xa(nT)';subplot(3,2,3);

tstem(xnt,yn); %调用自编绘图函数tstem 绘制序列图 box on;title('(a) Fs=300Hz'); ylabel('xa(nT)'); axis([0,19,-10,160]); k=0:M-1;fk=k/Tp;

- 9 -

数字信号处理实验报告

subplot(3,2,4);plot(fk,abs(Xk));title('(a) T*FT[xa(nT)],Fs=300Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))]) % Fs=200;T=1/Fs; Fs=200;T=1/Fs; M=Tp*Fs;n=0:M-1;

A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5; xnt=A*exp(-alph*n*T).*sin(omega*n*T); Xk=T*fft(xnt,M); %M 点FFT[xnt)] yn='xa(nT)';subplot(3,2,5);

tstem(xnt,yn); %调用自编绘图函数tstem 绘制序列图 box on;title('(a) Fs=200Hz'); ylabel('xa(nT)'); axis([0,12,-10,160]); k=0:M-1;fk=k/Tp;

subplot(3,2,6);plot(fk,abs(Xk));title('(a) T*FT[xa(nT)],Fs=200Hz'); xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])

结果:

(2)程序:

%频域采样理论验证程序exp2b.m close all;clear all

- 10 -

数字信号处理实验报告

M=27;N=32;n=0:M;

%产生M 长三角波序列x(n)

xa=0:floor(M/2); xb= ceil(M/2)-1:-1:0; xn=[xa,xb];

Xk=fft(xn,1024); 24 点FFT[x(n)], 用于近似序列x(n)的TF X32k=fft(xn,32) ;2 点FFT[x(n)]

x32n=ifft(X32k); 2 点IFFT[X32(k)]得到x32(n) X16k=X32k(1:2:N); %隔点抽取X32k 得到X16(K) x16n=ifft(X16k,N/2);  点IFFT[X16(k)]得到x16(n) subplot(3,2,2);stem(n,xn,'.');box on

title('(b) 三角波序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20]) k=0:1023;wk=2*k/1024; %

subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');

xlabel('\\omega/\\pi');ylabel('|X(e^j^\\omega)|');axis([0,1,0,200]) k=0:N/2-1;

subplot(3,2,3);stem(k,abs(X16k),'.');box on

title('(c) 16 点频域采样');xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200]) n1=0:N/2-1;

subplot(3,2,4);stem(n1,x16n,'.');box on

title('(d) 16 点IDFT[X_1_6(k)]');xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20]) k=0:N-1;

subplot(3,2,5);stem(k,abs(X32k),'.');box on

title('(e) 32 点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200]) n1=0:N-1;

subplot(3,2,6);stem(n1,x32n,'.');box on

title('(f) 32 点IDFT[X_3_2(k)]');xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20]) 结果:

- 11 -

数字信号处理实验报告

五、实验总结

系统响应及系统稳定性部分

实验内容(2)系统的单位冲响应、系统对x1(n)?R8(n)和x2(n)?u(n)的响应序列分别如图figure1的(a)、(b)和(c)所示;

实验内容(3)系统h1(n)和h2(n)对x1(n)?R8(n)的输出响应分别如图figure2 的(e)和(g)所示;

实验内容(4)系统对u(n)和x(n)?sin(0.014n)?sin(0.4n)的响应序列分别如图figure3 的(h)和(i)所示。由图(h)可见,系统对u(n)的响应逐渐衰减到零,所以系统稳定。由图(i)可见,系统对x(n)?sin(0.014n)?sin0(.4n)的稳态响应近似为正弦序列

sin(0.4n),这一结论验证了该系统的谐振频率是0.4 rad。

时域采样与频域采样部分:

实验内容(1)Fs=1000hz,300hz,200hz分别如图figure1的前三个图所示,x1(n), x2(n), x3(n) 分别如图figure1的后三个图所示 ;

实验内容(2)X(e)、X32(k)和X16(k)的幅度谱,x(n)、x32(n)和x16(n)的波形如图figure2所示;序列长度为26,所以采样点数N>26才可以恢复,16点DFT图由于存在时域混叠失真,无法恢复原序列,已经失去意义,而32点DFT图可以恢复x(n)。

j?

思考题

(1) 如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应? 如何求?

(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化,用前面第一个实验结果进行分析说明。

(3)如果序列x(n)的长度为M,希望得到其频谱X(e)在[0,2?]上的N点等间隔采样,当N

(1) 如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应。①对输入信号序列分段;②求单位脉冲响应h(n)与各段的卷积;③将各段卷积结果相加。

(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号的剧烈变化将被平滑,由实验内容(1)结果图10.1.1(a)、(b)和(c)可见,经过系统低通滤波使输入信号?(n)、

j?x1(n)?R8(n)和x2(n)?u(n)的阶跃变化变得缓慢上升与下降。

(3)因为x(n)长度M,而采样点数N

- 12 -

数字信号处理实验报告

南昌大学实验报告

实验二:用FFT对信号作频谱分析

学生姓名: 学 号: 班级: 生医111班

实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.18 实验成绩:

一、实验目的

学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT。 二、实验原理

用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2?/N,因此要求2?/N?D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

三、实验步骤及内容

(1)对以下序列进行谱分析。

x1(n)?R4(n)?n?1,? x2(n)??8?n,?0,??4?n,?x3(n)??n?3,?0,?0?n?34?n?7

其它n0?n?34?n?7其它n 选择FFT的变换区间N为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。 并进行对比、分析和讨论。

(2)对以下周期序列进行谱分析。

x4(n)?cos?4n

x5(n)?cos(?n/4)?cos(?n/8)

- 13 -

选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析。分别打印

数字信号处理实验报告

其幅频特性曲线。并进行对比、分析和讨论。 (3)对模拟周期信号进行谱分析

x6(t)?cos8?t?cos16?t?cos20?t

选择 采样频率Fs?64Hz,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。

四、实验程序及结果 (1)程序:

%第10 章实验3 程序exp3.m % 用FFT 对信号作频谱分析 clear all;close all

%实验内容(1)=================================================== x1n=ones(1,4); %产生序列向量x1(n)=R4(n)

M=8;xa=1:(M/2); xb=(M/2):-1:1; x2n=[xa,xb]; %产生长度为8 的三角波序列x2(n) x3n=[xb,xa];

X1k8=fft(x1n,8); %计算x1n 的8 点DFT X1k16=fft(x1n,16); %计算x1n 的16 点DFT X2k8=fft(x2n,8); %计算x1n 的8 点DFT X2k16=fft(x2n,16); %计算x1n 的16 点DFT X3k8=fft(x3n,8); %计算x1n 的8 点DFT X3k16=fft(x3n,16); %计算x1n 的16 点DFT %以下绘制幅频特性曲线 figure;

n1=0:1/4:2-1/4;

subplot(3,2,1);stem(n1,abs(X1k8),'.'); %绘制8 点DFT 的幅频特性图 title('(1a) 8 点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X1k8))]) n2=0:1/8:2-1/8;

subplot(3,2,2);stem(n2,abs(X1k16),'.'); %绘制16 点DFT 的幅频特性图 title('(1b)16 点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X1k16))]) n3=0:1/4:2-1/4;

subplot(3,2,3);stem(n3,abs(X2k8),'.'); %绘制8 点DFT 的幅频特性图 title('(2a) 8 点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X2k8))]) n4=0:1/8:2-1/8;

subplot(3,2,4);stem(n4,abs(X2k16),'.'); %绘制16 点DFT 的幅频特性图 title('(2b)16 点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X2k16))]) n5=0:1/4:2-1/4;

subplot(3,2,5);stem(n5,abs(X3k8),'.'); %绘制8 点DFT 的幅频特性图 title('(3a) 8 点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度');

- 14 -

数字信号处理实验报告

axis([0,2,0,1.2*max(abs(X3k8))]) n6=0:1/8:2-1/8;

subplot(3,2,6);stem(n6,abs(X3k16),'.'); %绘制16 点DFT 的幅频特性图 title('(3b)16 点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X3k16))]) 结果:

(2)程序:

N=8;n=0:N-1; ?T 的变换区间N=8 x4n=cos(pi*n/4);

x5n=cos(pi*n/4)+cos(pi*n/8);

X4k8=fft(x4n,8); %计算x4n 的8 点DFT X5k8=fft(x5n,8); %计算x5n 的8 点DFT N=16;n=0:N-1; ?T 的变换区间N=16 x4n=cos(pi*n/4);

x5n=cos(pi*n/4)+cos(pi*n/8);

X4k16=fft(x4n,16); %计算x4n 的16 点DFT X5k16=fft(x5n,16); %计算x5n 的16 点DFT figure(3)

n1=0:1/4:2-1/4;

subplot(2,2,1);stem(n1,abs(X4k8),'.'); %绘制8 点DFT 的幅频特性图

- 15 -

数字信号处理实验报告

title('(4a) 8 点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X4k8))]) n2=0:1/8:2-1/8;

subplot(2,2,3);stem(n2,abs(X4k16),'.'); %绘制16 点DFT 的幅频特性图 title('(4b)16 点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X4k16))]) n3=0:1/4:2-1/4;

subplot(2,2,2);stem(n3,abs(X5k8),'.'); %绘制8 点DFT 的幅频特性图 title('(5a) 8 点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X5k8))]) n4=0:1/8:2-1/8;

subplot(2,2,4);stem(n4,abs(X5k16),'.'); %绘制16 点DFT 的幅频特性图 title('(5b)16 点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X5k16))]) 结果:

(3)程序: figure(4)

Fs=64;T=1/Fs;

N=16;n=0:N-1; ?T 的变换区间N=16

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)16 点采样 X6k16=fft(x6nT); %计算x6nT 的16 点DFT

- 16 -

数字信号处理实验报告

X6k16=fftshift(X6k16); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率F

k=-N/2:N/2-1;fk=k*F; %产生16 点DFT 对应的采样点频率(以零频率为中心) subplot(3,1,1);stem(fk,abs(X6k16),'.');box on %绘制8 点DFT 的幅频特性图 title('(6a) 16 点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))]) N=32;n=0:N-1; ?T 的变换区间N=16

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)32 点采样 X6k32=fft(x6nT); %计算x6nT 的32 点DFT X6k32=fftshift(X6k32); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率F

k=-N/2:N/2-1;fk=k*F; %产生16 点DFT 对应的采样点频率(以零频率为中心) subplot(3,1,2);stem(fk,abs(X6k32),'.');box on %绘制8 点DFT 的幅频特性图 title('(6b) 32 点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))]) N=64;n=0:N-1; ?T 的变换区间N=16

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)64 点采样 X6k64=fft(x6nT); %计算x6nT 的64 点DFT X6k64=fftshift(X6k64); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率F

k=-N/2:N/2-1;fk=k*F; %产生16 点DFT 对应的采样点频率(以零频率为中心) subplot(3,1,3);stem(fk,abs(X6k64),'.'); box on%绘制8 点DFT 的幅频特性图 title('(6a) 64 点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))]) 结果:

- 17 -

数字信号处理实验报告

附加调用子程序: function tstem(x,y) stem(x,'.') title(y)

五、实验总结

实验内容(1)x1(n), x2(n), x3(n)8点DFT和16点DFT分别如图figure1的(1a)、(2a)、(3a)、(1b) )、(2b) )、(3b)所示.;

实验内容(2)x4(n), x5(n) 8点DFT和16点DFT分别如图figure3所示;

实验内容(3)x8(n)的16点, 32点,64点DFT分别如图figure4所示,若Fs=64HZ,解得周期T=32,所以N=16点为不完全频谱,而N=32,64的为正确频谱,并且结果一样;

思考题

(1)若预先不知道周期,可先对N点计算,在计算2N点FFT,如果两者主谱差别满足分析误差要求,则一其中一个作为其频谱,否则继续加倍N点,直到前后两次分析主谱差别满足分析误差要求,取最后长度。

(2)若已知信号周期,只需截取一个周期进行DFT即可,因为截取多倍的周期只会改变幅度的倍数,不影响研究目的。若不知信号周期,可先试取区间N,在增加N倍数,直到直到前后两次分析主谱差别满足分析误差要求,取最后长度。

(3)相同,因为x2(n), x3(n)的周期都为8,取一个周期可以研究出幅度特性,三角波和V形波最高值与区间一样,所以8点幅频特性相同。16点DFT不相同,因为对x2(n), x3(n)的16点循环移位补零后取主值区间不同。

- 18 -

数字信号处理实验报告

南昌大学实验报告

实验三IIR数字滤波器设计及软件实现

学生姓名: 学 号: 班级: 生医111班

实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.18 实验成绩:

一、实验目的

(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;

(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具

fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。

(3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 二、实验原理

设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。

本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 三、 实验内容及步骤

(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。

(2)要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB。

四、实验程序及结果 (1)程序: clear all;close all;

Fs=10000;T=1/Fs; %采样频率 N=1600;Tp=N*T;

t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

- 19 -

数字信号处理实验报告

%调用信号产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st st=mstg;

%低通滤波器设计与实现 fp=280;fs=450;

wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; ? 指标(低通滤波器的通、阻带边界频)

[M,wpo]=ellipord(wp,ws,rp,rs); %调用ellipord 计算椭圆DF 阶数N 和通带截止频率wp [B,A]=ellip(M,rp,rs,wpo); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A y1t=filter(B,A,st);%滤波器软件实现 fk=0:0.001:0.5; wk=2*pi*fk;

Hz1=freqz(B,A,wk);% 低通滤波器设计与实现绘图部分 fxt1=fft(y1t,N);

figure(2);subplot(3,1,1);

plot(wk/pi,20*log10(abs(Hz1))); %调用绘图函数myplot 绘制损耗函数曲线 yt='y_1(t)';

subplot(3,1,2);plot(t,y1t); %调用绘图函数tplot 绘制滤波器输出波形 subplot(3,1,3);stem(f,abs(fxt1)/max(abs(fxt1)));grid on;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);

%带通滤波器设计与实现

fpl=440;fpu=560;fsl=275;fsu=900;

wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;

[M,wp]=ellipord(wp,ws,rp,rs); %调用ellipord 计算椭圆DF 阶数N 和通带截止频率wp [B,A]=ellip(M,rp,rs,wp); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A y2t=filter(B,A,st); %滤波器软件实现 Hz2=freqz(B,A,wk); fxt2=fft(y2t,N);

figure(3);subplot(3,1,1);% 带通滤波器设计与实现绘图部分

plot(wk/pi,20*log10(abs(Hz2))); %调用绘图函数myplot 绘制损耗函数曲线 yt='y_2(t)';

subplot(3,1,2);plot(t,y2t); %调用绘图函数tplot 绘制滤波器输出波形 subplot(3,1,3);stem(f,abs(fxt2)/max(abs(fxt2)));grid on;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);

%高通滤波器设计与实现 fp=890;fs=600;

wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; ? 指标(低通滤波器的通、阻带边界频) [M,wp]=ellipord(wp,ws,rp,rs); %调用ellipord 计算椭圆DF 阶数N 和通带截止频率wp [B,A]=ellip(M,rp,rs,wp,'high'); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A y3t=filter(B,A,st); %滤波器软件实现 wk=2*pi*fk;

Hz3=freqz(B,A,wk);% 低通滤波器设计与实现绘图部分 fxt3=fft(y3t,N);

figure(4);subplot(3,1,1);

- 20 -

数字信号处理实验报告

plot(wk/pi,20*log10(abs(Hz3))); %调用绘图函数myplot 绘制损耗函数曲线 yt='y_3(t)';

subplot(3,1,2);plot(t,y3t); %调用绘图函数tplot 绘制滤波器输出波形 subplot(3,1,3);stem(f,abs(fxt3)/max(abs(fxt3)));grid on;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);

结果:

- 21 -

数字信号处理实验报告

- 22 -

数字信号处理实验报告

附加调用子程序1: function st=mstg

%产生信号序列向量st,并显示st 的时域波形和频谱

%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600 N=1600; %N 为信号st 的长度。

Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz,Tp 为采样时间 t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

fc1=Fs/10; %第1 路调幅信号的载波频率fc1=1000Hz,

fm1=fc1/10; %第1 路调幅信号的调制信号频率fm1=100Hz fc2=Fs/20; %第2 路调幅信号的载波频率fc2=500Hz

fm2=fc2/10; %第2 路调幅信号的调制信号频率fm2=50Hz fc3=Fs/40; %第3 路调幅信号的载波频率fc3=250Hz

fm3=fc3/10; %第3 路调幅信号的调制信号频率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1 路调幅信号 xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2 路调幅信号 xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3 路调幅信号 st=xt1+xt2+xt3; %三路调幅信号相加 fxt=fft(st,N); %计算信号st 的频谱

%====以下为绘图部分,绘制st 的时域波形和幅频特性曲线==================== subplot(3,1,1)

- 23 -

数字信号处理实验报告

plot(t,st);grid;xlabel('t/s');ylabel('s(t)');

axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形') subplot(3,1,2)

stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);

xlabel('f/Hz');ylabel('幅度')

附加调用子程序2: function st=mstgz

%产生信号序列向量st,并显示st 的时域波形和频谱

%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600 N=1600; %N 为信号st 的长度。

Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz,Tp 为采样时间 t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;

fc1=Fs/10; %第1 路调幅信号的载波频率fc1=1000Hz,

fm1=fc1/10; %第1 路调幅信号的调制信号频率fm1=100Hz fc2=Fs/20; %第2 路调幅信号的载波频率fc2=500Hz

fm2=fc2/10; %第2 路调幅信号的调制信号频率fm2=50Hz fc3=Fs/40; %第3 路调幅信号的载波频率fc3=250Hz

fm3=fc3/10; %第3 路调幅信号的调制信号频率fm3=25Hz

xt1=(2+cos(2*pi*fm1*t)).*cos(2*pi*fc1*t); %产生第1 路调幅信号 xt2=(2+cos(2*pi*fm2*t)).*cos(2*pi*fc2*t); %产生第2 路调幅信号 xt3=(2+cos(2*pi*fm3*t)).*cos(2*pi*fc3*t); %产生第3 路调幅信号 st=xt1+xt2+xt3; %三路调幅信号相加 fxt=fft(st,N); %计算信号st 的频谱

%====以下为绘图部分,绘制st 的时域波形和幅频特性曲线==================== subplot(3,1,1)

plot(t,st);grid;xlabel('t/s');ylabel('s(t)');

axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形') subplot(3,1,2)

stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);

xlabel('f/Hz');ylabel('幅度')

五、实验程序框图如图所示,。

- 24 -

数字信号处理实验报告

调用函数mstg产生st,自动绘图 显示st的时域波形和幅频特性曲线 调用ellipord和ellip分别设计三个椭圆滤波器,并绘图显示其幅频响应特性曲线。 调用filter,用三个滤波器分别对信号st进行滤波,分离出三路不同载波频率的调幅信号y1(n)、y2(n)和y3(n) 绘图显示y1(n)、y2(n)和y3(n)的时域波形和幅频特性曲线 End

实验4程序框图

滤波器参数选取

观察图可知,三路调幅信号的载波频率分别为250Hz、500Hz、1000Hz。带宽(也可以由信号产生函数mstg清单看出)分别为50Hz、100Hz、200Hz。所以,分离混合信号st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的指标参数选取如下:

对载波频率为250Hz的条幅信号,可以用低通滤波器分离,其指标为

带截止频率

fp?280Hz,通带最大衰减?p?0.1dBdB;

?450Hz,阻带最小衰减?s?60dBdB,

阻带截止频率fs对载波频率为500Hz的条幅信号,可以用带通滤波器分离,其指标为 带截止频率

fpl?440Hz,fpu?560Hz,通带最大衰减?p?0.1dBdB;

?275Hz,fsu?900Hz,Hz,阻带最小衰减?s?60dBdB,

阻带截止频率fsl对载波频率为1000Hz的条幅信号,可以用高通滤波器分离,其指标为 带截止频率

fp?890Hz,通带最大衰减?p?0.1dBdB;

?550Hz,阻带最小衰减?s?60dBdB,

阻带截止频率fs说明:(1)为了使滤波器阶数尽可能低,每个滤波器的边界频率选择原则是尽量使滤波

器过渡带宽尽可能宽。

(2)与信号产生函数mstg相同,采样频率Fs=10kHz。

- 25 -

数字信号处理实验报告

(3)为了滤波器阶数最低,选用椭圆滤波器。

六、实验总结

由figure2, figure3, figure4图可见,三个分离滤波器指标参数选取正确,算耗函数曲线达到所给指标。分离出的三路信号y1(n),y2(n)和y3(n)的波形是抑制载波的单频调幅波。

思考题 (1)三路调幅信号的载波频率分别为250Hz、500Hz、1000Hz, 带宽分别为50Hz、100Hz、200Hz。 (2) 分析发现,st的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25×400Hz,即在25Hz的正弦波的1个周期中采样400点。所以,当N为400的整数倍时一定为st的整数个周期。因此,采样点数N=800和N=2000时,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,不是400的整数倍,不能得到6根理想谱线。

(3)增加载波成分后st的波形发生变化,且其谱线会增加,谱线的幅值也会发生变化。

AM信号

抑制载波调幅信号

- 26 -

数字信号处理实验报告

南昌大学实验报告

实验四:FIR数字滤波器设计与软件实现

学生姓名: 学 号: 班级: 生医111班

实验类型:□ 验证 □ 综合 ■ 设计 □ 创新 实验日期: 2013.12.23 实验成绩:

一、实验目的

(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

(2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。

(4)学会调用MATLAB函数设计与实现FIR滤波器。 二、 实验内容及步骤

(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数字滤波器。并比较两种设计方法设计的滤波器阶数。

2采样频率Fs=1000Hz,采样周期T=1/Fs; ○

3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻○

- 27 -

数字信号处理实验报告

带截至频率fs=150Hz,换算成数字频率,通带截止频率?p?2?fp??0.24?,通带最大衰为0.1dB,阻带截至频率?s?2?fs??0.3?,阻带最小衰为60dB。]

4实验程序框图如图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 实验程序框图

三、实验程序及结果 (1)程序: clear all;close all;

%==调用xtg 产生信号xt, xt 长度N=1000,并显示xt 及其频谱,========= Fs=1000;

N=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; k=0:N-1;f=k/Tp; N=1000;xt=xtg(N);

fp=120; fs=150;Rp=0.2;As=60;Fs=1000; % 输入给定指标 % (1) 用窗函数法设计滤波器

wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi 归一化) B=2*pi*(fs-fp)/Fs; %过渡带宽度指标

Nb=ceil(11*pi/B); %blackman 窗的长度Nb hn1=fir1(Nb-1,wc,blackman(Nb));

- 28 -

数字信号处理实验报告

Hw=abs(fft(hn1,1024)); % 求设计的滤波器频率特性 ywt=fftfilt(hn1,xt,N); %调用函数fftfilt 对xt 滤波

%以下为用窗函数法设计法的绘图部分(滤波器损耗函数,滤波器输出信号波形)

figure(2)

f=[0:1023]/1024; wk=2*pi*f; figure(2)

subplot(3,1,1) ;

plot(wk/pi,20*log10(Hw/max(Hw)));grid;title('(a) 低通滤波器幅频特性') axis([0,1,-120,20]); xlabel('ω/π');ylabel('幅度')

t=[0:N-1]/Fs;Tp=N/Fs; subplot(3,1,2); plot(t,ywt);grid;

axis([0,Tp/2,-1,1]);xlabel('t/s');ylabel('y_w(t)');

subplot(3,1,3);

fst1=fft(ywt,N);k=0:N-1;f=k/Tp;

plot(f,abs(fst1)/max(abs(fst1)));grid;title('(b) 信号加噪声的频谱') axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')

% (2) 用等波纹最佳逼近法设计滤波器

fb=[fp,fs];m=[1,0]; % 确定remezord 函数所需参数f,m,dev dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];

[Ne,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez 函数所需参数 hn2=remez(Ne,fo,mo,W); % 调用remez 函数进行设计 Hw=abs(fft(hn2,1024)); % 求设计的滤波器频率特性 yet=fftfilt(hn2,xt,N); % 调用函数fftfilt 对xt 滤波

%以下为用等波纹设计法的绘图部分(滤波器损耗函数,滤波器输出信号yw(nT)波形)

figure(3);

f=[0:1023]/1024; wk=2*pi*f; subplot(3,1,1);

plot(wk/pi,20*log10(Hw/max(Hw)));grid;title('(c) 低通滤波器幅频特性') axis([0,1,-80,10]); xlabel('ω/π');ylabel('幅度') subplot(3,1,2);plot(t,yet);grid;

axis([0,Tp/5,-1,1]);xlabel('t/s');ylabel('y_e(t)'); title('(d) 滤除噪声后的信号波形') subplot(3,1,3);

fst2=fft(yet,N);k=0:N-1;f=k/Tp;

plot(f,abs(fst2)/max(abs(fst2)));grid;title('(b) 信号加噪声的频谱') axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')

- 29 -

数字信号处理实验报告

结果:

- 30 -

数字信号处理实验报告

附加调用子程序: function xt=xtg(N)

%实验五信号x(t)产生,并显示信号的幅频特性曲线

%xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T;

fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10; mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0 ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fc xt=mt.*ct; %相乘产生单频调制信号xt nt=2*rand(1,N)-1; %产生随机噪声nt

%=======设计高通滤波器hn,用于滤除噪声nt 中的低频成分,生成高通噪声======= fp=150; fs=200;Rp=0.1;As=70; % 滤波器指标

fb=[fp,fs];m=[0,1]; % 计算remezord 函数所需参数f,m,dev dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];

[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez 函数所需参数

hn=remez(n,fo,mo,W); % 调用remez 函数进行设计,用于滤除噪声nt 中的低频成分 yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高通噪声yt xt=xt+yt; %噪声加信号

fst=fft(xt,N);k=0:N-1;f=k/Tp;

subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');

- 31 -

数字信号处理实验报告

axis([0,Tp/5,min(xt),max(xt)]);title('(a) 信号加噪声波形')

subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) 信号加噪声的频谱') axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')

四、实验总结

用窗函数法设计滤波器,滤波器长度 Nb=184。滤波器损耗函数和滤波器输出yw(nT)如图figure2所示。

用等波纹最佳逼近法设计滤波器,滤波器长度 Ne=83。滤波器损耗函数和滤波器输出ye(nT)如图figure3所示。

两种方法设计的滤波器都能有效地从噪声中提取信号,但等波纹最佳逼近法设计的滤波器阶数低得多,当然滤波实现的运算量以及时延也小得多,从图figure2和figure3可以直观地看出时延差别。

思考题

(1) 步骤如下:1.根据指标要求选择窗函数类型,并估计窗口长度N; 2.构造希望逼近的频率响应函数Hd(expjw); 3.计算hd(n); 4.加窗得到设计结果。

(2) 希望逼近的理想带通滤波器的截止频率?cl和?cu分别为:

?cl?(?sl??pl)/2, ?cu?(?su??pu)/2

(3)解释为什么对同样的技术指标,用等波纹最佳逼近法设计的滤波器阶数低? ①用窗函数法设计的滤波器,如果在阻带截止频率附近刚好满足,则离开阻带截止频率越远,阻带衰减富裕量越大,即存在资源浪费;

② 几种常用的典型窗函数的通带最大衰减和阻带最小衰减固定,且差别较大,又不能分别控制。所以设计的滤波器的通带最大衰减和阻带最小衰减通常都存在较大富裕。如本实验所选的blackman窗函数,其阻带最小衰减为74dB,而指标仅为60dB。

③ 用等波纹最佳逼近法设计的滤波器,其通带和阻带均为等波纹特性,且通带最大衰减和阻带最小衰减可以分别控制,所以其指标均匀分布,没有资源浪费,所以期阶数低得多。

- 32 -

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

Top