13年地大数字信号处理要点.docx
- 文档编号:9728607
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:31
- 大小:612.18KB
13年地大数字信号处理要点.docx
《13年地大数字信号处理要点.docx》由会员分享,可在线阅读,更多相关《13年地大数字信号处理要点.docx(31页珍藏版)》请在冰豆网上搜索。
13年地大数字信号处理要点
数字信号处理报告
学校:
中国地质大学(武汉)
姓名:
班级:
学号:
指导老师:
目录
1-1:
离散卷积的运算
1-2:
离散傅里叶变换及其应用
1-3:
IIR滤波器的设计
1-4:
FIR低通滤波器的设计
1-5:
用MATLAB设计一信号处理系统
1-6:
频率抽选
1-7:
实习心得体会
1-1离算卷积的应用
1:
基本要求
设线性时不变(LTI)系统的冲激响应为h(n),输入序列为x(n)
1、h(n)=(0.8)n,0≤n≤4;x(n)=u(n)-u(n-4)
2、h(n)=(0.8)nu(n),x(n)=u(n)-u(n-4)
3、h(n)=(0.8)nu(n),x(n)=u(n)
求以上三种情况下系统的输出y(n),显示输入和输出波形。
2:
实验目的及算法原理
实验目的:
(1):
掌握离散卷积计算机实现。
(2):
进一步对离散信号卷积算法的理解。
算法原理:
把冲激响应h(n)与输入序列x(n)分别输入到程序中,然后调用离散卷积函数y=conv(x.,h)即可得到所要求的结果。
离散卷积定义为
当序列为有限长时则
3:
程序代码
x1=[1111];nx1=0:
3;
h1=[10.80.640.8^30.8^4];nh1=0:
4;
y1=conv(x1,h1);
subplot(3,3,1);stem(nx1,x1);title('序列x1');
xlabel('n');ylabel('x1(n)');
subplot(3,3,2);stem(nh1,h1);title('序列h1');
xlabel('n');ylabel('h1(n)');
subplot(3,3,3);stem(y1);title('序列y1');
xlabel('n');ylabel('y1(n)');
x2=[1111];nx2=0:
3;
nh2=0:
1:
20;
h2=(0.8).^nh2;
y2=conv(x2,h2);
subplot(3,3,4);stem(nx2,x2);title('序列x2');
xlabel('n');ylabel('x2(n)');
subplot(3,3,5);stem(nh2,h2);title('序列h2');
xlabel('n');ylabel('h2(n)');
subplot(3,3,6);stem(y2);title('序列y2');
xlabel('n');ylabel('y2(n)');
nx3=0:
1:
20;
x3=1.^nx3;
nh3=0:
1:
20;
h3=(0.8).^nh3;
y3=conv(x3,h3);
subplot(3,3,7);stem(nx3,x3);title('序列x3');
xlabel('n');ylabel('x3(n)');
subplot(3,3,8);stem(nh3,h3);title('序列h3');
xlabel('n');ylabel('h3(n)');
subplot(3,3,9);stem(y3);title('序列y3');
xlabel('n');ylabel('y3(n)');
4:
结果分析
1-2离散傅里叶变换及应用
1:
基本要求
设有离散序列x(n)=cos(0.48πn)+cos(0.52πn)
分析下列三种情况下的幅频特性。
(1)采集数据长度N=16,分析16点的频谱,并画出幅频特性。
采集数据长度N=16,并补零到64点,分析其频谱,并画出幅频特性。
(2)采集数据长度N=64,分析64点的频谱,并画出幅频特性。
观察三幅不同的幅频特性图,分析和比较它们的特点及形成原因。
2:
实习目的及相关算法
实习目的:
(1)了解DFT及FFT的性质和特点。
(2)利用FFT算法计算信号的频谱。
相关算法:
读入离散序列x(n)采集长度为N=16的数据,调用matlab中的函数fft(x,16)与fft(x,64)对其作离散傅里叶变换得到16点、64点的频谱采集数据长度为N=64,,调用matlab中的函数fft(x,46)对其作离散傅里叶变换得到64点的频谱。
3:
相关实现代码
n=0:
1:
15;
n1=n;
x1=cos(0.48*pi*n)+cos(0.52*pi*n);
g1=abs(fft(x1,16));
subplot(3,2,1);stem(x1);title('x1');
subplot(3,2,2);stem(g1);title('g1');
n2=n;
x2=cos(0.48*pi*n2)+cos(0.52*pi*n2);
x2=[x2zeros(1,48)];
g2=abs(fft(x2,64));
subplot(3,2,3);stem(x2);title('x2');
subplot(3,2,4);stem(g2);title('g2');
n3=n;
x3=cos(0.48*pi*n3)+cos(0.52*pi*n3);
g3=abs(fft(x3,64));
subplot(3,2,5);stem(x3);title('x3');
subplot(3,2,6);stem(g3);title('g3');
4:
运行结果
1-3:
IIR滤波器的设计
1:
基本要求
(1)设计一个Butterworth数字低通滤波器,设计指标如下:
通带截止频率:
0.2π,幅度衰减不大于1分贝
阻带截止频率:
0.3π,幅度衰减大于15分贝
(2)分析不同滤波器的特点和结果。
(3)编程设计实现IIR滤波器。
2:
实习目的及相关算法
实习目的:
(1)掌握不同IIR滤波器的性质、特点。
(2)通过实验学习如何设计各种常用的IIR滤波器,以便在实际工作中能根据具体情况使用IIR滤波器。
相关算法:
输入通带截止频率Wp,阻带截止频率Ws,通带衰减Rp,阻带衰减Rs,通过这些数值调用[NWn]=buttord(Wp,Ws,Rp,Rs)函数计算巴特沃斯数字滤波器的阶数N和截止频率wn,再根据阶数N通过函数[b,a]=butter(N,Wn),即可得到所要的巴特沃斯滤波器。
设计一个正弦波信号,再调用函数A=filter(b,a,I)让正弦波信号通过滤波器,得到滤波信号。
3:
实验代码
Wp=0.2;
Ws=0.3;
Rp=1;
Rs=15;
[NWn]=buttord(Wp,Ws,Rp,Rs)%用于计算巴特沃斯数字滤波器的阶数N和截止频率wn
[b,a]=butter(N,Wn);%计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a,设计所需的低通滤波器
[h,omega]=freqz(b,a,512);%返回量h包含了离散系统频响,调用中若N默认,默认值为512。
plot(omega/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi');ylabel('Gain,dB');
title('IIRButterworthLowpassFilter');
Wp=0.2;
Ws=0.3;
Rp=1;
Rs=15;
[N1,Wn1]=buttord(Wp,Ws,Rp,Rs)%用于确定阶次
[b,a]=butter(N,Wn);%用于直接设计巴特沃兹数字滤波器,即为IIR滤波器%
freqz(b,a);
t=1:
300;
I=sin(0.1*pi*t)+sin(0.4*pi*t);%设计正弦波
figure;plot(I);
A=filter(b,a,I);%正弦波通过滤波器
figure;plot(A);
4:
运行结果
巴特沃斯滤波器单独运行结果
输入为滤波的正弦波信号以及滤波后的效果
1-4:
FIR低通滤波器的设计
1:
基本要求
选取合适窗函数设计一个线性相位FIR低通滤波器,使它满足如下性能指标:
通带截止频率:
ωp=0.5π,通带截止频率处的衰减不大于3分贝;
阻带截止频率:
ωs=0.66π,阻带衰减不小于40分贝
2实习目的及相关算法
实习目的:
(1)掌握用窗函数法设计FIR滤波器的原理和方法。
(2)熟悉线性相位滤波器特性。
(3)了解各种窗函数对滤波器特性的影响。
相关算法:
通过其通带截止频率ωp与阻带截止频率ωs算出其过渡带的宽度与滤波器的长度,从而得到理想滤波器的截止频率,根据所要求的理想滤波器,得到hd(n)。
由于其通带截止频率处的衰减不大于3分贝与阻带衰减不小于40分贝,我选择最接近的汉宁窗,最后调用函数h=hd.*win及freqz(h,1,512)得到实际汉宁窗的响应和实际滤波器的幅度响应。
3:
实现代码
wp=0.5*pi;
ws=0.66*pi;
wdelta=ws-wp;%过渡带宽度
N=ceil(8*pi/wdelta)%滤波器长度
ifrem(N,2)==0
N=N+1;
end
Nw=N;
wc=(wp+ws)/2;%理想低通滤波器的截止频率
n=0:
N-1;
alpha=(N-1)/2;
m=n-alpha+0.00001;
hd=sin(wc*m)./(pi*m);%一个响应
win=(hanning(Nw))';%汉宁窗
h=hd.*win;%实际汉宁窗的响应
freqz(h,1,512);%实际滤波器的幅度响应
4:
运行结果
1-5综合实习
1:
基本要求
录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用MATLAB设计一信号处理系统界面。
2:
实习目的及相关算法
实习目的:
(1)能够对之前四个实习中的内容加以很好的应用
(2)锻炼自己的实际能力,使其不在局限简单的小模块
相关算法:
调用函数functionpushbutton1_Callback(hObject,eventdata,handles)实现一个信号处理系统界面。
选择左键时,用双线性变换法设计滤波器来对信号进行处理,选择右键时,用窗函数法设计滤波器来对信号进行处理。
读取语音信号,对语音信号进行f=8000的频率进行采样,调用函数y1=fft(x1,2048)对所采集的点做2048点FFT变换。
先设计butterworth模拟滤波器,再用双线性变换法实现模拟滤波器到数字滤波器的转换。
最后调用函数f1=filter(bz,az,x2)对加了噪声的语音信号进行滤波,得到滤波后的频谱图。
3:
实现代码
functionvarargout=ts(varargin)
%TSM-fileforts.fig
%TS,byitself,createsanewTSorraisestheexisting
%singleton*.
%
%H=TSreturnsthehandletoanewTSorthehandleto
%theexistingsingleton*.
%
%TS('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinTS.Mwiththegiveninputarguments.
%
%TS('Property','Value',...)createsanewTSorraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforets_OpeningFunctiongetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtots_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%instancetorun(singleton)".
%
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Copyright2002-2003TheMathWorks,Inc.
%Edittheabovetexttomodifytheresponsetohelpts
%LastModifiedbyGUIDEv2.522-Nov-201310:
55:
52
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@ts_OpeningFcn,...
'gui_OutputFcn',@ts_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(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
%---Executesjustbeforetsismadevisible.
functionts_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstots(seeVARARGIN)
%Choosedefaultcommandlineoutputforts
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakestswaitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=ts_OutputFcn(hObject,eventdata,handles)
%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
%---Executesonbuttonpressinpushbutton1.
functionpushbutton1_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton1(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
[x1,fs]=wavread('语音.wav');
wavplay(x1,fs);
%---Executesonbuttonpressinpushbutton2.
functionpushbutton2_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton2(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
fs=8000;%语音信号采样频率为8000
[x1,fs]=wavread('语音.wav');
t=(0:
length(x1)-1)/8000;
y1=fft(x1,2048);%对信号做2048点FFT变换
f=fs*(0:
1023)/2048;
figure
(1);subplot(2,2,1);plot(t,x1);%做原始信号的时域波形
gridon;axistight;
title('原始语音信号');
xlabel('time(s)');
ylabel('幅度');
subplot(2,2,2);
plot(f,abs(y1(1:
1024)));%做原始信号的FFT频谱
gridon;axistight;
title('原始语音信号的FFT频谱');
xlabel('Hz');
ylabel('幅度');%双线性变换法设计的巴特沃斯滤波器
A1=0.05;A2=0.10;
d=[A1*cos(2*pi*3800*t)+A2*sin(2*pi*3600*t)]';
d(:
2)=d(:
1);
x2=x1+d;
wp=0.8*pi;
ws=0.85*pi;
Rp=1;
Rs=15;
Fs=8000;
Ts=1/Fs;
wp1=2/Ts*tan(wp/2);%将模拟指标转换为数字指标
ws1=2/Ts*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');%选择滤波器最小阶数
[Z,P,K]=buttap(N);%创建butterworth模拟滤波器
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);%用双线性法实现模拟到数字的转换
[H,W]=freqz(bz,az);%绘制频率响应曲线
subplot(2,2,3);
plot(W*Fs/(2*pi),abs(H));
gridon;axistight;
xlabel('频率(Hz)');
ylabel('频率响应');
title('Butterworth');
f1=filter(bz,az,x2);
figure
(2);
subplot(2,2,1);
plot(t,x2);%画出滤波前的时域图
gridon;axistight;
title('滤波前的时域波形');
subplot(2,2,2);
plot(t,f1);%画出滤波后的时域图
gridon;axistight;
title('滤波后的时域波形');
y3=fft(f1,2048);
y2=fft(x2,2048);
subplot(2,2,3);
plot(f,abs(y2(1:
1024)));%画出滤波前的频谱图
gridon;axistight;
title('滤波前的频谱');
xlabel('Hz');
ylabel('幅度');
subplot(2,2,4)
plot(f,abs(y3(1:
1024)));%画出滤波后的频谱图
gridon;axistight;
title('滤波后的频谱');
xlabel('Hz');
ylabel('幅度');
wavplay(f1,fs);
%---Executesonbuttonpressinpushbutton3.
functionpushbutton3_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton3(seeGCBO)
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
fs=8000;%语音信号采样频率为8000
[x1,fs]=wavread('语音.wav');
t=(0:
length(x1)-1)/8000;
y1=fft(x1,2048);%对信号做2048点FFT变换
f=fs*(0:
1023)/2048;
figure
(1);
subplot(2,1,1);
plot(t,x1);%做原始信号的时域波形
gridon;axistight;
title('原始
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 数字信号 处理 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)