数字信号实验报告 (全)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、实验内容和步骤
对以下典型信号进行谱分析:
x1 (n) R4 (n) n 1, x 2 (n) 8 n, 0 , 4 n, x3 (n) n 3, 0, 0n3 4n7
其它n
0n3 4n7
其它n
nห้องสมุดไป่ตู้
x4 ( n) cos

4
用 FFT 对信号作频谱分析是学习数字信号处理的重要内容。 经常需要进行谱 分析的信号是模拟信号和时域离散信号。 对信号进行谱分析的重要问题是频谱分 辨率 D 和分析误差。 频谱分辨率直接和 FFT 的变换区间 N 有关, 因为 FFT 能够实 现的频率分辨率是 2π /N≤D。可以根据此时选择 FFT 的变换区间 N。误差主要 来自于用 FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续 谱,只有当 N 较大时离散谱的包络才能逼近于连续谱,因此 N 要适当选择大一 些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作 FFT,得到的离散谱 才能代表周期信号的频谱。 如果不知道信号周期,可以尽量选择信号的观察时间 长一些。 对模拟信号的频谱时, 首先要按照采样定理将其变成时域离散信号。如果是 模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照 周期序列的谱分析进行。
3 k 1
1
0.7051 z 2

0.0007378 1 z 1 1 1.0106 z 1 0.3583 z 2 1 0.9044 z 1 0.2155 z 2


6


H k z
(2.1)
式中:
H k z
A 1 2 z 1 z 2 ,k 1, 2, 3 1 Bk z 1 Ck z 2
x5 (n) cos( n / 4) cos( n / 8)
x6 (t ) cos8 t cos16 t cos 20 t
对于以上信号, x1(n)~x5(n) 选择 FFT 的变换区间 N 为 8 和 16 两种情况进行频谱 分析。分别打印其幅频特性曲线。 并进行对比、分析和讨论;;x6(t)为模拟周期 信号,选择 采样频率 Fs 64Hz ,变换区间 N=16,32,64 三种情况进行谱分析。分 别打印其幅频特性,并进行分析和讨论。
subplot(2,2,1); xlabel('n'); stem(n,x,'.r'); ylabel('x(n)');
%指定1号子图 %标记X坐标
title(['x',num2str(b),'(n)的波形']); %进行FFT f=fft(x,N); %再画出FFT波形 subplot(2,2,3); stem(n,abs(f),'.b'); xlabel('k'); ylabel('|X(k)|'); title(['x',num2str(b),'(n)的N=',num2str(N),'点FFT']); b=menu('请选择信号x1(n)--x6(n)','x1(n)=R4(n)','x2(n)=[1 2 3 4 4 3 2 1]',... 'x3(n)=[4 3 2 1 1 2 3 4]','x4(n)=cos(npi/4)','x5(n)=sin(npi/8)',... 'x6(n)=cos(8pit)+cos(16pit)+cos(20pit)','Exit'); end close all;
f1=4,f2=8(在点 N=1,2 处有较大的幅值) ,而且频率分辨率不够高,不能分辨开 第三个信号 cos(20pit)的频率 f3。 当 N=32,频率分辨率 F0=f s/N=2Hz,因此在 FFT 图里的点 N=2 有高幅值,在 N=4 有高幅值 N=5 也有高幅值。因为截取的为周期序列的整数倍,所以所得出的谱 正确。 当 N=64,频率分辨率 F0=f s/N=1Hz,因此在 FFT 图里的点 N=4 有高幅值,在 N=8 有高幅值 N=10 也有高幅值。因为截取的为周期序列的整数倍,所以所得出的谱 正确。 变换区间 N=64 时频谱幅度是变换区间 N=32 时 2 倍, 这种结果正好验证了用 FFT 对中期序列谱分析的理论。 2、误差分析 误差产生的原因: (1)对周期序列的截取不当,造成频谱泄漏 (2)抽样点数 N 太少,频率分辨率不够 用 FFT 做谱分析时参数的选择: (1)抽样频率要满足奈奎斯特准则,不小于信号最高频率的 2 倍 (2)在抽样频率一定的情况下,抽样点数 N 要适当。太小会造成频率分辨力不 够,太大会造成数据冗余。对周期序列,最好截取周期的整数倍进行谱分析 图 1-1:x1(n)的波形:N=8
数字信号处理实验报告 实验一:用 FFT 做谱分析 一、 实验目的
1、进一步加深 DFT 算法原理和基本性质的理解。 2、熟悉 FFT 算法原理和 FFT 子程序的应用。 3、学习用 FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的 分析误差及其原因,以便在实际中正确应用 FFT。
二、实验原理
图 1-2:x1(n)的波形 N=16
图 1-3:x1(n)的波形 N=32
图 1-4:x2(n)的波形 N=8
图 1-5:x2(n)的波形:N=16
图 1-6:x2(n)的波形 N=32
图 1-7:x 3(n)的波形 N=8
图 1-8:x 3(n)的波形 N=16
图 1-9:x 3(n)的波形 N=32
图 1-10:x 4(n)的波形 N=8
图 1-11:x 4(n)的波形 N=16
图 1-12:x 4(n)的波形 N=32
图 1-13:x 5(n)的波形 N=8
图 1-14:x 5(n)的波形 N=16
图 1-15:x 5(n)的波形 N=32
图 1-16: x 6(n)的波形 N=16
图 1-17: x 6(n)的波形 N=32
图 1-18: x 6(n)的波形 N=64
实验二:用双线性变换法设计 IIR 数字滤波器
一、实验目的
1、熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法。 2、掌握数字滤波器的计算机仿真方法。
二、实验内容及步骤
1、 用双线性变换法设计一个 butterworth 低通 IIR 数字滤波器。 设计指标参数为: 在通带内频率低于 0.2 时,最大衰减小于 1dB,在阻带内[0.3 , ]频率区间 上,最小衰减大于 15dB。 2、打印出数字滤波器在频率区间[0, ]上的幅频响应特性曲线。 3、运用 MATLAB 产生两个正弦信号,信号频率为 50Hz 和 400Hz,采样频率为 1000Hz。两个正弦信号相叠加为输入信号 y(t)。设计一滤波器,保留源信号中 50Hz 的低频信号,对 y(t)信号进行滤波。观察滤波前后信号的频谱特性,评价滤 波器效果。
xn
H1 z
y1 n
H 2 z
y 2 n
H 3 z
y3 n yn
图 2-1 滤波器 H z 的组成
2、编写滤波器仿真程序,计算 H(z)对心电信号采样序列 x(n)的响应序列 y(n)。 设 yk(n)为第 k 级二阶滤波器 Hk(z)的输出序列,yk-1(n)为输入序列,如图 1 所示。由式 2.2 可以得到差分方程:
四、实验代码如下所示:
clear; %清除变量 %关闭全部绘图窗口 close all;
b=menu('请选择信号x1(n)--x6(n)','x1(n)=R4(n)','x2(n)=[1 2 3 4 4 3 2 1]',... 'x3(n)=[4 3 2 1 1 2 3 4]','x4(n)=cos(npi/4)','x5(n)=sin(npi/8)',... 'x6(n)=cos(8pit)+cos(16pit)+cos(20pit)','Exit'); i=0; A=[8,16,32,64]; while(b~=7) %当选择EXIT时,返回值7,则退出循环 if b==6 m=menu('请选择FFT变换区间长度N','N=16','N=32','N=64'); N=A(m+1); fs=64; n=0:(N-1); x=cos(8*pi*n/fs)+cos(16*pi*n/fs)+cos(20*pi*n/fs); else m=menu('请选择FFT变换区间长度N','N=8','N=16','N=32'); N=A(m); n=0:(N-1); if b==1 x=[1,1,1,1,0,0,0,0,zeros(1,N-8)]; elseif b==2 x=[1,2,3,4,4,3,2,1,zeros(1,N-8)]; elseif b==3 x=[4,3,2,1,1,2,3,4,zeros(1,N-8)]; elseif b==4 x=cos(n*pi/4); elseif b==5 x=sin(n*pi/8); end end %先画出信号源图 i=i+1; figure(i); %创建绘图窗口
当 k=1 时,yk −1 n = x(n)。所以 H(z)对 x(n)的总响应序列 y(n)可以用顺序 迭代算法得到。 即以此对 k=1,2,3, 求解差分方程式 2.3, 最后得到y3 n = y(n) 。 仿真程序就是实现上述求解差分方程和顺序迭代算法的通用程序。 也可以直接调 用 Matlab 的 filter 库函数实现仿真。
三、实验步骤
1、双线性变换法设计 butterworth 低通 IIR 数字滤波器 复习有关 butterworth 模拟滤波器设计和用双线性变换法设计 IIR 数字滤波器的内 容,用双线性变换法设计数字滤波器系统函数 H z 。其中满足本实验要求的数 字滤波器系统函数为:
H z
1 1.2686 z


(2.2)
A 0.09036 B1 1.2686 ,C1 0.7051 B2 1.0106 ,C 2 0.3583 B3 0.9044 ,C3 0.2155
根据设计指标,调用 MATLAB 信号处理工具箱 buttord 和 butter,也可以得 到 H z 。 由公式 (2.1) 和 (2.2) 可见, 滤波器 H z 由三个二阶滤波器 H1 z 、H 2 z 和 H 3 z 级联而成,如图 2-1 所示。
五、实验结果图及分析
1、实验结果图分析: (1)x1(n)的波形如图 1-1、图 1-2 和图 1-3 所示,由 3 张图可知道,N 值越大,频 率分辨率越高。 (2)x2(n)的波形如图 1-4、图 1-5 和图 1-6 所示,由 3 张图可知道,N 值越大,频 率分辨率越高。 (3)x3(n)的波形如图 1-7、图 1-8 和图 1-9 所示,由 3 张图可知道,N 值越大,频 率分辨率越高。 (4)x4(n)的波形如图 1-10、图 1-11 和图 1-12 所示。根据参数可得出 X4(t)的频 率 f=8Hz,当 N=8、16、32 时,频率分辨率为 F0=f s/N=8Hz、4Hz、2Hz,因此在 FFT 图里分别在 N=1、2、4 有高幅值,因为截取的为周期序列的整数倍,所以所得 出的谱正确。 (5)x5(n)的波形如图 1-13、图 1-14 和图 1-15 所示。根据参数可得出 X5(t)的频 率 f=4Hz。 当 N=8 时,频率分辨率 F0=f s/N=8Hz,因为截取的不是为周期序列的整数倍,而 且频率分辨率不够,所得出的谱有较大的误差,所以 FFT 图包含一些频率分量, 不能清楚看清原信号的频率 f。 当 N=16 及 32 时,频率分辨率 F0=f s/N=4Hz、2Hz,因此在 FFT 图里在 N=1、2 有 高幅值,因为截取的为周期序列的整数倍,所以所得出的谱正确。 (6) x6(n)的波形如图 1-16、图 1-17 和图 1-18 所示。根据参数可得出 X6(t)里包 含 3 个频率,分别为 f1=4,f2=8,f3=10。 当 N=16,频率分辨率 F0=f s/N=4Hz,因为截取的不是 x6 里各周期序列的整数倍, 所得出的谱有频谱泄漏, FFT 图里可以看出信号 cos(8pit) 和 cos(16pit) 的频率
相关文档
最新文档