离散时间信号分析

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

C f s 和 N 确定后,即可确定所需相应模拟信号 x(t) 的长度
T N / f s NTs
(3)
分辨率 f 反比于 T,而不是 N,在给定的 T 的情况下,靠减小Ts 来增加 N 是不能提
高分辨率的,因为T NTs 为常数
2.谱分析步骤; A 数据准备
x(n) xa(t) tnT xa(nT )
6
subplot(1,2,1) plot(n,xn) xlabel('n');ylabel('x(n)'); title('x(n)N=100'); subplot(1,2,2) k=0:length(magXK)-1; stem(k,magXK,'.'); xlabel('k');ylabel('|X(K)|'); title('X(K)N=100');
给定的技术指标来检验。 2. 实验中用到的一些基本函数见教材第 7.2.4 节(与 FIR 数字滤波器设计相关 MATLAB
函数)。
实验内容
设计例 7.2.1 所述的滤波器。
9
3
离散时间系统分析
实验目的: 掌握线性卷积的计算机编程方法,利用卷积的方法观察、分析系统响应的时域特性。 验证卷积定理。 掌握循环卷积的计算机编程方法,并比较与线性卷积的差别。 实验原理 参考教材关于卷积的部分的论述。 实验内容: 1) MATLAB 提供卷积计算的函数有 CONV、CONV2 和 CONVN。 试用函数 CONV 计算如下图所示 x(n)和 y(n)序列的卷积。 MATLAB 参考代码 x=[1:10] y=[1:5] subplot(31 stem(x) xlabel('x(n)') subplot(312) stem(y) xlabel('y(n)') t=conv(x,y) subplot(313) stem(t) xlabel('x(n)*y(n)' 2)用 matlab 实现 conv 函数的相同功能。
[Pxx, f]=pwelch (xn, nfft, fs, window, noverlap);%平均周期图法
Pxx=psd (xn)
;功率谱密度
实验内容 1. 已知序列 x(n)=2sin(0.48πn)+cos(0.52πn) 0≤n<100,试绘制 x(n)及它的频谱图。
clear all N=100; n=0:N-1; xn=2*sin(0.48*pi*n)+cos(0.52*pi*n); XK=fft(xn,N); magXK=abs(XK); phaXK=angle(XK);
(8)
G(k)
X (k) 2
X
2 r
(k
)
X
2 i
(k
)
(9)
3.实验中用到的一些基本函数简介
y=fft(x,n)
; 计算 n 点的 FFT。
abs(x)
; 取绝对值。
angle(z)
; 取相角。
[Pxx, f]= periodogram (xn, nfft, fs, window) ;%周期图谱估计
离散时间信号分析
实验目的: 利用 MATLAB 进行离散时间序列的基本运算,掌握基本的 MATLAB 函 数的编写和调试方法。
实验内容: (1)信号相加 x(n)=x1(n)+x2(n) 当两个相加的序列长度不同时或位置不对应时,首先必须调整二者的位置对齐,然 后通过 zeros 函数左右补零使其长度相等后再相加。下面的参考代码利用函数 sigadd 说明 了这些运算,其验证将在后续实验中进行。 MATLAB 参考代码 function[y,n]=sigadd(x1,n1,x2,n2) %implements y(n)=x1(n)+x2(n) %--------------------------------------------%[y,n]=sigadd(x1,n1,x2,n2) %y=sum sequence over n,which includes n1 and n2 %x1=first sequence over n1 %x2=second sequence over n2(n2 can be different from n1) % n=min(min(n1),min(n2)):max(max(n1),max(n2));%duration of y(n) y1=zeros(1,length(n)); y2=y1; y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;%x1 with duration of y y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;%x2 with duration of y y=y1+y2;%sequence addition (2)信号相乘 信号相乘,即两个序列的乘积(或称“点乘”),表达式为: x(n)=x1(n)?x2(n) 在 MATLAB 中,用运算符“.*”实现。
A 给出希望的滤波器频率响应函数 H d (e j ) ;
B 根据允许的过渡带宽度及阻带衰减确定所采用的窗函数和 N 值;
C 做 H d (e j ) 的逆傅里叶变换得 hd(n); D 对 hd(n)加窗处理得到有限长序列 h(n) hd (n) w(n) E 对 h(n)做傅里叶变换得到频率响应 H (e j ) ,用 H (e j ) 作为 H d (e j ) 的逼近,并用
表示,即它的系统函数,再利用 IIR 滤波器设计方案具体实现该滤波器。 2. 实验中用到的一些基本函数见教材第 6.2.2 节(与 IIR 数字滤波器设计相关 MATLAB 函 数)。
实验内容
已知通带截止频率 fp=5 kHz,通带最大衰减 p=2 dB,阻带截止频率 fs=12 kHz,阻带最小衰减 s=30 dB,按照以上技术指标设计巴特沃斯低通滤波器。
(4)
B 使用 FFT 计算信号的频谱
5
N 1
X (k ) x(n)WNkn
n0
(5)
X (k ) X r (k ) jX i (k )
(6)
C 由频谱计算幅度谱 X (k) 、相位谱 k 和功率谱 G(k)
X (k)
X
2 r
(k
)
X
2 i
(k
)
(7)
k
arctan
Xi (k ) Xr (k)
2
% n=m+n0; y=x; (5)反转 在这种运算中,序列 x(n)以 n=0 为中心翻转得到一个反转序列: y(n)=x(-n) 在 MATLAB 中,对序列值的翻转用 fliplr(x)实现,对序列各点位置的翻转用 -fliplr(n)实现,如下面的参考代码所示: MATLAB 参考代码 function[y,n]=sigfold(x,n) %implements y(n)=x(-n) %--------------------------------------------%[y,n]=sigfold(x,n) % y=fliplr(x); n=-fliplr(n);
1
下面的参考代码利用函数 sigmult 说明了这种运算,其验证将在后续实验中进行。 MATLAB 参考代码 function[y,n]=sigmult(x1,n1,x2,n2) %implements y(n)=x1(n)*x2(n) %--------------------------------------------%[y,n]=sigmult(x1,n1,x2,n2) %y=product sequence over n,which includes n1 and n2 %x1=first sequence over n1 %x2=second sequence over n2(n2 can be different from n1) % n=min(min(n1),min(n2)):max(max(n1),max(n2));%duration of y(n) y1=zeros(1,length(n)); y2=y1; y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;%x1 with duration of y y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;%x2 with duration of y y=y1.*y2;%sequence multiplication (3)加权 在这种运算中,每个样本均乘以标量 a: y(n)=ax(n) 在 MATLAB 中,算术运算符“*”用来实现加权运算。 (4)移位 在这种运算中,序列 x(n)总体进行 k 点的移位: y(n)=x(n-k) 下面的参考代码利用函数 sigshift 说明了这种运算,其验证将在后续实验中 进行。 MATLAB 参考代码 function[y,n]=sigshift(x,m,n0) %implements y(n)=x(n-n0) %--------------------------------------------%[y,n]=sigshift(x,m,n0)
1)采用 matlab 自带函数设计; 2) 自己设计与 buttord 和 butter 功能相同的函数实现滤波器设计。
8
Fபைடு நூலகம்R 数字滤波器的设计
实验目的
1. 掌握 FIR 数字滤波器的设计方法与步骤; 2. 理解系统频率响应的概念,学习编写计算系统频率响应的方法。
实验原理
1. FIR 数字滤波器设计的详细内容见教材第 7 章。 窗函数法:设计 FIR 数字滤波器的步骤:
4
FFT 频谱分析
实验目的: MATLAB 函数编写信号傅利叶变换程序,观察不同参数设置条件下,信号傅立叶变 换的基本性质和特点。 实验原理 关于信号谱分析的步骤和方法参见教材第 3、4 章相关内容。为了解信号的特点,了 解信号频谱分布情况,应该对信号进行谱分析,计算出信号的幅度谱、相位谱和功率谱。 信号的谱分析可以用 FFT 实现,讨论如下: 1. 谱分析中的参数选择;
若 x(n)=sin(0.56πn)+2cos(0.25πn),结果又如何?
2. 对下面信号进行频谱分析,求幅度谱 X (k) 和相位谱 (k) 。 (1) x1 (t) at , a 0.8, 0 t 4ms , f max 400 Hz (2) x2 (t) sin t / t ,T 0.125s , N 16
A 若已知信号的最高频率 f c ,为防止混叠,选定采样频率 f s :
fs 2 fc
(1)
B 根据实际需要,选定频率分辨 f ,一但选定后,即可确定 FFT 所需的点数 N
N f s / f
(2)
我们希望 f 越小越好,但 f 越小,N 越大,计算量、存储量也随之增大。一般取 N
为 2 的整次幂,以便用 FFT 计算,若已给定 N,可用补零方法便 N 为 2 的整次幂。
7
IIR 数字巴特沃思滤波器的设计
实验目的
1. 掌握用模拟滤波器原型设计 IIR 滤波器的基本方法; 2. 掌握数字巴特沃思滤波器的设计方法与步骤;
3. 理解系统频率响应的概念,学习编写计算系统频率响应的方法。
实验原理
1.数字巴特沃思滤波器设计的详细内容见教材第 6 章,现将设计步骤归纳如下: A 根据给定的频带指标,由双线性变换的频率关系,确定相应的模拟滤波器原型频带 指标; B 利用原型低通滤波器,选择合适的参数,设计出符合指标的模拟低通滤波器; C 利用双线性变换,将所获得的模拟滤波器的 s 域表示转换为相应数字滤波器的 z 域
相关文档
最新文档