数字信号处理实验指导.docx
- 文档编号:28379668
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:15
- 大小:128.76KB
数字信号处理实验指导.docx
《数字信号处理实验指导.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验指导.docx(15页珍藏版)》请在冰豆网上搜索。
数字信号处理实验指导
实验一基于Matlab的频谱分析
一、实验目的
1、掌握时域抽样定理。
2、通过实验加深对FFT的理解;
3、熟悉应用FFT对典型信号进行频谱分析的方法。
二、实验内容与数据
1、用MATLAB实现对信号
的抽样。
设抽样频率为100Hz。
数字角频率为:
5
是否周期序列,若是周期是多少。
是周期序列,周期为0.05
参考程序:
t0=0:
0.001:
0.1;
x0=cos(2*pi*20*t0);
plot(t0,x0,'r')
holdon
%信号最高频率fm为20Hz,
%按100Hz抽样得到序列。
Fs=100
t=0:
1/Fs:
0.1;
x=cos(2*pi*20*t);
stem(t,x);
holdoff
title('图1连续信号及其抽样信号')
结果:
t
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
x
1
0.309
-0.809
-0.809
0.309
1
0.309
-0.809
-0.809
0.309
1
2、离散傅立叶变换(DFT)
是一个N=16的有限长序列,用MATLAB求其DFT
的结果,并画出其结果图。
参考程序:
N=16;
n=0:
1:
N-1;%时域采样
xn=sin(n*pi/8)+sin(n*pi/4);
k=0:
1:
N-1;%频域采样
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
subplot(2,1,1)
stem(n,xn);
title('图2有限长序列')
subplot(2,1,2)
stem(k,abs(Xk));
title('有限长序列的DFT')
结果:
Xk的值为:
-0+0i-0-8i-0-8i0-0i0-0i0-0i0-0i0-0i0-0i0-0i0-0i-0-0i0-0i0-0i0+8i0+8i
3、快速傅立叶变换(FFT)
MATLAB为计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有Fft、Ifft、Fft2、Ifft2,Fftn、ifftn和Fftshift、Ifftshift等。
当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。
所以,要尽可能使所要处理的数据长度为2的幂次或者用添零的方式来添补数据使之成为2的幂次。
1.Fft函数
调用方式
(1)Y=fft(X)
参数说明
·如果X是向量,则采用傅立叶变换来求解X的离散傅立叶变换;
·如果X是矩阵,则计算该矩阵每一列的离散傅立叶变换;
·如果X是(N*D)维数组,则是对第一个非单元素的维进行离散傅立叶变换;
(2)Y=fft(X,N)
参数说明
N是进行离散傅立叶变换的X的数据长度,可以通过对X进行补零或截取来实现。
(3)Y=fft(X,[],dim)或Y=fft(X,N,dim)
参数说明
·在参数dim指定的维上进行离散傅立叶变换;
·当X为矩阵时,dim用来指定变换的实施方向:
dim=1,表明变换按列进行;dim=2表明
变换按行进行。
函数Ifft的参数应用与函数Fft完全相同。
1)X=[2128],进行FFT运算。
X=[2128];
Y=fft(X)
运行结果
Y=
13.00000+7.0000i-5.00000-7.0000
2)fft在信号分析中的应用:
使用频率分析方法从受噪声污染的信号x(t)中鉴别出有用的信号。
参考程序:
t=0:
0.001:
1;%采样周期为0.001s,即采样频率为1000Hz;
%产生受噪声污染的正弦波信号;
x=sin(2*pi*100*t)+sin(2*pi*200*t)+rand(size(t));
subplot(3,1,1)
plot(x(1:
50));%画出时域内的信号;
title('图3信号时域波形')
Y=fft(x,64);%对X进行64点的傅立叶变换;
f=1000*(0:
32)/512;%设置频率轴(横轴)坐标,1000为采样频率;
subplot(3,1,2)
plot(f,Y(1:
33));%画出频域内的信号
title('信号的64点FFT')
Y=fft(x,512);%对X进行512点的傅立叶变换;
f=1000*(0:
256)/512;%设置频率轴(横轴)坐标,1000为采样频率;
subplot(3,1,3)
plot(f,Y(1:
257));%画出频域内的信号
title('信号的512点FFT')
由上面的图3可以看出,从受噪声污染信号的时域形式中,很难看出正弦波的成分。
但是通过对x(t)作傅立叶变换,把时域信号变换到频域进行分析,从512点FFT可以明显看出信号中100Hz和200Hz的两个频率分量。
64点与512点FFT有什么不同?
分辨率不同,有变化的点可以明显看出。
实验二IIR数字滤波器的MATLAB实现
一、实验目的
1、要求掌握IIR数字滤波器的设计原理、设计方法和设计步骤;
2、能根据给定的滤波器指标进行滤波器设计;
3、掌握数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理和步骤;
二、实验内容与数据
1)设计一个5阶Butterworth数字高通滤波器,阻带截止频率为250Hz(3dB截止频率)。
设采样频率
为1000Hz。
解:
源代码如下:
[b,a]=butter(5,250/500,'high')
[z,p,k]=butter(5,250/500,'high')%返回数字滤波器的N阶零、极点矢量.%K为系数。
freqz(b,a,512,1000)%计算数字滤波器的频率响应.
title('图1高通滤波器幅频相频特性')
程序运行后产生的结果:
b=
0.0528-0.26390.5279-0.52790.2639-0.0528
a=
1.0000-0.00000.6334-0.00000.0557-0.0000
z=
11111
p=
0.0000+0.7265i0.0000-0.7265i0.0000+0.3249i
0.0000-0.3249i0.0000
k=0.0528
2)设计一个5阶Butterworth数字低通滤波器,通带截止频率为250Hz(3dB截止频率)。
设采样频率
为1000Hz。
解:
源代码如下:
[b,a]=butter(5,250/500,'low')
[z,p,k]=butter(5,250/500,'low')%返回数字滤波器的N阶零、极点矢量.%K为系数。
freqz(b,a,512,1000)%计算数字滤波器的频率响应.
title('图2低通滤波器幅频相频特性')
程序运行后产生的结果:
b=
0.05280.26390.52790.52790.26390.0528
a=
1.0000-0.00000.6334-0.00000.0557-0.0000
z=
-1-1-1-1-1
p=
0.0000+0.7265i0.0000-0.7265i0.0000+0.3249i0.0000-0.3249i0.0000
k=0.0528
3)已知通带截止频率
,通带最大衰减
;阻带截止频率
,阻带最小衰减
,按照以上指标设计巴特沃斯低通滤波器。
确定阶数N;ksp=
查表得到
的值为:
归一化处理并求
参考MATLAB程序:
%Butterworth模拟低通滤波器的设计
Wc=2*pi*5.2755*1000;b0=1.0000;b1=3.2361;
b2=5.6321;b3=5.6321;b4=3.2361;
b=[Wc.^5];
a=[1b4*Wcb3*(Wc.^2)b2*(Wc.^3)b1*(Wc.^4)(Wc.^5)];
Freqs(b,a,20000);
title('图3按巴特沃斯低通滤波器方法设计的低通滤波器幅频相频特性')
实验三FIR数字滤波器的Matlab实现
一、实验目的
●学习用窗函数法设计FIR数字滤波器的原理及其设计步骤;
●学习编写数字滤波器的设计程序的方法,并能进行正确编程;
2、实验内容与数据
各种窗函数的性能比较
窗函数
第一旁瓣相对于主瓣衰减/dB
主瓣宽(2π/N)
加窗后滤波器性能指标
阻带最小衰减/dB
过滤带宽Δω
(2π/N)
矩形窗
–13
2
21
0.9
三角窗
–25
4
25
2.1
汉宁窗
–31
4
44
3.1
海明窗
-41
4
53
3.3
布拉克曼窗
-57
6
74
5.5
凯塞窗
可调
可调
可调
5
1)利用窗函数法,根据下列技术指标,设计一个数字FIR低通滤波器。
窗函数的选择:
海明窗(可提供大于50dB的衰减,且过渡带较小,具有较小的阶数)
参考程序:
%用哈明窗设计FIR低通滤波器
wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp;%过渡带宽Δω的计算
N0=ceil(6.6*pi/deltaw)+1;%按哈明窗(表7.3.2)计算所需的滤波器阶数N0
N=N0+mod(N0+1,2);%为了实现第一类偶对称滤波器,应使其长度N为奇数
wdham=(hamming(N))';%求窗函数
wc=(ws+wp)/2;%截止频率取为两边界频率的平均值
n=[0:
1:
(N-1)];
m=n-(N-1)/2+eps;
hd=sin(wc*m)./(pi*m);%求理想脉冲响应
h=hd.*wdham;%设计的脉冲响应(即系数)为理想脉冲响应与窗函数乘积
[H,W]=freqz(h,1);
dw=2*pi/1000;
Rp=-(min(db(1:
wp/dw+1)))%检验通带波动
As=-round(max(db(ws/dw+1:
501)))%检验最小阻带衰减
db=20*log10((abs(H)+eps)/max(H))
%绘图
n=0:
N-1;
subplot(2,2,1);stem(n,hd,'.');title('理想脉冲响应')
axis([0N-1-0.10.3]);ylabel('hd(n)');text(N+1,-0.1,'n')
subplot(2,2,2);stem(n,wdham,'.');title('哈明窗')
axis([0N-101.1]);ylabel('w(n)');text(N+1,0,'n')
subplot(2,2,3);stem(n,h,'.');title('实际脉冲响应')
axis([0N-1-0.10.3]);xlabel('n');ylabel('h(n)')
subplot(2,2,4);plot(W/pi,db);title('幅度响应(单位:
dB)');grid
axis([01-10010]);xlabel('频率(单位:
pi)');ylabel('分贝')
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1])
set(gca,'YTickMode','manual','YTick',[-50,0])
set(gca,'YTickLabelMode','manual','YTickLabels',['50';'0'])
set(gcf,'color','w');%置图形背景色为白
2)利用窗函数法,根据下列技术指标,设计一个数字FIR低通滤波器。
%用哈明窗设计FIR低通滤波器
wp=0.2*pi;ws=0.4*pi;deltaw=ws-wp;%过渡带宽Δω的计算
N0=ceil(6.6*pi/deltaw)+1;%按哈明窗(表7.3.2)计算所需的滤波器阶数N0
N=N0+mod(N0+1,2);%为了实现第一类偶对称滤波器,应使其长度N为奇数
wdham=(hamming(N))';%求窗函数
wc=(ws+wp)/2;%截止频率取为两边界频率的平均值
n=[0:
1:
(N-1)];
m=n-(N-1)/2+eps;
hd=sin(wc*m)./(pi*m);%求理想脉冲响应
h=hd.*wdham;%设计的脉冲响应(即系数)为理想脉冲响应与窗函数乘积
[H,W]=freqz(h,1);
dw=2*pi/1000;
Rp=-(min(db(1:
wp/dw+1)))%检验通带波动
As=-round(max(db(ws/dw+1:
501)))%检验最小阻带衰减
db=20*log10((abs(H)+eps)/max(H))
%绘图
n=0:
N-1;
subplot(2,2,1);stem(n,hd,'.');title('理想脉冲响应')
axis([0N-1-0.10.4]);ylabel('hd(n)');text(N+1,-0.1,'n')
subplot(2,2,2);stem(n,wdham,'.');title('哈明窗')
axis([0N-101.1]);ylabel('w(n)');text(N+1,0,'n')
subplot(2,2,3);stem(n,h,'.');title('实际脉冲响应')
axis([0N-1-0.10.4]);xlabel('n');ylabel('h(n)')
subplot(2,2,4);plot(W/pi,db);title('幅度响应(单位:
dB)');grid
axis([01-10010]);xlabel('频率(单位:
pi)');ylabel('分贝')
set(gca,'XTickMode','manual','XTick',[0,0.2,0.4,1])
set(gca,'YTickMode','manual','YTick',[-50,0])
set(gca,'YTickLabelMode','manual','YTickLabels',['50';'0'])
set(gcf,'color','w');%置图形背景色为白
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 指导