数字信号处理实验讲义
- 格式:ppt
- 大小:1.82 MB
- 文档页数:79
《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的1. 加深对离散信号的理解。
2. 掌握典型离散信号的Matlab 产生和显示。
二、实验原理及方法在MATLAB 中,序列是用矩阵向量表示,但它没有包含采样信息,即序列位置信息,为此,要表示一个序列需要建立两个向量;一是时间序列n,或称位置序列,另一个为取值序列x ,表示如下: n=[…,-3,-2,-1,0,1,2,3,…]x=[…,6,3,5,2,1,7,9,…]一般程序都从0 位置起始,则x= [x(0), x(1), x(2),…]对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。
数字信号处理中常用的信号有指数信号、正弦信号、余弦信号、方波信号、锯齿波信号等,在MATLAB 语言中分别由exp, sin, cos, square, sawtooth 等函数来实现。
三、实验内容1. 用MATLAB 编制程序,分别产生长度为N(由输入确定)的序列:①单位冲击响应序列:()n δ可用MATLAB 中zeros 函数来实现; ②单位阶跃序列:u(n)可用MATLAB 中ones 函数来实现; ③正弦序列:()sin()x n n ω=; ④指数序列:(),nx n a n =-∞<<+∞⑤复指数序列:用exp 函数实现()0()a jb n x n K e += ,并给出该复指数序列的实部、虚部、幅值和相位的图形。
(其中00.2,0.5,4,40a b K N =-===.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘 出复指数序列的实部、虚部、幅值和相位的图形。
2. 序列信号的实现方法。
3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。
实验二 离散信号的运算一、实验目的1. 掌握离散信号的时域特性。
2. 用MATLAB 实现离散信号的各种运算。
数字信号处理讲义线性时不变系统的变换分析1. 数字信号处理概述数字信号处理(Digital Signal Processing,简称DSP)是一种利用计算机对数字信号进行采集、处理和传输的技术。
它在许多领域都有广泛的应用,如通信、音频处理、图像处理、雷达、声纳等。
数字信号处理的核心任务是对离散时间信号进行采样、量化、编码和解码等操作,以实现信号的高效处理和传输。
采样:从连续时间信号中抽取一系列有限长度的样本点。
采样频率是指单位时间内抽取的样本点数,通常用赫兹(Hz)表示。
采样频率越高,还原出的连续时间信号越接近原始信号。
量化:将采样得到的样本值映射到一个固定范围(如8位整数)内的离散值。
量化过程引入了量化误差,但可以通过增加量化比特数来减小误差的影响。
编码:将量化后的离散值编码成二进制数据,以便于存储和传输。
常见的编码方式有频移键控(Frequency Shift Keying, FSK)、相移键控(Phase Shift Keying, PSK)等。
解码:将接收到的二进制数据还原为原始的离散值。
解码过程需要根据预先设定的解码算法进行计算。
数字信号处理技术的发展使得信号处理系统具有更高的实时性、可靠性和灵活性。
现代数字信号处理器(Digital Signal Processor,简称DSP)在性能和功耗方面已经达到了很高的水平,可以满足各种复杂信号处理的需求。
1.1 信号与系统信号是信息的载体,它可以是声音、图像、数据等任何可以传递信息的物理量。
在数字信号处理中,我们通常研究的信号是随时间变化的连续或离散取值序列。
信号可以根据其时间特性分为连续时间信号和离散时间信号,根据取值特性分为模拟信号和数字信号。
系统是由相互关联、相互作用的元素组成的,具有特定功能和行为的整体。
在信号处理中,系统通常指的是对输入信号进行某种处理或转换的装置。
根据系统对输入信号的响应特性,系统可以分为线性系统、非线性系统、时不变系统和时变系统。
数字信号处理讲义--第5章线性时不变系统的变换分析第5章线性时不变系统的变换分析[教学⽬的]1.了解LTI 系统频率响应的概念;2.掌握线性常系数差分⽅程所表征系数的系统函数的⽅法; 3.掌握有理系统频率响应分析⽅法4.理解线性相位系统、⼴义线性相位系统与因果⼴义线性相位系统的概念,⼏类线性相位系统。
[教学重点与难点] 重点:1.线性常系数差分⽅程所表征系数的系统函数的⽅法; 2.有理系统频率响应分析⽅法; 3.⼏类线性相位系统。
难点:1.有理系统频率响应分析⽅法⼏类线性相位系统5.1 LTI 系统的频率响应前⾯已经讨论过,在时域中,⼀个线性时不变系统完全可以由它的单位脉冲响应h (n )来表⽰。
对于⼀个给定的输⼊x (n ),其输出y (n )为对等式两端取Z 变换,得则 (5-1)两边做离散傅⽴叶变换有: |Y (e j ω)|=|H (e j ω)|·|X (e j ω)| (5-2)|Y (e j ω)|=|H (e j ω)|·|X (e j ω)|arg [Y (e j ω)]=arg [H (e j ω)]+arg [X (e j ω)]|H (e j ω)| 幅度响应 : 增益/幅频特性调整输⼊信号各频率分量的相对强度(幅度)关系Arg[H (e j ω)] 频率响应的相位响应 : 相移/相频特性调整输⼊信号各频率分量的相对位置(相位)关系H (e j ω) 调整输⼊信号各频率分量的相对⼤⼩(幅度)及位置(相∑∞-∞=-=*=m m n h m x n h n x n y )()()()()()()()(z X z H z Y =)()()(z X z Y z H =位)关系5.1.1 理想低通滤波器的选择性5.1.2相位失真与延时线性相位 : 不会改变信号的相对位置,时延相同线性相位的效应 : 时延⾮线性相位:改变信号的相对位置时延不相同≤<≤=πωωωωω||,0||,1)(c c j H n n n h c F πωsin ][=?→←()()|()|j H j H j H j e ωωω= 0 : ()near Phase H j t ωω=- 0()H j tωω≠-5.2 ⽤线性常系数差分⽅程所表征系统的系统函数⼀个线性时不变系统也可以⽤常系数线性差分⽅程来表⽰,其N 阶常系数线性差分⽅程的⼀般形式为若系统起始状态为零,这样就可以直接对上式两端取Z 变换,利⽤Z 变换的线性特性和移位特性可得这样就得到系统函数为(5-3)由此看出系统函数分⼦、分母多项式的系数分别就是差分⽅程的系数。
数字信号处理实验指导书(2009版)宋宇飞编南京工程学院目录实验一信号、系统及系统响应 (1)一、实验目的 (1)二、实验原理与方法 (1)三、实验内容及步骤 (4)四、实验思考 (4)五、参考程序 (4)实验二离散时间傅里叶变换DTFT及IDTFT (9)一、实验目的 (9)二、实验原理与方法 (9)三、实验内容及步骤 (9)四、实验思考 (10)五、参考程序 (10)实验三离散傅里叶变换DFT及IDFT (12)一、实验目的 (12)二、实验原理与方法 (13)三、实验内容及步骤 (14)四、实验思考 (14)五、参考程序 (14)实验四用FFT做频谱分析 (17)一、实验目的 (17)二、实验原理与方法 (17)三、实验内容及步骤 (19)四、实验思考 (20)五、参考程序 (21)实验五用双线性变换法设计IIR数字滤波器 (25)一、实验目的 (25)二、实验原理与方法 (25)三、实验内容及步骤 (27)四、实验思考 (27)五、参考程序 (27)实验六用窗函数法设计FIR数字滤波器 (29)一、实验目的 (29)二、实验原理与方法 (29)三、实验内容及步骤 (33)四、实验思考 (34)五、参考程序 (34)附录一滤波器设计示例 (38)一、Matlab设计IIR基本示例 (38)二、Matlab设计IIR高级示例 (42)附录二部分习题参考答案 (50)习题一(离散信号与系统) (50)习题二(离散傅里叶变换及其快速算法) (51)习题三(IIR滤波器设计) (53)习题四(FIR滤波器) (54)习题五(数字信号处理系统的实现) (56)附录三相关MATLAB习题及答案 (57)第1章离散时间信号与系统 (57)第2章离散傅里叶变换及其快速算法 (60)第3章无限长单位脉冲响应(IIR)滤波器的设计方法 (63)第4章有限长单位脉冲响应(FIR)滤波器的设计方法 (67)第5章数字信号处理系统的实现 (69)第6章多采样率信号处理 (73)实验一 信号、系统及系统响应一、实验目的1、掌握时域离散信号的表示及产生方法;2、掌握时域离散信号简单的基本运算方法;3、掌握离散系统的响应特点。
实验报告实验一:1.用三种不同的DFT程序计算x(n)=R8(n)的傅里叶变换;比较三种程序计算机运行时间。
(1)编制用for loop语句的M函数文件dft1.m,用循环变量逐点计算X(k);(2)编写用Matlab矩阵运算的M函数文件dft2.m,完成下列矩阵运算;(3)调用FFT库函数,直接计算X(k);(4)编写M程序文件,分别得到序列x(n)的傅里叶变换,并画出相应的幅频和相频特性;比较用三种不同方式编写的DFT程序各自的计算机运行时间。
%%%主程序:x=[ones(1,8),zeros(1,248)];t=cputime;[Am1,pha1]=dft1(x);t1=cputime-t;n=[0:(length(x)-1)];w=(2*pi/length(x))*n;figure(1);subplot(2,1,1);plot(w,Am1,'b');title('Magnitude part');xlabel('frequency in radians');ylabel('|X(exp(jw))|');subplot(2,1,2), plot(w,pha1,'r');grid;xlabel('frequency in radians');ylabel('arg(X[exp(jw)]/radians|');%%%%子程序dft1.mfunction [Am,pha]=dft1(x)N=length(x);w=exp(-j*2*pi/N);for k=1:Nsum=0;for n=1:Nsum=sum+x(n)*w^((k-1)*(n-1));endAm(k)=abs(sum);pha(k)=angle(sum);End%%%%子程序dft2.mfunction[Am,pha]=dft2(x)N=length(x);n=[0:N-1];k=[0:N-1];w=exp(-j*2*pi/N);nk=n'*k;wnk=w.^(nk);Xk=x*wnk;Am=abs(Xk);pha=angle(Xk);%%%%子程序dft3.mfunction[Am,pha]=dft3(x)Xk=fft(x);Am=abs(Xk);pha=angle(Xk);运行结果:t1 =0.1563 t2 =0.2969 t3 =02.用DFT实现两序列的卷积运算,并研究DFT点数与混迭的关系给定:x(n)=n*R16(n),h(n)=R8(n),用FFT和IFFT分别求线性卷积及混叠结果的输出,画出相应的图形(用stem(n,y)).N=16;x=[0:N-1];h=ones(1,8);Xk1=fft(x,23); %做23点fftHk1=fft(h,23);Yk1=Xk1.*Hk1;y1=ifft(Yk1);n=0:22;figure(1)stem(n,y1);Xk2=fft(x);Hk2=fft(h,16); %做16点fftYk2=Xk2.*Hk2;y2=ifft(Yk2);n=0:15;figure(2)stem(n,y2)3.高密度频谱与高分辨率频谱的研究对连续信号)1000*9*2cos()1000*7*2cos()1000*5.6*2cos()(t t t t x a πππ++=以fs=32kHz 对x a (t)采样:1) 做N=16点的采样 和 补零到256点的频谱;2) 做N=256点的采样,并做出其FFT 幅度特性;做出分析。
数字信号处理实验讲义实验一序列、频谱、卷积一、实验目的1.掌握序列的输入方法;2.熟悉不同序列的特征;3.了解确定性信号谱分析的方法;4.验证卷积的计算过程;二、实验要求1.利用matlab程序,生成几种常用的序列,如矩形序列,单位脉冲序列;2.绘制图形,观察序列特征;3.研究其频率特性,绘制图形,观察频率响应特征;4.利用matlab程序,验证卷积的过程;三、实验步骤1.矩形序列(1)生成长度为N的矩形序列,观察并记录生成的图形;n=1:50x=sign(sign(10-n)+1);close all;subplot(3,1,1);stem(x);title('单位矩形信号序列');(2)研究其频率特性,()∑∞-∞=-=n nj Nj en R e H ωω)(,分别研究其幅频特性和相频特性,观察并记录生成的图形;k=-25:25;X=x*(exp(-j*pi/25)).^(n'*k); magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('单位矩形信号的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('单位矩形信号的相位谱')2.单位脉冲序列(1)生成单位脉冲序列,观察并记录生成的图形;n=1:50; %定义序列的长度是50x=zeros(1,50); %注意:MATLAB中数组下标从1开始x(1)=1;close all;subplot(3,1,1);stem(x);title('单位冲击信号序列');(2) 研究其频率特性,()∑∞-∞=-=n nj j en x e H ωω)(,分别研究其幅频特性和相频特性,观察并记录生成的图形;k=-25:25;X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱')3.卷积过程∑∞-∞=-= =mmnhmxnhnxny)()()(*)()(,n=1:50; %定义序列的长度是50hb=zeros(1,50); %注意:MATLAB中数组下标从1开始hb(1)=1;hb(2)=2.5;hb(3)=2.5;hb(4)=1;close all;subplot(3,1,1);stem(hb);title('系统hb[n]');m=1:50; %定义序列的长度是50A=444.128; %设置信号有关的参数a=50*sqrt(2.0)*pi;T=0.001; %采样率w0=50*sqrt(2.0)*pi;x=A*exp(-a*m*T).*sin(w0*m*T);subplot(3,1,2);stem(x);title('输入信号x[n]');y=conv(x,hb);subplot(3,1,3);stem(y);title('输出信号y[n]');四、实验报告要求1.写出生成对应序列的matlab程序,并分析;2.记录生成的图形;3.描述对应的序列和频率特性的特征;4.验证卷积计算结果;五、思考:1.如何生成实指数序列?写出对应的matlab程序a1=2n=1:50x1=(a1.^n)subplot(1,1,1)stem(x1);title('实指数序列')2.编写程序验证卷积定律。