实验1离散时间信号的产生与运算
数字信号处理实验报告
《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信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 常见离散信号产生和实现
(clf;--clc;clear;)实验1 常见离散信号产生和实现一、实验目的:1、加深对常用离散信号的理解;2、掌握matlab 中一些基本函数的建立方法。
二:matlab 使用1)创建M 文件 File-→New-→M-file 2)运行 Debug->run注:在试验过程中若有某些函数不懂,可以通过Help->search->输入要查询的函数名即可二、实验原理:1.单位抽样序列⎩⎨⎧=01)(n δ≠=n n 在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n kn 2.单位阶越序列⎩⎨⎧01)(n u00<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x = %一个长度为N 的零矩阵3.正弦序列)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复指数序列n j e r n x ϖ⋅=)(在MATLAB 中)**exp(1:0n w j r x N n ⋅=-=5.指数序列n a n x =)(在MATLAB 中na x N n .^1:0=-=三、实验内容实现和图形生成1、五种基本函数的生成程序如下:(1)、单位抽样序列% 单位抽样序列和延时的单位抽样序列 clf; % Clear current figure window n=0:10;x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)]; subplot(1,2,1);stem(n,x1);xlabel ('时间序列n');ylabel('振幅');title('单位抽样序列x1'); subplot(1,2,2);stem(n,x2); xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');(2)、单位阶越序列clf;n=0:10;u=[ones(1,11)];stem(n,u);xlabel ('时间序列n');ylabel('振幅');title('单位阶越序列');所得的图形如下所示:(3)正弦函数clf;n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');(4)、复指数序列clf;n=1:30;x=2*exp(j*3*n);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)'); 图形如下:(5)指数序列 clf; n=1:30; x=1.2.^n;stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n');2、绘出信号zne n x =)(,当6)12/1(πjz +-=、6)12/1(πjz +=时、121=z 、62πjz +=、6πjz =时的信号实部和虚部图;程序如下: clf;z1=-1/12+j*pi/6;z2=1/12+j*pi/6;z3=1/12;z4=2+j*pi/6;z5=j*pi/6; n=0:20;x1=exp(z1*n);x2=exp(z2*n); x3=exp(z3*n);x4=exp(z4*n); x5=exp(z5*n); subplot(5,2,1);stem(n,real(x1)); xlabel ('时间序列n');ylabel('实部');title('复指数z1=-1/12+j*pi/6时序列实部'); subplot(5,2,2);stem(n,imag(x1)); xlabel ('时间序列n');ylabel('虚部');title('复指数z1=-1/12+j*pi/6时序列虚部'); subplot(5,2,3);stem(n,real(x2)); xlabel ('时间序列n');ylabel('实部');title('复指数z2=1/12+j*pi/6时序列实部');subplot(5,2,4);stem(n,imag(x2)); xlabel ('时间序列n');ylabel('虚部');title('复指数z2=1/12+j*pi/6时序列虚部'); subplot(5,2,5);stem(n,real(x3)); xlabel ('时间序列n');ylabel('实部');title('复指数z3=1/12时序列实部'); subplot(5,2,6);stem(n,imag(x3)); xlabel ('时间序列n');ylabel('虚部');title('复指数z3=1/12时序列虚部'); subplot(5,2,7);stem(n,real(x4)); xlabel ('时间序列n');ylabel('实部');title('复指数z4=2+j*pi/6时序列实部'); subplot(5,2,8);stem(n,imag(x4)); xlabel ('时间序列n');ylabel('虚部');title('复指数z4=2+j*pi/6时序列虚部'); subplot(5,2,9);stem(n,real(x5)); xlabel ('时间序列n');ylabel('实部');title('复指数z5=j*pi/6时序列实部'); subplot(5,2,10);stem(n,imag(x5)); xlabel ('时间序列n');ylabel('虚部');title('复指数z5=j*pi/6时序列虚部');由上图的实部部分可以看出,Z=pi/6时,序列周期为12。
离散时间信号的基本运算
信号绝对值的积分
总结词
信号绝对值的积分是指将离散时间信号中每个值的绝对值与其对应的权系数相乘,并求和得到的结果 。
详细描述
信号绝对值的积分在处理一些具有正负性质的问题时非常有用,例如计算信号的能量或幅度。对于离散时 间信号 $x(n)$,其绝对值的积分可以表示为 $sum_{n=0}^{N-1} |x(n)| cdot Delta t$。
符号相加主要用于处理具有正负符号 的信号,使得正负符号能够相互抵消, 从而得到一个新的符号较少的信号。
02
离散时间信号的乘法
离散时间信号的乘法 信号相乘
信号相乘
离散时间信号的乘法是指将两个信号对应时刻的数值相乘。当两个信号相乘时,其输出信号的幅度将等于两个输入信 号幅度相乘的结果。
信号的绝对值相乘
04
离散时间信号的微分
信号的微分
信号的微分是指将信号中的每个值都 减去前一个值,得到的结果就是微分 后的信号。在离散时间信号中,微分 运算可以用于分析信号的变化趋势。
例如,如果一个离散时间信号为 [1, 3, 5, 7, 9],其微分为 [0, 2, 2, 2, 2],表 示信号在每个时刻的变化量。
信号符号的积分
总结词
信号符号的积分是指将离散时间信号中 每个值的符号与其对应的权系数相乘, 并求和得到的结果。
VS
详细描述
信号符号的积分可以用于处理一些具有正 负性质的问题,例如计算信号的极性或方 向。对于离散时间信号 $x(n)$,其符号的 积分可以表示为 $sum_{n=0}^{N-1} text{sgn}(x(n)) cdot Delta t$,其中 $text{sgn}(x(n))$ 表示 $x(n)$ 的符号函数。
03
时域离散信号的产生与基本运算
实验一 时域离散信号的产生与基本运算一、实验目的1、了解常用的时域离散信号及其特点。
2、掌握MATLAB 产生常用时域离散信号的方法。
3、掌握时域离散信号简单的基本运算方法。
二、实验内容1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列。
2、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、 信号和、信号积、信号能量。
3、已知信号(1) 描绘)(n x 序列的波形。
(2) 用延迟的单位脉冲序列及其加权和表示)(n x 序列。
(3) 描绘以下序列的波形:)2()(),2(2)(),2(2)(321n x n x n x n x n x n x -=+=-=三、实现步骤1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列。
(1)单位抽样序列程序:x=zeros(1,10);x(2)=1;stem(x,'filled')axis([0,10,-0.2,1]);title('µ¥Î»³éÑùÐòÁÐ');-0.200.20.40.60.8图1 (2)单位阶跃序列程序:N=10;u=ones(1,N);stem(u,'filled')axis([-10,10,0,1]);title('µ¥Î»½×Ô¾ÐòÁÐ');00.10.20.30.40.50.60.70.80.91单位阶跃序列图2 (3)正弦序列程序:x=-20:1:20;y=sin(0.2*pi.*x+0.5*pi);stem(x,y,'filled');axis([-20,20,-2,2]);title('ÕýÏÒÐòÁÐ');正弦序列-20-15-10-505101520图3 (4)实指数序列a=1/2程序:n=0:10;a1=1/2;y1=a1.^n;stem(n,y1,'filled');axis([0,10,0,1]);title('ʵָÊýÐòÁУ¬a=1/2');实指数序列,a=1/2图4 5实指数序列a=2程序:n=0:10;a2=2;y2=a2.^n;stem(n,y2,'filled');title('ʵָÊýÐòÁÐ,a=2');实指数序列,a=2图5 6 随机序列程序:y=rand(1,20);stem(y,'filled');title('Ëæ»úÐòÁÐ');0246810121416182000.10.20.30.40.50.60.70.80.91随机序列图62、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、 信号和、信号积、信号能量。
常见离散信号产生和实现实验报告
常见离散信号产生和实现实验报告实验1常见离散信号产生和实现学院信息科学与工程学院专业通信工程1班姓名学号一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。
二、实验原理MATLAB语言提供了一系列函数用来产生信号,如exp,sin,cos, square,sawtooth,ones,zeros等函数。
1.基本信号序列1)单位抽样序列???=01)(nδ≠=n n在MATLAB中可以利用zeros()函数实现。
x=[1zeros(1, n-1)]程序:clear all;n=-20:20;u=[zeros(1,20)ones(1,21)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p21');axis([-20200 1.2]);图形:Request1:编写一个)(k n-δ的函数。
???=-01)(k nδ≠=n kn程序:clear all;n=-20:20;k=5;u=[zeros(1,20+k)ones(1,21-k)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p22');axis([-20200 1.2]);图形:(2)单位阶跃序列???01)(n u00<≥n n在MATLAB中可以利用ones()函数实现。
);,1(N ones x=Request2:编写一个)(k n u-的函数。
程序:clf;n=-20:20;u=[zeros(1,20)1zeros(1,20)];stem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence p10');axis([-20200 1.2]);图形:Request2:编写一个)(k n u-的函数。
信号实验报告( 离散傅里叶变换及其快速算法及IIR数字滤波器的设计)
信号实验一离散傅里叶变换及其快速算法一、实验目的1、掌握计算序列的离散傅里叶变换(FFT)的方法;2、掌握实现时间抽取快速傅里叶变换(FFT)编程方法;3、加深对DFT与序列的傅里叶变换和Z变换之间的关系的理解;4、复习复数序列的运算方法。
二、程序设计框图1.码位倒置程序框图2.蝶形图运算程序框图三、实验程序实验程序的源代码如下:#include"math.h"#include"stdio.h"/*------------------------------------------------------------------------------------------子函数部分------------------------------------------------------------------------------------------*/ void swap(float *a,float *b)//交换变量子函数{float T;T=*a;*a=*b;*b=T;}void fft (float A [],float B [],unsigned M)//数组A为序列的实部, 数组B为序列的虚部{unsigned long N,I,J,K,L,LE,LE1,P,Q,R;float Wr,Wi,W1r,W1i,WTr,WTi,theta,Tr,Ti;N=1<<M;J=0;for(I=0;I<N-1;I++){if(J>I){swap(&A [I],&A [J]);swap(&B [I],&B [J]);}K=N>>1;while(K>=2&&J>=K){J-=K;K>>=1;}J+=K;}for(L=1;L<=M;L++){LE=1<<L;LE1=LE/2;Wr=1.0;Wi=0.0;theta=(-1)*3.1415926536/LE1;W1r=cos (theta);W1i=sin (theta);for(R=0;R<LE1;R++){for(P=R;P<N-1;P+=LE){Q=P+LE1;//基本蝶形图的复数运算Tr=Wr*A[Q]-Wi*B[Q];Ti=Wr*B[Q]+Wi*A[Q];A[Q]=A[P]-Tr;B[Q]=B[P]-Ti;A[P]+=Tr;B[P]+=Ti;}WTr=Wr;WTi=Wi;Wr=WTr*W1r-WTi*W1i;Wi=WTr*W1i+WTi*W1r;}}return;}/*------------------------------------------------------------------------------------------主函数部分------------------------------------------------------------------------------------------*/ void main(){float A[20],B[20];char t1,t2,file_name[20];int M,N,i,iiff;FILE *fp;/*************************************数据读取部分************************************/ printf("请输入文件名:");//输入数据文件名scanf("%s",file_name);printf("FFT变换还是IFFT变换?(FFT:1,IFFT:-1):");//输入变换方式, 1为FFT, -1为IFFTscanf("%d",&iiff);while(iiff!=1&&iiff!=-1)//检错: 检验上一步的输入是否有错, 有错则重新输入{printf("输入错误, 请重新输入! ");printf("FFT or IFFT?(FFT:1,IFFT:-1):");scanf("%d",&iiff);}fp=fopen(file_name,"r");//打开文件并读入数据fscanf(fp,"%d",&M);N=pow(2,M);//计算序列总数for(i=0;i<N;i++)//读取文件中的数据{fscanf(fp,"%f%c%c%f",&A[i],&t1,&t2,&B[i]);if(iiff==-1)//根据FFT或IFFT修正BB[i]=B[i]*-1;if(t2!='j')//检错: 检验读取格式是否有错{printf("输入格式错误\n");break;}if(t1=='+')//判断虚部的正负号B[i]=B[i];else if(t1=='-')B[i]=-B[i];}/****************************************变换部分****************************************/ fft(A,B,M);//FFT变换/**************************************数据输出部分**************************************/ fp=fopen("fft_result.txt","w"); //输出结果if(iiff==-1)fprintf(fp,"IFFT变换的输出结果是: \n");elsefprintf(fp,"FFT变换的输出结果是: \n");for(i=0;i<N;i++){if(iiff==-1) //根据FFT或IFFT修正B{B[i]=B[i]*-1/N;A[i]=A[i]/N;}if(B[i]>=0)//修正虚部的输出格式fprintf(fp,"%f+j%f\n",A[i],B[i]);else if(B[i]<0)fprintf(fp,"%f-j%f\n",A[i],-B[i]);else if(B[i]==0)fprintf(fp,"%f\n",A[i]);}fclose(fp);}四、程序运行结果检验(1) 1.对序列进行FFT变换输入文件fft_input.txt:21+j02+j0-1+j04+j0控制台输入:请输入文件名: fft_input.txtFFT变换还是IFFT变换?(FFT:1,IFFT:-1): 1输出文件fft_result.txt:FFT变换的输出结果是:6.00000+j0.000002.00000+j2.00000-6.00000+j0.000002.00000+j-2.00000运行结果分析:程序运行输出结果与计算结果相同, 表示傅里叶正变换(FFT)成功。
离散时间信号的表示与运算
实验一 离散时间信号的表示与运算一 实验目的1、熟悉MATLAB 的绘图函数;2、掌握单位取样序列、单位阶跃序列、矩形序列和正余弦序列的产生方法;3、掌握离散时间信号基本运算的MATLAB 实现;4、掌握离散时间信号线性卷积和运算的MATLAB 实现。
二 实验设备1、计算机2、MA TLAB R2007a 仿真软件三 实验原理1)序列相加和相乘设有序列)(1n x 和)(2n x ,它们相加和相乘如下:)()()()()()(2121n x n x n x n x n x n x ⋅=+=注意,序列相加(相乘)是对应序列值之间的相加(相乘),因此参加运算的两个序列必须具有相同的长度,并且保证位置相对应。
如果不相同,在运算前应采用zeros 函数将序列左右补零使其长度相等并且位置相对应。
在MATLAB 中,设序列用x1和x2表示,序列相加的语句为:x=x1+x2;然而要注意,序列相乘不能直接用x=x1*x2,该式表示两个矩阵的相乘,而不是对应项的相乘。
对应项之间相乘的实现形式是点乘“.*”,实现语句为:x=x1.*x2。
2)序列翻转设有序列:)()(n x n y -=,在翻转运算中,序列的每个值以n=0为中心进行翻转,需要注意的是翻转过程中序列的样值向量翻转的同时,位置向量翻转并取反。
MATLAB 中,翻转运算用fliplr 函数实现。
设序列)(n x 用样值向量x 和位置向量nx 表述,翻转后的序列)(n y 用样值向量y 和位置向量ny 描述。
3)序列的移位移位序列)(n x 的移位序列可表示为:)()(0n n x n y -=,其中,00>n 时代表序列右移0n 个单位;00<n 时代表序列左移0n 个单位。
在移位过程中,序列值未发生任何变化,只是位置向量的增减。
MA TLAB 中没有固定函数实现移位运算。
设序列)(n x 用样值向量x 和位置向量nx 描述移位0n 后的序列)(n y 用样值向量y 和位置向量ny 描述。
时域离散信号实验报告(3篇)
第1篇一、实验目的1. 理解时域离散信号的基本概念和特性。
2. 掌握时域离散信号的表示方法。
3. 熟悉常用时域离散信号的产生方法。
4. 掌握时域离散信号的基本运算方法。
5. 通过MATLAB软件进行时域离散信号的仿真分析。
二、实验原理时域离散信号是指在时间轴上取离散值的一类信号。
这类信号在时间上不连续,但在数值上可以取到任意值。
时域离散信号在数字信号处理领域有着广泛的应用,如通信、图像处理、语音处理等。
时域离散信号的基本表示方法有:1. 序列表示法:用数学符号表示离散信号,如 \( x[n] \) 表示离散时间信号。
2. 图形表示法:用图形表示离散信号,如用折线图表示序列。
3. 时域波形图表示法:用波形图表示离散信号,如用MATLAB软件生成的波形图。
常用时域离散信号的产生方法包括:1. 单位阶跃信号:表示信号在某个时刻发生突变。
2. 单位冲激信号:表示信号在某个时刻发生瞬时脉冲。
3. 正弦信号:表示信号在时间上呈现正弦波形。
4. 矩形脉冲信号:表示信号在时间上呈现矩形波形。
时域离散信号的基本运算方法包括:1. 加法:将两个离散信号相加。
2. 乘法:将两个离散信号相乘。
3. 卷积:将一个离散信号与另一个离散信号的移位序列进行乘法运算。
4. 反褶:将离散信号沿时间轴翻转。
三、实验内容1. 实验一:时域离散信号的表示方法(1)使用序列表示法表示以下信号:- 单位阶跃信号:\( u[n] \)- 单位冲激信号:\( \delta[n] \)- 正弦信号:\( \sin(2\pi f_0 n) \)- 矩形脉冲信号:\( \text{rect}(n) \)(2)使用图形表示法绘制以上信号。
2. 实验二:时域离散信号的产生方法(1)使用MATLAB软件生成以下信号:- 单位阶跃信号- 单位冲激信号- 正弦信号(频率为1Hz)- 矩形脉冲信号(宽度为2)(2)观察并分析信号的波形。
3. 实验三:时域离散信号的基本运算(1)使用MATLAB软件对以下信号进行加法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(2)使用MATLAB软件对以下信号进行乘法运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(3)使用MATLAB软件对以下信号进行卷积运算:- \( u[n] \)- \( \sin(2\pi f_0 n) \)(4)使用MATLAB软件对以下信号进行反褶运算:- \( u[n] \)4. 实验四:时域离散信号的仿真分析(1)使用MATLAB软件对以下系统进行时域分析:- 系统函数:\( H(z) = \frac{1}{1 - 0.5z^{-1}} \)(2)观察并分析系统的单位冲激响应。
离散时间信号的时域描述及基本运算
[例] 画出信号f (t) 的奇、偶分量 画出信号f
解:
f(t) 2 1
-1
0
f(t) 2 1
1
t
-1
0
1
t
3.信号分解为实部分量与虚部分量 信号分解为实部分量 实部分量与
连续时间信号
f (t ) = f r (t ) + j f i (t )
实部分量 虚部分量
f * (t ) = f r (t ) j f i (t )
在序列2点之间插入 个点 在序列 点之间插入M1个点 点之间插入
4. 序列相加
指将若干离散序列序号相同的数值相加
y[k ] = f1[k ] + f 2 [k ] + … + f n [k ]
f1 [ k ]
1 k 0 1
f1[k ] + f 2 [k ]
2
f 2 [k ]
k
1 k
0
0
5. 序列相乘
1 f o (t ) = [ f (t ) f (t )] 2 f o (t ) = f o (t )
离散时间信号
f [k ] = f e [k ] + f o [k ] 1 f o [k ] = { f [k ] f [ k ]} 2
1 f e [k ] = { f [k ] + f [k ]} 2
1. 翻转
f [k] → f [k]
以纵轴为中心作180度翻转 将 f [k] 以纵轴为中心作 度翻转
f [k] 2 1 1 0 1 2 3 k
2 1 0 1
3 2
f [k] 2
3 2 1 2 k
2. 位移 f [k] → f [k±n]
MATLAB离散信号的产生和频谱分析实验报告
MATLAB离散信号的产⽣和频谱分析实验报告实验⼀离散信号的产⽣和频谱分析⼀、实验⽬的仿真掌握采样定理。
学会⽤FFT 进⾏数字谱分析。
掌握FFT 进⾏数字谱分析的计算机编程实现⽅法。
培养学⽣综合分析、解决问题的能⼒,加深对课堂内容的理解。
⼆、实验要求掌握采样定理和数字谱分析⽅法;编制FFT 程序;完成正弦信号、线性调频信号等模拟⽔声信号的数字谱分析;三、实验内容单频脉冲(CWP )为)2e xp()()(0t f j T t rec t t s π=。
式中,)(Ttrect 是矩形包络,T 是脉冲持续时间,0f 是中⼼频率。
矩形包络线性调频脉冲信号(LFM )为)]21(2exp[)()(20Mt t f j Ttrect t s +=π。
式中,M 是线性调频指数。
瞬时频率Mt f +0是时间的线性函数,频率调制宽度为MT B =。
设参数为kHz f 200=,ms T 50=,kHz B 10=,采样频率kHz f s 100=。
1.编程产⽣单频脉冲、矩形包络线性调频脉冲。
2.编程实现这些信号的谱分析。
3.编程实现快速傅⽴叶变换的逆变换。
四、实验原理1、采样定理所谓抽样,就是对连续信号隔⼀段时间T 抽取⼀个瞬时幅度值。
在进⾏模拟/数字信号的转换过程中,当采样频率fs ⼤于信号中最⾼频率f 的2倍时(fs>=2f),采样之后的数字信号完整地保留了原始信号中的信息,⼀般实际应⽤中保证采样频率为信号最⾼频率的5~10倍;采样定理⼜称奈奎斯特定理。
2、离散傅⾥叶变换(FFT )长度为N 的序列()x n 的离散傅⽴叶变换()X k 为:10()(),0,....,1N nkN n X k x n W k N -===-∑N 点的DFT 可以分解为两个N/2点的DFT ,每个N/2点的DFT ⼜可以分解为两个N/4点的DFT 。
依此类推,当N 为2的整数次幂时(2MN =),由于每分解⼀次降低⼀阶幂次,所以通过M 次的分解,最后全部成为⼀系列2点DFT 运算。
数字信号处理实验报告
一、实验目的1. 理解数字信号处理的基本概念和原理。
2. 掌握离散时间信号的基本运算和变换方法。
3. 熟悉数字滤波器的设计和实现。
4. 培养实验操作能力和数据分析能力。
二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。
本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。
2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。
3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。
4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。
三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。
(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。
2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。
(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。
3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。
(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。
4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。
(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。
四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。
实验一____离散时间信号的表示及运算
实验一 离散时间信号的表示及运算一、 实验目的:学会运用MATLAB 表示的常用离散时间信号;学会运用MATLAB 实现离散时间信号的基本运算。
二、 实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。
三、实验内容:(一) 离散时间信号在MATLAB 中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用)(n x 来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB 中一般用stem 函数。
stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB 中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1. 单位取样序列单位取样序列)(n δ,也称为单位冲激序列,定义为)0()0(01)(≠=⎩⎨⎧=n n n δ (1-1)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。
在MATLAB 中,冲激序列可以通过编写以下的impDT.m 文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。
【实例1-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。
解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on>>title('单位冲激序列')>>axis([-3 3 -0.1 1.1])程序运行结果如图11-1所示。
数字信号处理实验一
实验一 离散时间信号分析一、实验目的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.准备阶段:在进行实验之前,需要准备好实验所需的器材和软件,包括计算机、信号发生器和数字示波器等。
同时,学生应该对离散时间信号的基本概念和表示方法进行预习,以便更好地进行实验。
2.时域表示:首先,通过计算机生成一组离散时间信号,例如矩形波信号、正弦波信号和余弦波信号等。
然后,将所生成的离散时间信号在数字示波器中进行观察和记录,并对这些信号进行简单的处理,例如加减乘除等基本运算。
3.频域表示:通过使用离散傅里叶变换(DFT)将所生成的离散时间信号从时域转化到频域,并对信号的频谱进行分析。
通过观察信号的频谱,可以了解信号的频率成分和幅度分布等情况。
4.实验总结:在完成实验观察和记录后,学生应该对实验结果进行分析和总结,并对实验过程中遇到的问题进行思考和解决。
同时,学生应该了解并掌握离散时间信号的表示与运算的基本原理和方法。
四、实验结果及分析通过本次实验,学生应该得到以下实验结果:1.了解并掌握离散时间信号的基本概念和表示方法;2.学会使用简单的离散时间信号处理算法对信号进行处理;3.掌握将离散时间信号从时域转化为频域的方法,并对信号的频谱进行分析;4.学会使用MATLAB等软件对离散时间信号进行处理和分析。
实验一 时域离散信号与系统分析(实验报告)-2015
《数字信号处理》 实验报告学院 专业 电子信息工程 班级 姓名 学号 时间实验一 时域离散信号与系统分析一、实验目的1、熟悉连续信号经理想采样后的频谱变化关系,加深对时域采样定理的理解。
2、熟悉时域离散系统的时域特性,利用卷积方法观察分析系统的时域特性。
3、学会离散信号及系统响应的频域分析。
4、学会时域离散信号的MATLAB 编程和绘图。
5、学会利用MATLAB 进行时域离散系统的频率特性分析。
二、实验内容1、序列的产生(用Matlab 编程实现下列序列(数组),并用stem 语句绘出杆图。
(要求标注横轴、纵轴和标题)(1). 单位脉冲序列x(n)=δ(n ) (2). 矩形序列x(n)=R N (n) ,N=10nδ(n )nR N (n )图1.1 单位脉冲序列 图1.2 矩形序列(3) . x(n)=e (0.8+3j )n ; n 取0-15。
4n|x (n )|201321111053 陈闽焜n<x (n )/R a d图1.3 复指数序列的 模 图1.4 复指数序列的 相角(4). x(n)=3cos (0. 25πn +0.3π)+2sin (0.125πn +0.2π) n 取0-15。
ny (n )图1.4 复合正弦实数序列(5). 把第(3)小题的复指数x(n)周期化,周期20点,延拓3个周期。
4m|y (m )|201321111053 陈闽焜图1.5 第(3)的20点周期延拓杆图(6). 假设x(n)= [1,-3,2,3,-2 ], 编程产生以下序列并绘出杆图:y(n) y(n)= x(n)-2x(n+1)+x(n-1)+x(n-3);5201321111053 陈闽焜图1.6 y(n)序列杆图(7)、编一个用户自定义matlab 函数,名为stepshf (n0,n1,n2)实现单位阶跃序列u[n -n1]。
其中位移点数n1在起点n0和终点n2之间任意可选。
自选3个入口参数产生杆图。
实验一离散时间信号的表示及运算
实验一 离散时间信号的表示与运算一 实验目的1、熟悉MATLAB 的绘图函数;2、掌握单位取样序列、单位阶跃序列、矩形序列和正余弦序列的产生方法;3、掌握离散时间信号基本运算的MATLAB 实现;4、掌握离散时间信号线性卷积和运算的MATLAB 实现。
二 实验设备1、计算机2、MATLAB R2007a 仿真软件三 实验原理1)序列相加和相乘设有序列)(1n x 和)(2n x ,它们相加和相乘如下:)()()()()()(2121n x n x n x n x n x n x ⋅=+=注意,序列相加(相乘)是对应序列值之间的相加(相乘),因此参加运算的两个序列必须具有相同的长度,并且保证位置相对应。
如果不相同,在运算前应采用zeros 函数将序列左右补零使其长度相等并且位置相对应。
在MATLAB 中,设序列用x1和x2表示,序列相加的语句为:x=x1+x2;然而要注意,序列相乘不能直接用x=x1*x2,该式表示两个矩阵的相乘,而不是对应项的相乘。
对应项之间相乘的实现形式是点乘“.*”,实现语句为:x=x1.*x2。
2)序列翻转设有序列:)()(n x n y -=,在翻转运算中,序列的每个值以n=0为中心进行翻转,需要注意的是翻转过程中序列的样值向量翻转的同时,位置向量翻转并取反。
MATLAB 中,翻转运算用fliplr 函数实现。
设序列)(n x 用样值向量x 和位置向量nx 表述,翻转后的序列)(n y 用样值向量y 和位置向量ny 描述。
3)序列的移位移位序列)(n x 的移位序列可表示为:)()(0n n x n y -=,其中,00>n 时代表序列右移0n 个单位;00<n 时代表序列左移0n 个单位。
在移位过程中,序列值未发生任何变化,只是位置向量的增减。
MATLAB 中没有固定函数实现移位运算。
设序列)(n x 用样值向量x 和位置向量nx 描述移位0n 后的序列)(n y 用样值向量y 和位置向量ny 描述。
数字信号处理实验指导
实验一 离散时间信号与系统的时域分析(基础验证型)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 的超前。
《数字信号处理》实验讲义(信息计算)
《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的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)。
数字信号处理
实验报告
班级:
学号:
姓名:
实验1离散时间信号的产生与运算
一、实验目的
(1)了解离散时间信号的特点。
(2)掌握在计算机中生成及绘制各种常用离散时间信号序列的方法。
(3)掌握序列的加、减、乘、除和平移、反转、尺度变换等基本运算及计算机的
实现方法。
二、实验原理
信号是随时间变化的物理量,而计算机只能处理离散信号。
离散信号是在某些不连续的时间上有信号值,而在其它时间点上没有定义的一类信号。
离散信号一般可以由连续信号通过模数转换得到。
常用的离散信号有单位脉冲序列、单位阶跃序列、复指数序列、正弦信号序列、随机序列等。
离散信号的基本运算包括信号的加、减、乘、除。
离散信号的时域变换包括信号的平移、反转、尺度变换等。
三、实验内容与方法
1、编写程序,生成如下数字信号:sqrt(2*k)u(k3),δ(k+5)。
(1) f(k)=sqrt(2*k)u(k3)
代码:
k=(1:10);
n=3;
u=[(k-n)>=0];
a=sqrt(2*k);
stem(k,a.*u);
title('sqrt(2*k)u(k 3)的图像');
xlabel('时间(k)');ylabel('幅值f(k)');
运行图:
(2) f(k)= δ(k+5)
代码:
k1=-10;k2=0;k=k1:k2;
n=-5; %单位脉冲出现的位置
f=[(k-n)==0];
stem(k,f,'filled');title('δ(k+5)序列的图像') xlabel('时间(k)');ylabel('幅值f(k)');
运行图:
2、f(k)=sin(0.1πk),设计并编写程序,完成信号f(k)到f(2k+2)的转化。
(1) f(k)
代码:
k1=-20;k2=20;
k=k1:k2;
f=sin(0.1*pi*k);
stem(k,f,'filled');
title('正弦序列');xlabel('时间(k)');ylabel('幅值f(k)'); 运行图:
(2) f(2k+2)
代码:
k1=-20;k2=20;
k=k1:k2;
d=k+1; %对k平移一个单位
f1=sin(0.2*pi*d); %周期变为原来的一半
stem(k,f1,'filled');
title('正弦序列2');xlabel('时间(k)');ylabel('幅值
f(2k+2)');
运行图:
四、思考题
(1)脉冲序列信号与阶跃序列信号各有什么特性?
答:单位脉冲序列只在n=0 处有一个单位值1,其余点上皆为0;
单位阶跃序列只有在n>=0时,才取非零值1,当n<0时均取零值。
(2)脉冲序列信号和阶跃序列信号有什么关系?
答:n个冲激信号(每个冲激信号都是1个U单位)的集合就是阶跃信号,u(n)和单位采样序列之间的关系如下列公式所示:。