_数字信号处理实验一要点
数字信号处理实验报告
《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信1303姓名学号:实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法;(2) 加深对常用离散时间信号的理解;(3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。
二、 实验原理(1) 常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n b )单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2)离散傅里叶变换:设连续正弦信号()x t 为0()sin()x t A t φ=Ω+这一信号的频率为0f ,角频率为002f πΩ=,信号的周期为00012T f π==Ω。
如果对此连续周期信号()x t 进行抽样,其抽样时间间隔为T ,抽样后信号以()x n 表示,则有0()()sin()t nT x n x t A nT φ===Ω+,如果令w 为数字频率,满足000012s sf w T f f π=Ω=Ω=,其中s f 是抽样重复频率,简称抽样频率。
为了在数字计算机上观察分析各种序列的频域特性,通常对)(jw e X 在[]π2,0上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n), 有∑-=-=10)()(N n n jw jw k k e n x e X其中 1,,1,02-==M k k Mw k ,π 通常M 应取得大一些,以便观察谱的细节变化。
取模|)(|k jw e X 可绘出幅频特性曲线。
数字信号处理上机实验1
数字信号处理实验信息252120502123赵梦然实验一快速傅里叶变换与信号频谱分析一.实验目的1. 在理论学习的基础上,通过本实验加深对离散傅里叶变换的理解。
2. 熟悉并掌握按时间抽取编写快速傅里叶变换(FFT)算法的程序。
3. 了解应用FFT 进行信号频谱分析过程中可能出现的问题,例如频谱混淆、泄漏、栅栏效应等,以便在实际中正确使用FFT 算法进行信号处理。
二.实验内容1. 仔细分析教材第六章“时间抽取法FFT 的FORTRAN 程序”,编写出相应的使用FFT 进行信号频谱分析的Matlab 程序。
2. 用FFT 程序分析正弦信号,分别在以下情况进行分析,并讨论所得的结果:a) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.000625s;b) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.005s;c) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.0046875s;d) 信号频率F=50Hz,采样点数N=32,采样间隔T=0.004s;e) 信号频率F=50Hz,采样点数N=64,采样间隔T=0.000625s;f) 信号频率F=250Hz,采样点数N=32,采样间隔T=0.005s;g) 将c)中信号后补32 个0,做64 点FFT,并与直接采样64 个点做FFT 的结果进行对比。
3. 思考题:1) 在实验a)、b)、c)和d)中,正弦信号的初始相位对频谱图中的幅度特性是否有影响?为什么?信号补零后做FFT 是否可以提高信号频谱的分辨率?为什么?三.实验程序function pushbutton1_Callback(hObject, eventdata, handles)F=str2double(get(handles.f,'string'));N=str2double(get(handles.n,'string'));T=str2double(get(handles.t,'string'));fai=str2double(get(handles.fai,'string'));zero=get(handles.zero,'value');%进行采样t=0:T:(N-1)*T;x=cos(2*pi*F*t+fai);%进行fft运算if zeroy=abs(fft(x,N+32));y=y/max(y);elsey=abs(fft(x));y=y/max(y);end%画图axes(handles.axes2);stem((0:N-1),x,'*');axes(handles.axes1);if zerostem((0:N+31),y,'.');elsestem((0:N-1),y);endxlabel('频率/Hz');ylabel('振幅');grid on;四.实验结果实验数据记录:(a)输入信号频率:50输入采样点数:32输入间隔时间:0.000625是否增加零点?否信号频率F=50Hz,采样长N=32,采样周期T=0.000625s,fs=1/T=1600Hz,基频为fs/N=50Hz,50/50=1.故此在频谱图上的第1个点和第31个点有值。
数字信号处理实验报告
数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。
在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。
本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。
实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。
通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。
实验设置如下:1. 设置采样频率为8kHz。
2. 生成一个正弦信号:频率为1kHz,振幅为1。
3. 生成一个方波信号:频率为1kHz,振幅为1。
4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。
实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。
这体现了正弦信号和方波信号在时域上的不同特征。
实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。
在实际应用中,信号的采样和重构对信号处理的准确性至关重要。
实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。
2. 设置采样频率为8kHz。
3. 对正弦信号进行采样,得到离散时间信号。
4. 对离散时间信号进行重构,得到连续时间信号。
5. 将重构的信号通过DAC输出到示波器上进行显示。
实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。
这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。
《数字信号处理》上机实验指导书
《数字信号处理》上机实验指导书实验1 离散时间信号的产生1.实验目的数字信号处理系统中的信号都是以离散时间形态存在,所以对离散时间信号的研究是数字信号处理的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
MATLAB 是一套功能强大的工程计算及数据处理软件,广泛应用于工业,电子,医疗和建筑等众多领域。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大的绘图功能,便于用户直观地输出处理结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号的理解。
2.实验要求本实验要求学生运用MATLAB编程产生一些基本的离散时间信号,并通过MATLAB的几种绘图指令画出这些图形,以加深对相关教学内容的理解,同时也通过这些简单的函数练习了MATLAB的使用。
3.实验原理(1)常见的离散时间信号1)单位抽样序列,或称为离散时间冲激,单位冲激:?(n)???1?0n?0 n?0如果?(n)在时间轴上延迟了k个单位,得到?(n?k)即:?1n?k ?(n?k)??0n?0?2)单位阶跃序列n?0?1 u(n)?n?0?0在MATLAB中可以利用ones( )函数实现。
x?ones(1,N);3)正弦序列x(n)?Acos(?0n??)这里,A,?0,和?都是实数,它们分别称为本正弦信号x(n)的振幅,角频率和初始相位。
f0??02?为频率。
x(n)?ej?n4)复正弦序列5)实指数序列x(n)?A?n(2)MATLAB编程介绍MATLAB是一套功能强大,但使用方便的工程计算及数据处理软件。
其编程风格很简洁,没有太多的语法限制,所以使用起来非常方便,尤其对初学者来说,可以避免去阅读大量的指令系统,以便很快上手编程。
值得注意得就是,MATLAB中把所有参与处理的数据都视为矩阵,并且其函数众多,希望同学注意查看帮助,经过一段时间的训练就会慢慢熟练使用本软件了。
实验一 数字信号处理 实验报告
1.已知系统的差分方程如下式:y1(n)=0.9y1(n-1)+x(n)程序编写如下:(1)输入信号x(n)=R10 (n),初始条件y1(-1)=1,试用递推法求解输出y1(n);a=0.9; ys=1; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10),定义其宽度为0~9n=1:35; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=sign(sign(10-n)+1);B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,1);stem(n,yn,'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1 ');xlabel('n');ylabel('y(n)')(2) 输入信号x(n)=R10 (n),初始条件y1(-1)=0,试用递推法求解输出y1(n)。
a=0.9; ys=0; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10)B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,2);stem(n,yn, 'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0 ');xlabel('n');ylabel('y(n)') 图形输出如下:-505101502468图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1ny (n )-55101502468图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0ny (n )2. 已知系统差分方程为: y 1(n )=0.9y 1(n -1)+x (n ) 用递推法求解系统的单位脉冲响应h (n ),要求写出h (n )的封闭公式,并打印h (n )~n 曲线。
数字信号处理实验报告一二
数字信号处理课程实验报告实验一 离散时间信号和系统响应一. 实验目的1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解2. 掌握时域离散系统的时域特性3. 利用卷积方法观察分析系统的时域特性4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析二、实验原理1. 采样是连续信号数字化处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。
对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: 式中()p t 为周期冲激脉冲,()a x t 为()a x t 的理想采样。
()a x t 的傅里叶变换为()a X j Ω:上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。
也即采样信号的频谱()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成的。
因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号ˆ()()()a a xt x t p t =1()()*()21()n a a a s X j X j P j X j jn T π∞=-∞Ω=ΩΩ=Ω-Ω∑()()n P t t nT δ∞=-∞=-∑计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即而()()j j n n X e x n e ωω∞-=-∞=∑为采样序列的傅里叶变换2. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。
数字信号处理实验一 ——离散时间信号分析
function [y,ny] = seqshift(x,nx,n0)
-1 0 1 2 n 3 4 5 6 7
5 4 y[n]=x[n-3] 3 2 1 0 -2
% [y,ny] = seqshift(x,nx,n0) % ------------------------% 实现 y(n) = x(n-n0) % n0为平移样本数 为平移样本数 ny = nx + n0; % 位置向量移位 y = x; % 序列的值不变
测控技术与仪器研究室
实验原理
2.序列的基本运算 2.2 序列的乘法 :z(n)=x(n)×y(n) × 序列的乘法是一种非线性运算,它用于信号的调制。 序列的乘法是一种非线性运算,它用于信号的调制。 它把两个序列中位置序号相同的样本相乘, 它把两个序列中位置序号相同的样本相乘,形成新的样本 序列。例如: 序列。例如: y (n ) = x(n )sin (ω0 n + 0.1π )称做对x(n )做正弦调制; y (n ) = x(n )RN (n )为从序列中用矩形函数 RN (n )截取[0, N − 1]的一段有限序列。
画图
subplot(4,2,1), stem(ns1:nf1,x1,'.') % 绘图 xlabel('nx1'),ylabel('x1'),axis([xlabel('nx1'),ylabel('x1'),axis([-5,10,0,4]) subplot(4,2,3), stem(ns2:nf2,x2,'.'),axis([-5,10,-2,2]) stem(ns2:nf2,x2,'.'),axis([-5,10,xlabel('nx2'),ylabel('x2') subplot(4,2,2), stem(ny,y1,'.') % 绘图 xlabel('ny'),ylabel('y1') subplot(4,2,4), stem(ny,y2,'.') xlabel('ny'),ylabel('y2') line([ny(1),ny(end)],[0,0]) % 画 x轴 subplot(4,2,6), stem(ny,ya,'.') xlabel('ny'),ylabel('ya') line([ny(1),ny(end)],[0,0]) % 画 x轴 subplot(4,2,8), stem(ny,yp,'.') xlabel('ny'),ylabel('yp') line([ny(1),ny(end)],[0,0]) % 画 x轴 set(gcf,'color','w') % 置图形背景色为白
数字信号处理实验一
实验一 离散时间信号分析一、实验目的1.熟悉MATLAB 应用环境,常用窗口的功能和使用方法。
2.掌握各种常用的序列,理解其数学表达式和波形表示。
3.掌握在计算机中生成及绘制数字信号波形的方法。
4.掌握序列的相加、相乘、移位、反褶、卷积等基本运算及计算机实现。
5.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
二、实验原理1.序列的基本概念离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为∞<<∞-n 的整数,n 取其它值)(n x 没有意义。
离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t a x 进行等间隔采样,采样间隔为T ,得到一个有序的数字序列)}({nT x a 就是离散时间信号,简称序列。
2.常用序列常用序列有:单位脉冲序列(单位抽样))(n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算序列的运算包括移位、反褶、和、积、点乘、累加、差分运算、卷积等。
4.序列的卷积运算)()()()()(n h n x m n h m x n y m *=-=∑∞-∞=上式的运算关系称为卷积运算,式中*代表两个序列卷积运算。
两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。
其计算的过程包括以下4个步骤(1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。
(2)移位:将)(m h -移位n ,得)(m n h -。
当n 为正数时,右移n 位;当n 为负数时,左移n 位。
(3)相乘:将)(m n h -和)(m x 的对应点的值相乘。
数字信号处理实验1
k1r xk2r x yk2r y x桂林理工大学实验报告1.实验目的(1)掌握信号表示方法。
(2)掌握离散信号的延迟、相加、相乘及平移、反折变换 2.实验原理与方法首先,在用MATLAB 表示离散序列并将其可视化时,我们还应注意以下几点: 第一、离散时间序列无法用符号运算来表示,要用矩阵的形式;第二、由于在MATLAB 中矩阵的元素个数有限,因此,MATLAB 无法表示无限长的序列;第三、在绘制离散信号波形的函数stem 命令,而不是plot 命令。
习题1-2 计算卷积(2)x[k=g[k]={k+1;0<=k<=3} 实验程序为 x=[1,2,3,4]; kx=0:3; g=[1,2,3,4]; kg=0:3; y1 = conv(x, g); xf=fliplr(x) y2 = conv(xf,g);k1=kx(1)+kg(1):kx(end)+kg(end); stem(k1,y1);xlabel('k1'); ylabel('y1'); 习题1-3 (1)已知序列想x[k]={1,2,3,4;k=0,1,2,3},y[k]={-1,1,-2,3;k=0,1,2,3},试计算序列x[k]的自相关函数rx[n],以及序列x[k]与y[k]的互相关函数rxy[k]和ryx[k]。
(2)若某两个序列的自相关函数rx[k]相同,则该两个序列之间存在何种关系?(3)若信号s[k]=x[k]+n[k],x[k]与n[k]相关性很小,如何判断s[k]中存在x[k]?x=[1,2,3,4]; kx=0:3;y=[-1,1,-2,3]; ky=0:3; xf=fliplr(x);rx = conv(x, x+1);rxy = conv(xf,y);ryx=conv(y,xf); k1=kx(1)+ky(1):kx(end)+ky(end); kxf=-fliplr(kx); k2=kxf(1)+ky(1):kxf(end)+ky(end);subplot(1,3,1)stem(k1,rx);xlabel('k1'); ylabel('rx');subplot(1,3,2) stem(k2,rxy); xlabel('k2'); ylabel('rxy'); subplot(1,3,3); stem(k2,ryx);xlabel('k2'); ylabel('ryx');(2)因为rx[n]=x[n]*x[-n],所以这两个序列相等或互为翻转序列。
数字信号处理实验一报告
实验一:用FFT 对信号作频谱分析1.实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。
2. 实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
3.实验步骤及内容(1)对以下序列进行谱分析。
⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它nn n n n n x n R n x ,074,330,4)(,074,830,1)()()(3241选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(2)对以下周期序列进行谱分析。
4()cos4x n n π=5()cos(/4)cos(/8)x n n n ππ=+选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(3)对模拟周期信号进行谱分析6()cos8cos16cos20x t t t t πππ=++选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。
河海大学数字信号处理实验一
实验一 MATLAB基本操作班级:姓名:学号:一、实验目的1、掌握MATLAB的矩阵运算;2、掌握MATLAB常用库函数的用法;3、掌握MATLAB的输入输出语句和控制语句;4、掌握MATLAB的作图方法;5、掌握MATLAB的M文件和M函数。
二、实验原理1.矩阵的赋值及运算2.MATLAB常用库函数的用法3.MATLAB的输入输出语句和控制语句4.MATLAB的作图方法5.MATLAB的M文件和M函数三、实验内容1、用MATLAB产生矩阵:A⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦123654795,B⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦222136248,C⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦101213并进行如下计算:(1)分别求出A和B的逆矩阵A-1和B-1;(2)分别计算A*B和B*A,并计较它们的结果;(3)将A*B的结果对角化,形成一个对角矩阵;(4)解方程组:Ax=C。
2、设x=2,y=3,用MATLAB计算下面的表达式:(1);(23、用MATLAB产生一个⨯33的复数矩阵,并对其进行转置和共轭转置。
4、用MATLAB 编写一段程序,将你的学号输出到磁盘文件中,文件名即为你的学号,扩展名为“.txt ”。
5、分别用MATLAB 编写程序,实现以下运算: (1)+++⋅⋅⋅+123100; (2)⨯⨯⨯⋅⋅⋅⨯12310。
6、用MATLAB 作出以下函数的图像(自变量每隔0.1取一个点): (1)sin()y x =-21,πx ≤≤02; (2)e x y =,x -≤≤55; (3)ln y x =,.x ≤≤015。
7、用MATLAB 编写一个M 函数,输入a 、b 、c 三个参数,输出以下函数的图像:y ax bx c =++2,b bx a a--≤≤-+5522(自变量每隔0.1取一个点), 请将该函数保存为M 文件的形式,并在MATLAB 命令窗口中调用该函数。
四、实验结果与分析1.(1)程序:A=[1 2 3;6 5 4;7 9 5];B=[2 2 2;1 3 6;2 4 8]; d1=inv(A) d2=inv(B) 结果0.1667-0.11900.45240.33330.3810-0.0476-0.1667-0.40480.2619-A 1-= 1.00001.0000-0.5000- 2.5000-3.00001.0000 1.50002.0000-0B 1-= (2)程序:A=[1 2 3;6 5 4;7 9 5]; B=[2 2 2;1 3 6;2 4 8]; d3=A*B d4=B*A 结果:1086133744325382010B A *=629682457161243228A B *=(3)程序:A=[1 2 3;6 5 4;7 9 5]; B=[2 2 2;1 3 6;2 4 8]; d5=diag(diag(A*B)) 结果:1080004300010d5=(4) 程序:A=[1 2 3;6 5 4;7 9 5];C=[10;12;13]; x=inv(A)*C结果:3.78570.7143-0.0714x =分析:根据要求将A,B,C 矩阵复制后分别根据语句“逆矩阵:d3=inv(a)、相乘:C3=A*B ,C4=B*A ,对角化:d7=diag(diag(a))、左除:x=a\b=inv(a)*b ,a*x=b 即可得到实验结果。
北理工数字信号处理实验一
实验一基2-FFT算法实现
实验目的
1、掌握基2-FFT的原理及具体实现方法。
2、编程实现基2-FFT算法。
3、加深理解FFT算法的特点。
实验设备与环境
计算机、MATLAB软件环境
实验原理
FFT是一种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform)。
FFT算法可分为按时间抽取算法和按频率抽取算法,先简要介绍FFT的基本原理。
从DFT运算开始,说明FFT的基本原理。
FFT算法基本上可以分为两大类,即按时间抽取法和按频率抽取法。
实验内容
1.编程实现序列长度N=8的按时间抽取的基2-FFT算法。
给定一个8点序列,采用编写的
程序计算其DFT,并与MATLAB中的fft函数计算的结果相比较,以验证结果的正确性。
结果如下:
验证如下:
2.编程实现序列长度为N=8的按频率抽取的基2-FFT算法。
给定一个8点序列,采用编写
的程序计算其DFT,并与MATLAB中fft函数计算的结果相比较,以验证结果的正确性。
心得与体会
通过本次实验,我加深了对课堂上所学的FFT运算的理解,掌握了如何用matlab实现基2-FFT 算法。
过程中在编程上有一些不熟练,经过老师同学的帮助,最终得以完成。
数字信号处理实验报告
数字信号处理实验报告数字信号处理实验报告一、实验目的本实验旨在通过数字信号处理的方法,对给定的信号进行滤波、频域分析和采样率转换等操作,深入理解数字信号处理的基本原理和技术。
二、实验原理数字信号处理(DSP)是一种利用计算机、数字电路或其他数字设备对信号进行各种处理的技术。
其主要内容包括采样、量化、滤波、变换分析、重建等。
其中,滤波器是数字信号处理中最重要的元件之一,它可以用来提取信号的特征,抑制噪声,增强信号的清晰度。
频域分析是指将时域信号转化为频域信号,从而更好地理解信号的频率特性。
采样率转换则是在不同采样率之间对信号进行转换,以满足不同应用的需求。
三、实验步骤1.信号采集:首先,我们使用实验室的信号采集设备对给定的信号进行采集。
采集的信号包括噪声信号、含有正弦波和方波的混合信号等。
2.数据量化:采集到的信号需要进行量化处理,即将连续的模拟信号转化为离散的数字信号。
这一步通常通过ADC(模数转换器)实现。
3.滤波处理:将量化后的数字信号输入到数字滤波器中。
我们使用不同的滤波器,如低通、高通、带通等,对信号进行滤波处理,以观察不同滤波器对信号的影响。
4.频域分析:将经过滤波处理的信号进行FFT(快速傅里叶变换)处理,将时域信号转化为频域信号,从而可以对其频率特性进行分析。
5.采样率转换:在进行上述处理后,我们还需要对信号进行采样率转换。
我们使用了不同的采样率对信号进行转换,并观察采样率对信号处理结果的影响。
四、实验结果及分析1.滤波处理:经过不同类型滤波器处理后,我们发现低通滤波器可以有效抑制噪声,高通滤波器可以突出高频信号的特征,带通滤波器则可以提取特定频率范围的信号。
这表明不同类型的滤波器在处理不同类型的信号时具有不同的效果。
2.频域分析:通过FFT处理,我们将时域信号转化为频域信号。
在频域分析中,我们可以更清楚地看到信号的频率特性。
例如,对于噪声信号,我们可以看到其频率分布较为均匀;对于含有正弦波和方波的混合信号,我们可以看到其包含了不同频率的分量。
数字信号处理实验报告_完整版
实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列 的离散时间傅里叶变换 在频率区间 的N 个等间隔分布的点 上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列 的N 点DFT ,实际上就是 序列的DTFT 在N 个等间隔频率点 上样本 。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFT( )12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。
数字信号处理实验一
DSP 实验一 报告(1)编写程序产生下列离散序列: ①()()(),34f n n n δ=-≤≤Matlab 程序如下: n1 = -3; n2 = 4; n0 = 0; n = n1:n2;x = [n==n0]; % x 在n=n0时为1,其余为0 stem(n,x,'filled'); %filled:序列圆心处用实心圆表示 axis([n1,n2,0,1.1*max(x)]) title('单位抽样序列') xlabel('time(n)')ylabel('Amplitude:x(n)')② ,55f n u n n =-≤≤Matlab 程序如下: n1 = -5; n2 = 5; n0 = 0; n = n1:n2;x = [n>=n0]; % x 在n>=n0时为1,其余为0 stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)])title('单位阶跃序列') xlabel('time(n)')ylabel('Amplitude:x(n)')运行结果如下:③ ()()()0.1 1.6*,016j nf n e n π+=≤≤Matlab 程序如下: sigma = 0.1; omega = 1.6; n = 0:16;x = exp((sigma+i*omega)*n); subplot(2,2,1),plot(n,real(x)); title('复指数信号的实部')subplot(2,2,3),stem(n,real(x),'filled'); title('复指数序列的实部') subplot(2,2,2),plot(n,imag(x)); title('复指数信号的虚部')subplot(2,2,4),stem(n,imag(x),'filled'); title('复指数序列的虚部')运行结果如下:④ ()()3sin,0204n f n n π=≤≤Matlab 程序如下: n=0:20;y=3*sin(n*pi/4); stem(n,y)运行结果如下:⑤()()() sin5,2020 5nf n nn=-≤≤Matlab程序如下:n = -20:20;f = sinc(n/5);subplot(2,1,1),plot(n,f);title('sinc信号')subplot(2,1,2),stem(n,f);title('sinc序列')运行结果如下:(2)一个连续的周期性三角波信号频率为50Hz,信号幅度在0~+2V之间,在窗口上显示2个周期的信号波形,对信号的一个周期进行16点采样来获得离散信号。
数字信号处理实验一 实验报告
数字信号处理实验一1.完成本文档内容的自学阅读和其中各例题后子问题;Q1.1运行程序P1.1,以产生单位样本序列u[n]并显示它。
答: clf;n=-10:20;u=[zeros(1,10) 1 zeros(1,20)];stem(n,u);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2])Q1.2命令clf,axis,title,xlabel和ylabel的作用是什么?答:clf清除图对象,axis 控制轴刻度和风格的高层指令,title 设置图名,xlabel和ylabel设置横纵坐标轴名称。
Q1.3修改程序P1.1以产生带有延时11个单位样本的延迟单位样本序列ud[n]。
运行修改的程序并显示产生的序列。
答:clf;n=0:30;ud=[zeros(1,11) 1 zeros(1,19)];stem(n,ud);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([0 30 0 1.2])Q1.4修改程序P1.1以产生单位步长序列s[n].运行修改后程序并显示产生的序列。
答:clf;n = 0:30;u = [1.*n];stem(n,u);title('Unit Sample Sequence');axis([0 30 0 30])Q1.5修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。
运行修改后的程序并显示产生的序列。
答:clf;n = -15:30;s=[zeros(1,8) ones(1,38)];stem(n,s);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence');axis([-15 30 0 1.2]);Q1.6 运行程序P1.2,以产生复数值的指数序列。
数字信号处理实验指导
实验一 离散时间信号与系统的时域分析(基础验证型)1.实验目的(1)熟悉离散时间信号的产生与基本运算。
(2)熟悉离散时间系统的时域特性。
(3)利用卷积方法观察分析系统的时域特性。
2.实验原理(1)典型离散时间信号单位样本序列(通常称为离散时间冲激或单位冲激)用[]n δ表示,其定义为1,0[]0,0n n n δ=⎧=⎨≠⎩(1.1) 单位阶跃序列用[]n μ表示,其定义为1,0[]0,0n n n μ≥⎧=⎨<⎩ (1.2) 指数序列由 []n x n A α= (1.3)给定。
其中A 和α可以是任意实数或任意复数,表示为00(),j j e A A e σωφα+==式(1.3)可改写为 0000()00[]cos()sin()n j n n n x n A e A e n j A e n σωφσσωφωφ++==+++ (1.4) 带有常数振幅的实正弦序列形如0[]cos()x n A n ωφ=+ (1.5)其中A ,0ω和φ是实数。
在式(1.4)和(1.5)中,参数A ,0ω和φ分别称为正弦序列[]x n 的振幅、角频率和初始相位。
002f ωπ=称为频率。
(2)序列的基本运算长度N 的两个序列[]x n 和[]h n 的乘积,产生长度也为N 的序列[]y n[][][]y n x n h n =⋅ (1.6)长度为N 的两个序列[]x n 和[]h n 相加,产生长度也为N 的序列[]y n[][][]y n x n h n =+ (1.7)用标量A 与长度为N 的序列[]x n 相乘,得到长度为N 的序列[]y n[][]y n A x n =⋅ (1.8)无限长序列[]x n 通过时间反转,可得到无限长序列[]y n[][]y n x n =- (1.9)无限长序列[]x n 通过M 延时,可得到无限长序列[]y n[][]y n x n M =- (1.10)若M 是一个负数,式(1.10)运算得到序列[]x n 的超前。
数字信号处理实验报告
《数字信号处理》实验报告课程名称:《数字信号处理》学院:信息科学与工程学院专业班级:通信1502班学生姓名:侯子强学号:0905140322指导教师:李宏2017年5月28日实验一 离散时间信号和系统响应一. 实验目的1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解2. 掌握时域离散系统的时域特性3. 利用卷积方法观察分析系统的时域特性4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析二、实验原理1. 采样是连续信号数字化处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。
对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号:ˆ()()()a a xt x t p t = 式中()p t 为周期冲激脉冲,()a x t 为()a x t 的理想采样。
()a x t 的傅里叶变换为()a X j Ω:上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T。
也即采样信号的频谱()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成的。
因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即()()n P t t nT δ∞=-∞=-∑1()()*()21()n a a a s X j X j P j X j jn T π∞=-∞Ω=ΩΩ=Ω-Ω∑()()|j a TX j X e ωω=ΩΩ=而()()j j n n X e x n e ωω∞-=-∞=∑为采样序列的傅里叶变换2. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
《数字信号处理》实验讲义(信息计算)
《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的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 nx 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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:罗格学号:2012302530084 班级:信安3班日期:2014.3.15实验1基本离散信号的MATLAB产生和图形显示实验前言:MATLAB 是一套功能强大的工程计算及数据处理软件,在众多领域得到广泛应用。
它是一种面向对象的,交互式程序设计语言,其结构完整有优良的可移植性。
它在矩阵运算,数字信号处理方面有强大的功能。
另外,MATLAB提供了方便的绘图功能,便于用户直观地输出处理结果。
本课程实验要求学生运用MATLAB编程完成一些数字信号处理的基本功能,加深对教学内容的理解。
实验目的:1.熟悉掌握MATLAB的基本操作2.通过使用来熟悉常用离散信号;实验内容:1.1 G ENERATION OF SEQUENCESProject 1.1 Unit sample and unit step sequencesA copy of Program P1_1 is given below.% Program P1_1% Generation of a Unit Sample Sequenceclf;% Generate a vector from -10 to 20n = -10:20;% Generate the unit sample sequenceu = [zeros(1,10) 1 zeros(1,20)];% Plot the unit sample sequencestem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence');axis([-10 20 0 1.2]);< Insert program code here. Copy from m-file(s) and paste. >Answers:Q1.1The unit sample sequence u[n] generated by running Program P1_1 is shown below:< Insert MATLAB figure(s) here. Copy from figure window(s) and paste. >Q1.2The purpose of clf command is–清除当前窗口图形The purpose of axis command is–设定坐标轴最大值最小值和The purpose of title command is –命名图表名 The purpose of xlabel command is –命名X 轴 The purpose of ylabel command is –命名Y 轴Q1.3The modified Program P1_1 to generate a delayed unit sample sequence ud[n] with a delay of 11 samples is given below along with the sequence generated by running this program . < clf; n=0:30;u=[zeros(1,11) 1 zeros(1,19)]; stem(n,u);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([0 30 0 1.2]);> <Time index nA m p l i t u d eUnit Sample Sequence>Q1.4The modified Program P1_1 to generate a unit step sequence s[n] is given below along with the sequence generated by running this program .<% Program s_P1_1% Generation of a Unit Step Sequence clf; % Generate a vector from -10 to 20 n = -10:20;% Generate the unit sample sequence s = [zeros(1,10) ones(1,21)]; % Plot the unit sample sequence stem(n,s);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([-10 20 0 1.2]); ><Time index nA m p l i t u d eUnit Sample Sequence>Q1.5The modified Program P1_1 to generate a unit step sequence sd[n] with an advance of 7 samples is given below along with the sequence generated by running this program .<% Program s_P1_1% Generation of a Unit Step Sequence clf;% Generate a vector from -10 to 20 n = -10:20;% Generate the unit sample sequence s = [zeros(1,3) ones(1,28)];% Plot the unit sample sequence stem(n,s);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([-10 20 0 1.2]); >Time index nA m p l i t u d eUnit Sample Sequence>Project 1.2 Exponential signalsA copy of Programs P1_2 and P1_3 are given below . < clf;c = -(1/12)+(pi/6)*i; K = 2; n = 0:40;x = K*exp(c*n); subplot(2,1,1); stem(n,real(x));xlabel('Time index n');ylabel('Amplitude'); title('Real part'); subplot(2,1,2); stem(n,imag(x));xlabel('Time index n');ylabel('Amplitude'); title('Imaginary part');> Answers: Q1.6The complex-valued exponential sequence generated by running Program P1_2 is shown below :0510152025303540Time index n A m p l i t u d eReal part0510152025303540Time index nA m p l i t u d eImaginary part>Q1.7 The parameter controlling the rate of growth or decay of this sequence is - C The parameter controlling the amplitude of this sequence is - KQ1.8 The result of changing the parameter c to (1/12)+(pi/6)*i is -实部取反 Q1.9 The purpose of the operator real is -合成实部 The purpose of the operator imag is -合成虚部 Q1.10 The purpose of the command subplot is -创建坐标Q1.11The real-valued exponential sequence generated by running Program P1_3 is shown below :<Time index n A m p l i t u d eTime index nA m p l i t u d eImaginary part>Q1.12 The parameter controlling the rate of growth or decay of this sequence is - a The parameter controlling the amplitude of this sequence is - nQ1.13 The difference between the arithmetic operators ^ and .^ is - ^用于矩阵 .^用于数组 Q1.14The sequence generated by running Program P1_3 with the parameter a changed to 0.9 and the parameter K changed to 20 is shown below : <>Q1.15 The length of this sequence is - 36It is controlled by the following MATLAB command line :n=0:35It can be changed to generate sequences with different lengths as follows (give an example command line and the corresponding length): n=0::2;length :20Q1.16The energies of the real-valued exponential sequences x [n]generated in Q1.11 and Q1.14 and computed using the command sum are 3.1851e+003,195.4943Project 1.3 Sinusoidal sequences A copy of Program P1_4 is given below . < n = 0:40;f = 0.1; phase = 0; A = 1.5;arg = 2*pi*f*n - phase; x = A*cos(arg); clf; stem(n,x);axis([0 40 -2 2]); grid;title('Sinusoidal Sequence'); xlabel('Time index n'); ylabel('Amplitude'); axis; > Answers:Q1.17 The sinusoidal sequence generated by running Program P1_4 is displayed below .<0510152025303540Sinusoidal SequenceTime index nA m p l i t u d e>Q1.18 The frequency of this sequence is - f=0.1HzIt is controlled by the following MATLAB command line :A sequence with new frequency such as 1000Hz can be generated by the following command line :The parameter controlling the phase of this sequence is - phase The parameter controlling the amplitude of this sequence is - A The period of this sequence is - -10sQ1.19 The length of this sequence is -序列的长度是:41It is controlled by the following MATLAB command line : n=0:40A sequence with new length __31___ can be generated by the following command line :Q1.20 The average power of the generated sinusoidal sequence is -Q1.21 The purpose of axis command is - 1.5000The purpose of grid command is -控制坐标轴缩放比例 Q1.22The modified Program P1_4 to generate a sinusoidal sequence of frequency 0.9 is given below along with the sequence generated by running it .<% Generation of a sinusoidal sequence n = 0:40; f = 0.9; phase = 0; A = 1.5;arg = 2*pi*f*n - phase; x = A*cos(arg);clf; % Clear old graphstem(n,x); % Plot the generated sequence axis([0 40 -2 2]); grid;title('Sinusoidal Sequence'); xlabel('Time index n'); ylabel('Amplitude'); axis; ><0510152025303540Sinusoidal SequenceTime index nA m p l i t u d e>A comparison of this new sequence with the one generated in Question Q1.17 shows - 两幅图形相同 (频率为0.1和频率为0.9的两个正弦序列的图形相同)A sinusoidal sequence of frequency 1.1 generated by modifying Program P1_4 is shown below. <0510152025303540Sinusoidal SequenceTime index nA m p l i t u d e>A comparison of this new sequence with the one generated in Question Q1.17 shows –波形相同 Q1.23The sinusoidal sequence of length 50, frequency 0.08, amplitude 2.5, and phase shift of 90 degrees generated by modifying Program P1_4 is displayed below .<0510152025303540Sinusoidal SequenceTime index nA m p l i t u d e>The period of this sequence is – 2π/ω=1/f=1/0.08=25/2周期为25/2所以在25以内有2个余弦波形Q1.24By replacing the stem command in Program P1_4 with the plot command, the plot obtained is as shown below : <0510152025303540-2-1.5-1-0.50.511.52Sinusoidal SequenceTime index nA m p l i t u d e>The difference between the new plot and the one generated in Question Q1.17 is –1.17中是离散的点,而PLOT 命令将离散的点用平滑的曲线连接起来,使之成为连续的余弦信号。