数字信号处理综合实验报告[精品文档]

数字信号处理综合实验报告[精品文档]
数字信号处理综合实验报告[精品文档]

综合实验

1.实验目的

能综合利用信号处理的理论和Matlab工具实现对信号进行分析和处理

(1)熟练对信号进行时域和频域分析;

(2)熟练进行滤波器设计和实现;

(3)掌握对信号的滤波处理和分析。

2.实验原理

设计并实现滤波器对信号进行分析和处理是信号处理课程学习的主要内容。通过对信号进行频谱分析,能发现信号的频率特性,以及组成信号的频率分量。对信号进行滤波处理,能改善信号的质量,或者为数据处理(如传输,分类等)提供预处理,等。本次实验是对特定信号进行分析并进行滤波处理,需要综合应用之前的实验内容,主要有以下几个方面。(1)离散时间信号与系统的时域分析

Matlab为离散时间信号与系统的分析提供了丰富且功能强大的计算函数和绘图分析函数,便于离散时间信号和系统的时域表示和分析。

(2)信号的频域分析

信号处理课程主要学习了离散信号和系统的频域分析方法与实现,以及滤波器的设计与实现。离散信号与系统的频域分析包括DTFT、DFT、Z变换等,FFT则是DFT的快速实现。用Matlab分析信号的频谱可以用freqz函数或者FFT函数。

(3)滤波器设计

滤波器的设计首先要确定滤波器的类型,即低通、高通、带通还是带阻。滤波器的边缘频率可以通过对信号的频谱分析得到,滤波器的幅度指标主要有阻带最小衰减As和通带最大衰减Ap。一般来说,As越大,对截止通过的频率分量的衰减越大;Ap越小,对需要保留的频率分量的衰减越小。因此,As越大,Ap越小,滤波器的性能越好,但随之而来,滤波器的阶数越大,实现的代价(包括计算时间和空间)越大。由此,滤波器的设计需要对滤波器性能和实现代价进行均衡考虑。

另外根据冲激响应的长度可以分为IIR和FIR两种类型。两种类型的滤波器各有特点。用FIR滤波器可以设计出具有严格线性相位的滤波器,但在满足同样指标的条件下,FIR滤波器的阶数高于IIR滤波器。Matlab为各种类型的滤波器的设计提供了丰富的函数,可以借助这些函数方便地设计出符合要求地滤波器。

3. 实验内容及步骤

已知长度为100的离散信号x,主要由三种不同频率的信号构成。请对x进行分析,并设计相应的滤波器,得到构成x的三种信号。

实验步骤:

调用离散信号x:load('C:\Users\zhongxin\Desktop\x.mat')

(1)对信号进行时域和频域分析,确定信号x的频率分量。

程序:

subplot(2,1,1); stem(x); %时域分析

title('time domain of x ');

[X,w]=freqz(x); %频域分析

subplot(2,1,2);plot(w/pi,abs(X));

title('freqency domain of x ')

结果:

由信号的频谱可知,离散信号x的频率分量为:0.2、0.5以及0.9。

(2)针对每个组成信号,设计滤波器。包括确定滤波器类型、滤波器指标等。

对于频率分量为0.2的信号,应设计一个低通滤波器,wp=0.35pi, ws=0.45pi, rp=1, rs=60。

对于频率分量为0.5的信号,应设计一个带通滤波器。

对于频率分量为0.9的信号,应设计一个高通滤波器,wp=0.8pi, ws=0.75pi, rp=1, rs=60。

(3)用Matlab实现滤波器。

设计低通滤波器:

程序:

rp=1;rs=60

wp=0.35*pi;ws=0.45*pi; %通带和阻带的截止频率

Fs=1; % let Fs=1

wap=tan(wp/2);was=tan(ws/2); %预畸变公式

[n,wn]=buttord(wap,was,rp,rs,'s'); %设计等效模拟滤波器

[z,p,k]=buttap(n);

[bp,ap]=zp2tf(z,p,k); %设计模拟低通原型滤波器

[bs,as]=lp2lp(bp,ap,wap); %将模拟低通原型滤波器转换为一般低通滤波器

[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换,由模拟低通滤波器得到数字滤波器,ba,bz为传输函数分子分母的系数

[h,w]=freqz(bz,az,256,Fs); %H(Z)的幅频响应

plot(w,abs(h));

title('frequence of filter');

grid on;

figure;

y=filter(bz,az,x); %验证

[y1,w]=freqz(y);%频域表示

subplot(3,1,1);plot(w/pi,abs(y1)); %低通滤波器的输出

title('x frequency domain out of lowpass filter');

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

title('yi zhi xin hao x');

subplot(3,1,3);stem(y); title('the output signal y');

分析:通过滤波得到了略有衰减的清晰的低频信号。

设计高通滤波器

程序:

wp=0.8*pi;rp=1; %参数的设置

ws=0.75*pi;rs=60;

Fs=1;

wap=tan(wp/2);was=tan(ws/2); %预畸变公式

[n,wn]=buttord(wap,was,rp,rs,'s'); %设计等效模

拟滤波器

[z,p,k]=buttap(n); %n为滤波器的阶数

[bp,ap]=zp2tf(z,p,k); %设计模拟低通原型滤波器[bs,as]=lp2hp(bp,ap,wap);%将模拟低通原型滤波器转换为高通滤波器

[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换[h,w]=freqz(bz,az,256,Fs);

plot(w,abs(h)); %滤波器的频响

title('frequence of filter');

grid on;

figure;

y=filter(bz,az,x); %验证滤波器的特性

[y1,w]=freqz(y);

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

title('yi zhi xin hao x');

subplot(3,1,2);stem(y);

title('the output of filter y');

subplot(3,1,3);plot(w/pi,abs(y1));

title('frequence or the output');

分析:通过滤波得到了清晰的高频信号

设计带通滤波器:

程序:

wn=[0.3,0.6]; %cut-off frequency 的范围

b=fir1(34,wn,'bandpass'); %带阻滤波器默认是函数自动取hamming窗

[h,t]=freqz(b,1,512);

impz(b,1); %查看冲激响应

grid on;figure;

freqz(b,1,512); %窗函数的频率响应

grid on;

figure;

y=filter(b,1,x); %滤波器的验证

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

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

[z,w]=freqz(y);

subplot(3,1,3);plot(w/pi,abs(z));

结果:

分析:通过滤波,很好的从复合信号X中得到了稳定且基本没有衰减的中频信号。

实验总结:

通过本实验,我充分掌握了滤波器的分析,设计过程,对滤波器在时域和频域的图形有了一定的了解,会使用MATLAB分析信号的频谱情况,并设计相应的滤波器滤出有用信号。信号处理实验是对信号理论课程的实践和补充,能让同学们更好的理解和掌握课本的枯燥的理论。我通过实验对课本里没认识清楚的部分,有了一个认识,让我去补充学习相关重要的理论知识,更好的掌握了本科程的知识。

相关主题
相关文档
最新文档