Matlab数字信号处理实验报告材料.docx
- 文档编号:11725962
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:32
- 大小:569.13KB
Matlab数字信号处理实验报告材料.docx
《Matlab数字信号处理实验报告材料.docx》由会员分享,可在线阅读,更多相关《Matlab数字信号处理实验报告材料.docx(32页珍藏版)》请在冰豆网上搜索。
Matlab数字信号处理实验报告材料
数字信号处理实验报告
基础实验篇
实验一离散时间系统及离散卷积
一、实验原理
利用Matlab软件计算出系统函数的零极点分布、单位脉冲响应和系统频率响应等的图像并于笔算结果进行比较,找出异同。
编译合适程序能计算取值围不同的离散卷积。
二、实验目的
(1)熟悉MATLAB软件的使用方法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
三、实验步骤
(1)自编并调试实验程序,并且,给实验程序加注释;
(2)按照实验容完成笔算结果;
(3)验证计算程序的正确性,记录实验结果。
(4)至少要求一个除参考实例以外的实验结果,在实验报告中,要描述清楚实验结果对应的系统,并对实验结果进行解释说明。
四、实验源程序及实验结果
实验1-1
运行结果
xlabel('n');
ylabel('h(n)');
figure
(2)
[z,p,g]=tf2zp(b,a);
zplane(z,p)
title('零极点');
function[x,n]=chongji(n1,n2)
n=[n1:
n2];
x=[n==0];
functionshiyan1()
a=[1,-1,0.9];
b=1;
x=chongji(-20,120);
n=-20:
120;
h=filter(b,a,x);
figure
(1)
stem(n,h);
title('冲击响应');
实验1-2
运行结果
b=[0.0181,0.0543,
0.0543,0.0181];
a=[1.000,-1.76,
1.1829,-0.2781];
w=pi*freqspace(500);
H=freqz(b,a,w);
MH=abs(H);
AH=angle(H);
subplot(2,1,1);
plot(w/pi,MH);
grid;
axis([0,1,0,1]);
xlabel('w(pi)');
ylabel('|H|');
title('幅度、相位响应');
subplot(2,1,2);
plot(w/pi,AH);
grid;
xlabel('w(pi)');
ylabel('angle(H)');
实验1-3
运行结果
n=0:
30;
%输入x(n)和冲激响应h(n)
x=zeros(1,length(n));
h=zeros(1,length(n));
x([find((n>=0)&(n<=4))])=1;
h([find((n>=0)&(n<=8))])=0.5;
figure
(1)
subplot(3,1,1);
stem(n,x);
axis([0,30,0,2]);
title('输入序列');
xlabel('n');
ylabel('x(n)');
subplot(3,1,2);
stem(n,h);
axis([0,30,0,2]);
title('冲激响应序列');
xlabel('n');
ylabel('h(n)');
%输出响应
y=conv(x,h);
subplot(3,1,3);
n=0:
length(y)-1;
stem(n,y);
title('输出响应');
xlabel('n');
ylabel('y(n)');
实验二离散傅立叶变换与快速傅立叶变换
一、实验原理
对有限长序列使用离散Fouier变换(DFT)可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为
反变换为
有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。
FFT是为了减少DFT运算次数的一种快速算法。
它是对变换式进行一次次分解,使其成为若干较短序列的组合,从而减少运算量。
常用的FFT是以2为基数的,其长度
。
它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。
用FFT可以实现两个序列的圆周卷积。
在一定的条件下,可以使圆周卷积等于线性卷积。
一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度
N≥N1+N2
对于长度不足N的两个序列,分别将他们补零延长到N。
二、实验目的
1、加深理解离散傅立叶变换及快速傅立叶变换概念;
2、学会应用FFT对典型信号进行频谱分析的方法;
3、研究如何利用FFT程序分析确定性时间连续信号;
4、熟悉应用FFT实现两个序列的线性卷积的方法。
三、实验步骤
1、调试实验程序,并且,给参考程序加注释;
2、利用编制的计算卷积的计算程序,分别给出一下三组函数的卷积结果
三、实验源程序及结果
实验2-1
运行结果
b=[0.0181,0.0543,
0.0543,0.0181];
a=[1.000,-1.76,
1.1829,-0.2781];
w=pi*freqspace(500);
H=freqz(b,a,w);
MH=abs(H);
AH=angle(H);
subplot(2,1,1);
plot(w/pi,MH);
grid;
axis([0,1,0,1]);
xlabel('w(pi)');
ylabel('|H|');
title('幅度、相位响应');
subplot(2,1,2);
plot(w/pi,AH);
grid;
xlabel('w(pi)');
ylabel('angle(H)');
实验2-2
运行结果
functionshiyan22()
F=50;
N=64;
T=0.000625;
n=1:
N;
x=cos(2*pi*F*n*T);
subplot(2,1,1);
plot(n,x);
holdon
title('x(n)');
xlabel('n');
X=fft(x);
subplot(2,1,2);
plot(n,X);
grid
title('FFT|X|');
xlabel('f(pi)');
实验2-3
运行结果
n=0:
30;%输入x(n)和冲激响应h(n)
x=zeros(1,length(n));
h=zeros(1,length(n));
x([find((n>=0)&(n<=4))])
=1;
h([find((n>=0)&(n<=8))])
=0.5;
subplot(3,1,1);
stem(x);
title('x(n)');
axis([0,30,0,2]);
subplot(3,1,2);
stem(h);
title('h(n)');
axis([0,30,0,2]);
X=fft(x);
H=fft(h);
Y=X.*H;
y=ifft(Y);
subplot(3,1,3);
stem(abs(y));
title('y(n)');
实验三IIR数字滤波器设计
一、实验原理
(1)脉冲响应不变法
用数字滤波器的单位脉冲响应序列
模仿模拟滤波器的冲激响应
让
正好等于
的采样值,即
其中T为采样间隔,如果以
及
分别表示
的拉氏变换及
的Z变换,则
(2)双线性变换法
s平面与z平面之间满足以下映射关系:
s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆。
双线性变换不存在混叠问题。
双线性变换时一种非线性变换
,这种非线性引起的幅频特性畸变可通过预畸而得到校正。
以低通数字滤波器为例,将设计步骤归纳如下:
1.确定数字滤波器的性能指标:
通带临界频率fp、阻带临界频率fs;通带的最大衰减Rp;阻带的最小衰减As;采样周期T;
2. 确定相应的数字角频率,ωp=2πfpT;ωs=2πfrT;
3. 计算经过预畸的相应模拟低通原型的频率,
根据Ωp和Ωs计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数Ha(s);
4. 用上面的双线性变换公式代入Ha(s),求出所设计的传递函数H(z);
5. 分析滤波器特性,检查其指标是否满足要求。
二、实验目的
1、学习模拟-数字变换滤波器的设计方法;
2、掌握双线性变换数字滤波器设计方法;
3、掌握实现数字滤波器的具体方法。
三、实验步骤
1、设计一个巴特沃思数字低通滤波器,设计指标如下:
通带
幅度衰减不大于1dB;阻带
幅度衰减不小于15dB;
2、编制计算设计的数字滤波器幅度特性和相位特性的程序,并进行实验验证。
3、编制实现该数字滤波器程序并且实现数字滤波
(1)分别让满足所设计的滤波器的通带、过渡带、阻带频率特性的正弦波通过滤波器,验证滤波器性能;
(2)改变正弦抽样时间,验证数字低通滤波器的模拟截止频率实抽样时间的函数。
四、实验源程序及结果
实验3-1
functionshiyan3()
fp=200*pi;
fs=300*pi;
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
As=15;
T=1;
Fs=1000;
[N,fc]=buttord(fp,fs,Rp,
As,'s');
[b,a]=butter(N,fc,'s');
w=[0:
1000*2*pi];
[hf,w]=freqs(b,a,1000);
[d,c]=impinvar(b,a,Fs);
wd=[0:
512]*pi/512;
hw1=freqz(d,c,wd);
[f,e]=bilinear(b,a,Fs);
hw2=freqz(f,e,wd);
OmegaP=(2/T)*tan(wp/2);
OmegaS=(2/T)*tan(ws/2);
ep=sqrt(10^(Rp/10)-1);
Ripple=sqrt(1/(1+ep.^2));
Attn=1/10^(As/20);
subplot(3,1,1);
plot(wd/pi,abs(hw1)
/abs(hw1
(1)));
title('幅度响应(冲击响应不变法)');
xlabel('w(pi)');
ylabel('H');
运行结果
ylabel('H');
axis([0,1,0,1.1]);
set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);
set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]);
grid;
subplot(3,1,2);
plot(wd/pi,20*log10((abs(hw2)+eps)/abs(hw2
(1))));
title('幅度响应(双线性变换法(dB))');
xlabel('w(pi)');
ylabel('H');
axis([0,1,-40,5]);
set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);
set(gca,'YTickmode','manual','YTick',[-50,-15,-1,0]);
grid;
subplot(3,1,3);
plot(wd/pi,-angle(hw2));
title('相位响应');
xlabel('w(pi)');
ylabel('piunit');
%axis([0,1,0,1.1]);
set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);
set(gca,'YTickmode','manual','YTick',[-1,0,1]);
grid;
实验四FIR数字滤波器设计
一、实验原理
窗函数法设计线性相位FIR滤波器步骤
∙确定数字滤波器的性能要求:
临界频率{ωk},滤波器单位脉冲响应长度N;
∙根据性能要求,合理选择单位脉冲响应
的奇偶对称性,从而确定理想频率响应
的幅频特性和相频特性;
∙求理想单位脉冲响应
,在实际计算中,可对
按M(M远大于N)点等距离采样,并对其求IDFT得
,用
代替
;
∙选择适当的窗函数
,根据
求所需设计的FIR滤波器单位脉冲响应;
∙求
,分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。
窗函数的傅式变换
的主瓣决定了
过渡带宽。
的旁瓣大小和多少决定了
在通带和阻带围波动幅度,常用的几种窗函数有:
∙矩形窗w(n)=RN(n)
∙Hanning窗
∙Hamming窗
∙Blackmen窗
∙Kaiser窗
式中Io(x)为零阶贝塞尔函数。
二、实验目的
1、学习FIR数字滤波器窗口函数设计法;
2、熟悉线性相位FIR滤波器的幅频特性和相频特性;
3、了解各种不同窗函数对滤波器性能的影响
4、进行FIR、IIR滤波器的性能比较。
三、实验步骤
1、设计一个FIR数字滤波器,设计指标如下:
通带
幅度衰减不大于1dB;
阻带
幅度衰减不小于15dB;
2、编制计算设计的数字滤波器幅度特性和相位特性的程序,并进行实验验证。
3、分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一
的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。
四、实验源程序及运行结果
实验3-1
functionshiyan4()
%41FIRfilter
wp=0.2*pi;
ws=0.3*pi;
tr_width=ws-wp;
M=ceil(6.6*pi/tr_width)+1;
n=0:
M-1;
wc=(ws+wp)/2;
alpha=(M-1)/2;
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
w_ham=(hamming(M))';
%h=hd.*w_ham;%加汉明窗
%h=hd;%加矩形窗
h=hd.*(blackman(M))';%加布莱克曼窗
[mag,db,pha,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:
wp/delta_w+1)));
As=-round(max(db(ws/delta_w+1:
501)));
subplot(2,2,1);
stem(n,hd);
title('理想冲激响应');
axis([0,M-1,-0.1,0.3]);
ylabel('hd(n)');
subplot(2,2,2);
stem(n,h);
title('实际冲激响应');
axis([0,M-1,-0.1,0.3]);
ylabel('h(n)');
subplot(2,2,3);
plot(w/pi,pha);
title('滤波器相位响应');
axis([0,1,-pi,pi]);
运行结果
ylabel('pha');
set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]);
set(gca,'YTickmode','manual','YTick',[-pi,0,pi]);
grid;
subplot(2,2,4);
plot(w/pi,db);
title('滤波器幅度响应');
axis([0,1,-100,10]);
ylabel('H(db)');
set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]);
set(gca,'YTickmode','manual','YTick',[-50,-15,0]);
function[mag,db,pha,w]=freqz_m(b,a)
[H,w]=freqz(b,a,1000,'whole');
H=(H(1:
501))';
w=(w(1:
501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
加矩形窗
加汉明窗
加布莱克曼窗
综合试验篇
一、实验目的
借助基础实验篇编制的程序,对语音信号进行处理。
通过综合实验篇,使得学生能够充分了解信号处理及数字信号处理的过程;使得学生能够对自己设计的频谱分析程序与滤波器程序得到灵活的应用;使得学生能够综合分析信号处理过程各个阶段信号时域与频域特性。
二、实验容
1、录制一段各人自己的语音信号。
2、对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;
3、给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响
三、实验要求
1、完成实验容要求的各项容。
写明设计思路及其设计原理;
2、给出MATLAB代码,并给编制的程序加注释;
3、给出仿真测试结果并对测试结果进行分析;
4、对设计成果做出评价,说明本设计的特点和存在问题,提出改进设计意见;
四、实验源程序及结果
([0,1,-pi,pi]);
functionvarargout=untitled1(varargin)
%UNTITLED1M-fileforuntitled1.fig
%UNTITLED1,byitself,createsanewUNTITLED1orraisestheexisting
%singleton*.
%
%H=UNTITLED1returnsthehandletoanewUNTITLED1orthehandleto
%theexistingsingleton*.
%
%UNTITLED1('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinUNTITLED1.Mwiththegiveninputarguments.
%
%UNTITLED1('Property','Value',...)createsanewUNTITLED1orraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforeuntitled1_OpeningFunctiongetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtountitled1_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%instancetorun(singleton)".
%
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Edittheabovetexttomodifytheresponsetohelpuntitled1
%LastModifiedbyGUIDEv2.524-Oct-201222:
23:
01
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',untitled1_OpeningFcn,...
'gui_OutputFcn',untitled1_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&isstr(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforeuntitled1ismadevisible.
functionuntitled1_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstountitled1(seeVARARGIN)
%Choosedefaultcommandlineoutputforuntitled1
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakesuntitled1waitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=untitled1_OutputFcn(hObject,eventdata,handles)
%varargoutcellarrayforreturningoutputargs(seeV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 数字信号 处理 实验 报告 材料