数字信号Matable实验指导
- 格式:doc
- 大小:413.00 KB
- 文档页数:19
电工电子实验中心实验指导书数字信号处理实验教程二○○九年三月高等学校电工电子实验系列数字信号处理实验教程主编石海霞周玉荣攀枝花学院电气信息工程学院电工电子实验中心内容简介数字信号处理是一门理论与实践紧密联系的课程,适当的上机实验有助于深入理解和巩固验证基本理论知识,了解并体会数字信号处理的CAD手段和方法,锻炼初学者用计算机和MATLAB语言及其工具箱函数解决数字信号处理算法的仿真和滤波器设计问题的能力。
本实验指导书结合数字信号处理的基本理论和基本内容设计了八个上机实验,每个实验对应一个主题内容,包括常见离散信号的MATLAB产生和图形显示、离散时间系统的时域分析、离散时间信号的DTFT、离散时间信号的Z变换、离散傅立叶变换DFT、快速傅立叶变换FFT及其应用、基于MATLAB的IIR和FIR数字滤波器设计等。
此外,在附录中,还简单介绍了MATLAB的基本用法。
每个实验中,均给出了实验方法和步骤,还有部分的MATLAB程序,通过实验可以使学生掌握数字信号处理的基本原理和方法。
目录绪论 (1)实验一常见离散信号的MATLAB产生和图形显示 (2)实验二离散时间系统的时域分析 (6)实验三离散时间信号的DTFT (9)实验四离散时间信号的Z变换 (14)实验五离散傅立叶变换DFT (18)实验六快速傅立叶变换FFT及其应用 (24)实验七基于MATLAB的IIR数字滤波器设计 (30)实验八基于MATLAB的FIR数字滤波器设计 (33)附录 (37)参考文献 (40)绪论绪论随着电子技术迅速地向数字化发展,《数字信号处理》越来越成为广大理工科,特别是IT领域的学生和技术人员的必修内容。
数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。
数字信号处理的理论和技术一出现就受到人们的极大关注,发展非常迅速。
而且随着各种电子技术及计算机技术的飞速发展,数字信号处理的理论和技术还在不断丰富和完善,新的理论和技术层出不穷。
实验二 IIR 滤波器设计一、 实验目的1、 掌握冲激响应法和双线性变换法设计IIR 滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通、带通和高通IIR 数字滤波器的计算机程序。
2、 熟悉模拟Butterworth 滤波器的设计,掌握冲激响应法和双线性变换法设计数字IIR 滤波器的方法。
二、 实验内容1、 不同阶次模拟巴特沃兹滤波器的频率响应如下:由图可知,不同阶次的所对应的滤波器的幅度走向基本一样,但是过渡带却有着明显的不同,阶次越高,滤波器的过渡带越窄。
2、根据模拟滤波器指标,设计低通巴特沃兹滤波器设计指标为:通带截止频率f p = 5kHz, 通带最大衰减 ɑp =2dB ,阻带截止频率 f s = 12kHz, 阻带最小衰减ɑs =30dB 。
设计程序如下:>> clear all;>> fp=5e3; >> ap=2;0.51 1.520.51w/wc -- 归一化频率幅度谱巴特沃兹滤波器幅度谱 N=300.51 1.5200.51w/wc -- 归一化频率幅度谱巴特沃兹滤波器幅度谱 N=50.51 1.5200.51w/wc -- 归一化频率幅度谱巴特沃兹滤波器幅度谱 N=1000.51 1.520.51w/wc -- 归一化频率幅度谱巴特沃兹滤波器幅度谱 N=15>> fs=12e3;>> as=30;>> %*******求阶次N********%>> k_sp=sqrt(10^(as/10) - 1)/sqrt(10^(ap/10) - 1);>> a_sp = 2*pi*fs/(2*pi*fp);>> N=ceil( log(k_sp)/log(a_sp) );>> p=zeros(1,N);>> for i=1:N;k = i-1;p(i) = exp( j*pi/2 + j*pi*(2*k+1)/2/N ) ;end>> z=[];>> [b1 a1] = zp2tf( z, p, 1 );>> fp1=fp* ( 10^(ap/10)-1 )^(-1/2/N) ;>> fs1=fs* ( 10^(as/10)-1 )^(-1/2/N);>> figure(1);>> x=[ 0:50:1.5*fs ] ;>> [H1 ]=freqs(b1, a1, x/fp1);>> [H2 ]=freqs(b1, a1,x/fs1);>> plot( x, 20*log10(abs(H1)));>> xlabel( '频率/Hz' );>> ylabel( '振幅/db' );>> title( ['巴特沃兹滤波器对数幅度谱 N=',num2str(N)] ); >> figure(2);>> x1=[ 0: 0.01 :2 ];>> [H3 ]=freqs(b1, a1, x1);>> plot( x1 , abs(H3) );>> xlabel('归一化频率');>> ylabel('幅度');>> title( '归一化之后的低通巴特沃兹滤波器的频率响应:' );归一化之前低通巴特沃兹滤波器的频率响应:归一化之后的低通巴特沃兹滤波器的频率响应为:3、已知模拟滤波器传输函数H(s)为20.5012()0.64490.7079H s s s =++ 按照不同采样频率Fs1=1Hz, Fs2=10Hz 使用脉冲响应不变法将H(s)转换为H(z)数字IIR 滤波器。
《数字信号处理》MATLAB实验指导实验一:离散时间信号和离散时间系统一、 实验目的:1、 以MA TLAB 为工具学习离散时间信号的图形表示;2、 以课本提供的例程,练习、理解典型离散信号及其基本运算;3、 通过MATLAB 仿真简单的离散时间系统,研究其时域特性;4、 加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
二、 实验内容:1、 典型序列的产生与显示;2、 序列的简单运算;3、 复合和复杂信号的产生与显示;4、 离散时间系统的仿真:线性和非线性系统、时变和非时变系统的仿真;5、 线性时不变离散时间系统:系统冲激响应、卷积运算、系统的级联、系统的稳定性;三、实验例程:1、 参照课本例程产生下列序列,并用plot 、stem 好人subplot 命令绘出其图形: ①单位取样序列()n δ;②单位阶跃序列()n μ;③矩形序列RN(n),④斜变序列()n n μ。
所需输入的数据是产生序列的长度L 和抽样频率F T 。
% 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]);2、 编写MATLAB 实指数序列程序,% Program P1_3% Generation of a real exponential sequenceclf;n = 0:35; a = 1.2; K = 0.2;x = K*a.^n;stem(n,x);xlabel('Time index n');ylabel('Amplitude');3、编写产生swept frequency sinusoidal 序列的程序。
《数字信号处理》MATLAB实验指导实验一:离散时间信号和离散时间系统一、实验目的:1、以MATLAB 为工具学习离散时间信号的图形表示;2、以课本提供的例程,练习、理解典型离散信号及其基本运算;3、通过MATLAB 仿真简单的离散时间系统,研究其时域特性;4、加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
二、实验内容:1、典型序列的产生与显示;2、序列的简单运算;3、复合和复杂信号的产生与显示;4、离散时间系统的仿真:线性和非线性系统、时变和非时变系统的仿真;5、线性时不变离散时间系统:系统冲激响应、卷积运算、系统的级联、系统的稳定性;三、实验例程:1、参照课本例程产生下列序列,并用plot 、stem 好人subplot 命令绘出其图形:①单位取样序列()n δ;②单位阶跃序列()n μ;③矩形序列RN(n),④斜变序列()n n μ。
所需输入的数据是产生序列的长度L 和抽样频率F T 。
%Program P1_1%Generation of a Unit Sample Sequence clf;%Generate a vector from -10to 20n =-10:20;%Generate the unit sample sequence u =[zeros(1,10)1zeros(1,20)];%Plot the unit sample sequence stem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence');axis([-102001.2]);2、编写MATLAB 实指数序列程序,%Program P1_3%Generation of a real exponential sequence clf;n =0:35;a =1.2;K =0.2;x =K*a.^n;stem(n,x);xlabel('Time index n');ylabel('Amplitude');3、编写产生swept frequency sinusoidal序列的程序。
数字信号MATLAB仿真实验数字信号MATLAB仿真实验一.实验目的1.通过本次实验熟悉数字信号处理的方波和三角波的产生2.对FFT加强理解和直观地认识3.理解并掌握频谱分析和谐波分析4.对噪声对信号的影响认识二.实验内容5.自编程序得到一个方波信号(f=50Hz,幅值为1,1 ,各半个周期),对其一个周期分别采样256点和1024点,利用光盘所附的基于Matlab 语言所编FFT程序或自编FFT程序做谐波分析分析,并与理论分析结果对照(注意FFT计算频谱与谐波分析的区别)。
6.对三角波信号(可以由方波信号求导得到)重复作业一的各项要求。
7.对一、二信号叠加一个白噪声信号(均值为零,方差为0.2)所构成的随机信号用FFT进行频谱分析8.对以上结果进行讨论三.实验程序1.方波分析cclearT=0.02,l=0.5,hu=1,hd=-1; %T是周期,l为占空比,hu为上幅度,hd为下幅度t=[0:0.001:2]; %显示连续图形的采样点for i=1:length(t) %生成方波if rem(t(i),T)<t*l< p="">y(i)=hu;elsey(i)=hd;endendn=0:0.02/256:(0.02-0.02/256); %256采样点for i=1:length(n) %生成方波取256采样点值if rem(n(i),T)<t*l< p="">yn(i)=hu;elseyn(i)=hd;endendn2=0:0.02/1024:(0.02-0.02/1024);for i=1:length(n2) %生成方波取1024采样点值if rem(n2(i),T)<t*l< p="">yn2(i)=hu;elseyn2(i)=hd;endendfigure(1)subplot(3,1,1)stairs(t,y); %画方波xlabel('时间t'),ylabel('幅度y'),grid on; subplot(3,1,2); %画256采样图stem(n,yn,'.');xlabel('采样时间t'),ylabel('幅度y'),grid on; subplot(3,1,3); %画1024采样图stem(n2,yn2,'.');xlabel('采样时间t'),ylabel('幅度y'),grid on; ynfft=fft(yn); %256点FFTynfft2=fft(yn2); %1024点FFTmagyn=abs(ynfft); %256点幅度谱,对数幅度谱,相位谱lgmagyn=20*log10(abs(ynfft));argyn=angle(ynfft);magyn2=abs(ynfft2); %1024点幅度谱,对数幅度谱,相位谱lgmagyn2=20*log10(abs(ynfft2));argyn2=angle(ynfft2);nf=0:2*pi/256:(2*pi-2*pi/256); %计算FFT各点频率nf2=0:2*pi/1024:(2*pi-2*pi/1024);ind1=find(magyn); %取fft后的幅值非零频率分量magynxb=magyn(:,ind1) ;ind2=find(magyn2);magynxb2=magyn2(:,ind2);if ind1(1)~=1 %判断是否有直流分量,并求基波频率%调整各各次谐波的存储在相应位置bf1=gcd(ind1(1)-1,ind1(2)-1)*2*pi/256;elsebf1=gcd(ind1(2)-1,ind1(3)-1)*2*pi/256;magynxb=magyn(:,2:ind1) ;ind11=ind1(2:length(ind1))-1;endif ind2(1)~=1bf2=gcd(ind2(1)-1,ind2(2)-1)*2*pi/1024;elsebf2=gcd(ind2(2)-1,ind2(3)-1)*2*pi/256;magynxb2=magyn2(2:1024); %去掉直流分量ind2=ind2(2:length(ind2))-1endfigure(2) %画各谐波的幅度谱subplot(2,1,1)stem(ind1-1,magynxb,'.');xlabel('谐波频率'),ylabel('幅值'),grid on;subplot(2,1,2)stem(ind2-1,magynxb2,'.');xlabel('谐波频率'),ylabel('幅值'),grid on;learT=0.02,l=0.5,hu=1,hd=-1; %T是周期,l为占空比,hu为上幅度,hd为下幅度t=[0:0.001:2]; %显示连续图形的采样点for i=1:length(t) %生成方波if rem(t(i),T)<t*l< p="">y(i)=hu;elsey(i)=hd;endendn=0:0.02/256:(0.02-0.02/256); %256采样点for i=1:length(n) %生成方波取256采样点值if rem(n(i),T)<t*l< p="">yn(i)=hu;elseyn(i)=hd;endendn2=0:0.02/1024:(0.02-0.02/1024);for i=1:length(n2) %生成方波取1024采样点值if rem(n2(i),T)<t*l< p="">yn2(i)=hu;elseyn2(i)=hd;endendfigure(1)subplot(3,1,1)stairs(t,y); %画方波xlabel('时间t'),ylabel('幅度y'),grid on;subplot(3,1,2); %画256采样图stem(n,yn,'.');xlabel('采样时间t'),ylabel('幅度y'),grid on;subplot(3,1,3); %画1024采样图stem(n2,yn2,'.');xlabel('采样时间t'),ylabel('幅度y'),grid on;ynfft=fft(yn); %256点FFTynfft2=fft(yn2); %1024点FFTmagyn=abs(ynfft); %256点幅度谱,对数幅度谱,相位谱lgmagyn=20*log10(abs(ynfft));argyn=angle(ynfft);magyn2=abs(ynfft2); %1024点幅度谱,对数幅度谱,相位谱lgmagyn2=20*log10(abs(ynfft2));argyn2=angle(ynfft2);nf=0:2*pi/256:(2*pi-2*pi/256); %计算FFT各点频率nf2=0:2*pi/1024:(2*pi-2*pi/1024);ind1=find(magyn); %取fft后的幅值非零频率分量magynxb=magyn(:,ind1) ;ind2=find(magyn2);magynxb2=magyn2(:,ind2);if ind1(1)~=1 %判断是否有直流分量,并求基波频率bf1=gcd(ind1(1)-1,ind1(2)-1)*2*pi/256;else ind1bf1=gcd(ind1(2)-1,ind1(3)-1)*2*pi/256;magynxb=magyn(:,2:ind1) ;endif ind2(1)~=1bf2=gcd(ind2(1)-1,ind2(2)-1)*2*pi/1024; elsebf2=gcd(ind2(2)-1,ind2(3)-1)*2*pi/256; magynxb2=magyn2(2:1024); %去掉直流分量endfigure(2) %画各谐波的幅度谱subplot(2,1,1)stem(ind1,magynxb,'.');xlabel('频率'),ylabel('幅值'),grid on; subplot(2,1,2)stem(ind2,magynxb2,'.');xlabel('频率'),ylabel('幅值'),grid on;2.三角波分析clearT=0.02,l=0.5,hu=1,hd=-1; %T是周期,l为占空比,hu为上幅度,hd为下幅度t=[0:0.0001:2]; %显示连续图形的采样点for i=1:length(t) %生成三角波if rem(t(i),T)<t*l< p="">y(i)=-(hu-hd)/(T*l)*rem(t(i),T)+hu;elsey(i)=(hu-hd)/(T*(1-l))*(rem(t(i),T)-l*T)+hd;endendn=0:0.02/256:(0.02-0.02/256); %256采样点for i=1:length(n) %生成256点采样值if rem(n(i),T)<t*l< p="">yn(i)=-(hu-hd)/(T*l)*rem(n(i),T)+hu;elseyn(i)=(hu-hd)/(T*(1-l))*(rem(n(i),T)-l*T)+hd;endendn2=0:0.02/1024:(0.02-0.02/1024);for i=1:length(n2) %生成1024点采样值if rem(n2(i),T)<t*l< p="">yn2(i)=-(hu-hd)/(T*l)*rem(n2(i),T)+hu;elseyn2(i)=(hu-hd)/(T*(1-l))*(rem(n2(i),T)-l*T)+hd;endendfigure(1)subplot(3,1,1)plot(t,y); %画三角波xlabel('时间t'),ylabel('幅度y'),grid on;subplot(3,1,2); %画256采样图stem(n,yn,'.');xlabel('采样时间t'),ylabel('幅度y'),grid on;subplot(3,1,3); %画1024采样图stem(n2,yn2,'.');xlabel('采样时间t'),ylabel('幅度y'),grid on;ynfft=fft(yn); %256点FFTynfft2=fft(yn2); %1024点FFTmagyn=abs(ynfft); %256点幅度谱,对数幅度谱,相位谱lgmagyn=20*log10(abs(ynfft));argyn=angle(ynfft);magyn2=abs(ynfft2); %1024点幅度谱,对数幅度谱,相位谱lgmagyn2=20*log10(abs(ynfft2));argyn2=angle(ynfft2);nf=0:2*pi/256:(2*pi-2*pi/256); %计算FFT各点频率nf2=0:2*pi/1024:(2*pi-2*pi/1024);ind1=find(magyn); %取fft后的幅值非零频率分量magynxb=magyn(:,ind1) ;ind2=find(magyn2);magynxb2=magyn2(:,ind2);if ind1(1)~=1 %判断是否有直流分量,并求基波频率bf1=gcd(ind1(1)-1,ind1(2)-1)*2*pi/256;elsebf1=gcd(ind1(2)-1,ind1(3)-1)*2*pi/256;magynxb=magyn(2:length(magyn)) ;ind11=ind1(2:length(ind1));endif ind2(1)~=1bf2=gcd(ind2(1)-1,ind2(2)-1)*2*pi/1024;elsebf2=gcd(ind2(2)-1,ind2(3)-1)*2*pi/256;magynxb2=magyn2(2:length(magyn2)); %去掉直流分量ind22=ind2(2:length(ind2));endfigure(2) %画各谐波的幅度谱subplot(2,1,1)stem(ind11-1,magynxb,'.');xlabel('频率'),ylabel('幅值'),grid on;subplot(2,1,2)stem(ind22-1,magynxb2,'.');xlabel('频率'),ylabel('幅值'),grid on;叠加噪声分析3.叠加了噪声的程序TclearT=0.02,l=0.5,hu=1,hd=-1; %T是周期,l为占空比,hu为上幅度,hd为下幅度t=[0:0.0001:2]; %显示连续图形的采样点for i=1:length(t) %生成方波if rem(t(i),T)<t*l< p="">yrect(i)=hu;elseyrect(i)=hd;endendfor i=1:length(t) %生成三角波if rem(t(i),T)<t*l< p="">ytri(i)=-(hu-hd)/(T*l)*rem(t(i),T)+hu;elseytri(i)=(hu-hd)/(T*(1-l))*(rem(t(i),T)-l*T)+hd;endendnoise=sqrt(0.2)*randn(1,length(t));%noise=sqrt(12*0.2)*rand(1,length(t))y=yrect+noise;y2=ytri+noise;n=0:0.02/1024:(0.02-0.02/1024); %1024采样点n2=nfor i=1:length(n) %生成方波取1024采样点值if rem(n(i),T)<t*l< p="">yn(i)=hu;elseyn(i)=hd;endendfor i=1:length(n2) %生成1024点三角波采样值if rem(n2(i),T)<t*l< p="">yn2(i)=-(hu-hd)/(T*l)*rem(n2(i),T)+hu;elseyn2(i)=(hu-hd)/(T*(1-l))*(rem(n2(i),T)-l*T)+hd;endendn=[0:0.02/1024:0.02-0.02/1024];n2=n;noisen=sqrt(0.2)*randn(1,length(n));%noise=sqrt(12*0.2)*rand(1,length(n))yn=yn+noisen;yn2=yn2+noisen;figure(1)subplot(4,2,1)stairs(t,yrect)ylabel('方波图'),grid on;subplot(4,2,5)plot(t,y);ylabel('叠加了噪声的方波图'),grid on;subplot(4,2,7);stem(n,yn,'.')ylabel('叠加了噪声的方波图的抽样'),grid on;subplot(4,2,3)plot(t,noise)ylabel('正态分布噪声'),grid on;subplot(4,2,4)ylabel('噪声的分布检测'),grid on;hist(noise,50)subplot(4,2,2)stairs(t,ytri)ylabel('三角波图'),grid on;subplot(4,2,6)plot(t,y2)ylabel('叠加了噪声的三角波图'),grid on; subplot(4,2,8)ylabel('叠加了噪声的三角波图的抽样'),grid on; stem(n2,yn2,'.')ynfft=fft(yn);ynfft2=fft(yn2);magyn=abs(ynfft);lgmagyn=20*log10(abs(ynfft));argyn=angle(ynfft);magyn2=abs(ynfft2);lgmagyn2=20*log10(abs(ynfft2));argyn2=angle(ynfft2);figure(2)subplot(3,2,1)plot(n,magyn)ylabel('叠加了噪声的方波幅度响应'),grid on; subplot(3,2,3)plot(n,lgmagyn)ylabel('叠加了噪声的方波对数幅度响应'),grid on; subplot(3,2,5)plot(n,argyn)ylabel('叠加了噪声的方波相位响应'),grid on; subplot(3,2,2)plot(n2,magyn2)ylabel('叠加了噪声的三角波幅度响应'),grid on; subplot(3,2,4)plot(n2,lgmagyn2)ylabel('叠加了噪声的三角波对数幅度响应'),grid on; subplot(3,2,6)plot(n2,argyn2)ylabel('叠加了噪声的三角波相位响应'),grid on;实验结果分析四.实验结果及分析1.方波分析由于方波为半波对称,所以偶次谐波的幅值为零,只有奇次谐波存在,能量主要集中在低次谐波上,且fft变换后基波频率不一样,可见FFT所求的傅里叶变换周期不是完全有原信号决定的。
实验一基于Matlab的数字信号处理基本操作一、实验目的:学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离散时间信号的基本运算。
二、实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。
三、实验内容:(一) 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用X(n)来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB中一般用stem函数。
stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1. 单位取样序列单位取样序列、:(n),也称为单位冲激序列,定义为和、? ⑴=0)o(n)=丿0 (n 式0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。
在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n必须为整数或整数向量。
【实例1-1】禾U用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])1程序运行结果如图1-1所示。
第一次实验MAT1AB的数字信号处理基础一、实验目的1.掌握在MAT1AB中创建和编写脚本程序的步骤,熟悉在MAT1AB中进行基本的矩阵运算2.了解数字信号在计算机系统中的表示和数字信号处理的基本过程3.掌握用MAT1AB产生数字信号的方法二、实验内容1.熟悉在MAT1AB下创建脚本文件编制程序的方法在MAT1AB中,脚本文件时由一系列的命令构成并储存为.m格式的文件。
通常使用m文件来编写一个完整的仿真程序。
脚本文件的创建,可采用以下两种方式:(1)在菜单栏中选择Fi1e下拉框中New选项,可以新建多种MAT1AB文件,我们编辑仿真程序,通常选择第一项BIankM-Fi1e,即新建一个空的MAT1AB文件。
具体参见下图。
图1(2)采用菜单栏中新建按钮即可新建一个空的MAT1AB文件。
Jk MAT1AB7.9.0(R2009b)Fi1eEditDebugParaJ一一J2.MAT1AB中的数据表示MAT1AB中的基本数据单元为数组矩阵,MAT1AB中的数学运算都是基于矩阵的。
掌握了矩阵运算,就掌握了MAT1AB编程的关键。
MAT1AB中使用到的变量无需事先声明其数据类型,大小等,MAT1AB会自动根据赋值情况进行解析。
比如,可用通过以下命令产生一个矩阵:3.常用序列的MAT1AB实现(1)单位抽样序列。
在MAT1AB中可以用以下函数来实现单位抽样序列function[x,n]=impseq(nθ,n1z n2)%产生x(n)=de1ta(n-n0);n1<=n0<=n2if((nθ<n1)∣(nθ>∩2)∣(n1>n2))error('参数必须满足n1<=nθ<=n2,)endn=[n1:n2];x=[zeros(1,(nO-n1))4∕Zθros(1z(n2-nO))];stem(x);图3(2)单位阶跃序列。
在MAT1AB中可用〃>=0来实现〃(〃一%)。
MATLAB实验指导书(共5篇)第一篇:MATLAB实验指导书MATLAB 实验指导书皖西学院信息工程学院实验一 MATLAB编程环境及简单命令的执行一、实验目的1.熟悉MATLAB编程环境二、实验环境1.计算机2.MATLAB7.0集成环境三、实验说明1.首先应熟悉MATLAB7.0运行环境,正确操作2.实验学时:2学时四、实验内容和步骤1.实验内容(1)命令窗口的使用。
(2)工作空间窗口的使用。
(3)工作目录、搜索路径的设置。
(4)命令历史记录窗口的使用。
(5)帮助系统的使用。
(6)了解各菜单的功能。
2.实验步骤(1)启动MATLAB,熟悉MATLAB的桌面。
(2)进入MATLAB7.0集成环境。
(3)在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。
1)(365-52⨯2-70)÷3 2)>>area=pi*2.5^2 3)已知x=3,y=4,在MATLAB中求z:x2y3 z=2(x-y)4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。
⎡162313⎤⎢511108⎥⎥m1=⎢⎢97612⎥⎢⎥414151⎣⎦执行以下命令>>m1(2 , 3)>>m1(11)>>m1(: , 3)>>m1(2 : 3 , 1 : 3)>>m1(1 ,4)+ m1(2 ,3)+ m1(3 ,2)+ m1(4 ,1)5)执行命令>>helpabs 查看函数abs的用法及用途,计算abs(3 + 4i)6)执行命令>>x=0:0.1:6*pi;>>y=5*sin(x);>>plot(x,y)7)运行MATLAB的演示程序,>>demo,以便对MATLAB有一个总体了解。
五、思考题1、以下变量名是否合法?为什么?(1)x2(2)3col(3)_row (4)for2、求以下变量的值,并在MATLAB中验证。
1)、实验原理及框图原理上说,数字信息可以直接用数字代码序列表示和传输,但在实际传输中,视系统的要求和信道的情况,一般需要进行不同形式的编码,并且选用一组取值有限的离散波形来表示。
这些取值离散的波形可以是未经调制的电信号,也可以是调制后的信号。
未经调制的数字信号所占据的频谱是从零频率或很低频率开始,称为数字基带信号。
在某些具有低通特性的有线信道中,特别是在传输距离不太远的情况下,基带信号可以不经过载波调制而直接进行传输。
例如,在计算机局域网中直接传输基带脉冲。
这种不经载波调制而直接传输数字基带信号的系统,称为数字基带传输系统,其系统框图如下所示:本次实验采用单极性归零码,所谓归零(Return-to-zero,RZ)波形是指它的有电脉冲宽度τ小于码元宽度T,即信号电压在一个码元终止时刻前总要回到零电平。
通常,归零波形使用半占空码,即占空比(τ/ T)为50%。
波形如下所示:2)、实验结果附:程序源代码Fs=1e4;len=20;sig=[]; out=[];for t=1:2000n=fix(t/100); if n==0in_a(t)=0; elsein_a(t)=in(n); end endsubplot(2,1,1);plot(in_a,'LineWidth',3); title('基带信号','FontWeight','bold','FontSize',20); xlabel('t/s','FontSize',18); axis([100,2100,-0.5,3.5]); set(gca,'XTick',0:100:2000); grid on;CXk=fft(cxn,nfft); Pxx=abs(CXk);index=0:round(nfft/2-1); k=index*Fs/nfft; subplot(2,1,2);plot_Pxx=10*log10(Pxx(index+1)); plot(k,plot_Pxx,'LineWidth',2); title('基带信号功率谱','FontWeight','bold','FontSize',20); axis([0,5000,-10,40]);xlabel('Hz','FontSize',18,'FontSize',18);if in(i)==0ins=[0,0]; elseif in(i)==1 ins=[1,0];elseif in(i)==2 ins=[2,0]; elseins=[3,0]; endsig=[sig,ins]; endfor t=1:4000 n=fix(t/100); if n==0s(t)=0; elses(t)=sig(n); end end figure;plot(s,'LineWidth',3); title('单极性归零码','FontWeight','bold','FontSize',20); xlabel('t/s','FontSize',18); axis([100,4100,-0.5,3.5]); set(gca,'XTick',0:200:4100); grid on;cxn=xcorr(s,'unbiased'); nfft=1024;CXk=fft(cxn,nfft); Pxx=abs(CXk);index=0:round(nfft/2-1); k=index*Fs/nfft; subplot(2,1,2);plot_Pxx=10*log10(Pxx(index+1));plot(k,plot_Pxx,'LineWidth',2); title('单极性归零码功率谱','FontWeight','bold','FontSize',20); axis([0,5000,-10,40]);figure;subplot(2,1,1); plot(s1);title('添加噪声后的信号','FontWeight','bold','FontSize',20); xlabel('t/s','FontSize',18); axis([100,4100,-0.5,3.5]); set(gca,'XTick',0:500:4100); cxn=xcorr(s1,'unbiased'); nfft=1024;CXk=fft(cxn,nfft); Pxx=abs(CXk);index=0:round(nfft/2-1); k=index*Fs/nfft; subplot(2,1,2);plot_Pxx=10*log10(Pxx(index+1)); plot(k,plot_Pxx,'LineWidth',2); title('添加噪声后的信号功率谱','FontWeight','bold','FontSize',20); axis([0,5000,-10,40]);xlabel('Hz','FontSize',18);fp=500;fs= 550;ws=fs*2/Fs; wp=fp*2/Fs;[N, Wp] = ellipord(wp,ws,1,40); [b,a]=ellip(N,1,40,Wp);figure;subplot(2,1,1); plot(sf0);title('滤掉部分噪声后的信号','FontWeight','bold','FontSize',20); xlabel('t/s','FontSize',18); set(gca,'XTick',0:500:4100);cxn=xcorr(sf0,'unbiased'); nfft=1024; CXk=fft(cxn,nfft); Pxx=abs(CXk);index=0:round(nfft/2-1); k=index*Fs/nfft; subplot(2,1,2);plot_Pxx=10*log10(Pxx(index+1)); plot(k,plot_Pxx,'LineWidth',2);title('滤掉部分噪声后的信号功率谱','FontWeight','bold','FontSize',20);axis([0,5000,-10,40]);out=[out,p]; end figure;title('原始码元序列','FontWeight','bold','FontSize',20); axis([1,21,-0.5,3.5]); set(gca,'XTick',0:1:20); grid on;stairs(out,'LineWidth',3);title('抽样判决后恢复的信号序列','FontWeight','bold','FontSize',20); axis([1,21,-0.5,3.5]); set(gca,'XTick',0:1:20); grid on;。
实验1 离散时间信号的时域分析一、实验目的(1)了解MATLAB 语言的主要特点及作用;(2)熟悉MATLAB 主界面,初步掌握MATLAB 命令窗和编辑窗的操作方法;(3)学习简单的数组赋值、数组运算、绘图的程序编写;(4)了解常用时域离散信号及其特点;(5)掌握MATLAB 产生常用时域离散信号的方法。
二、知识点提示本章节的主要知识点是利用MATLAB 产生数字信号处理的几种常用典型序列、数字序列的基本运算;重点是单位脉冲、单位阶跃、正(余)弦信号的产生;难点是MATLAB 关系运算符“==、>=”的使用。
三、实验内容1. 在MATLAB 中利用逻辑关系式0==n 来实现()0n n -δ序列,显示范围21n n n ≤≤。
(函数命名为impseq(n0,n1,n2))并利用该函数实现序列:()()()632-+-=n n n y δδ;103≤≤-nn 0212. 在MATLAB 中利用逻辑关系式0>=n 来实现()0n n u -序列,显示范围21n n n ≤≤。
(函数命名为stepseq(n0,n1,n2))并利用该函数实现序列:()()()20522≤≤--++=n n u n u n y3. 在MATLAB 中利用数组运算符“.^”来实现一个实指数序列。
如: ()()5003.0≤≤=n n x n4. 在MATLAB 中用函数sin 或cos 产生正余弦序列,如:()()2003.0cos 553.0sin 11≤≤+⎪⎭⎫ ⎝⎛+=n n n n x πππ5. 已知()n n x 102cos 3π=,试显示()()()3,3,+-n x n x n x 在200≤≤n 区间的波形。
6. 参加运算的两个序列维数不同,已知()()6421≤≤-+=n n u n x ,()()8542≤≤--=n n u n x ,求()()()n x n x n x 21+=。
实验一熟悉MATLAB环境一、实验目的(1)熟悉MATLAB的主要操作命令。
(2)学会简单的矩阵输入和数据读写。
(3)掌握简单的绘图命令。
(4)用MATLAB编程并学会创建函数。
(5)观察离散系统的频率响应。
二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。
在熟悉了MATLAB基本命令的基础上,完成以下实验。
上机实验内容:(1)数组的加、减、乘、除和乘方运算。
输入A=[1 2 3 4],B=[3 4 56],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。
(2)用MATLAB实现以下序列。
a)x(n)=0.8n 0≤n≤15b)x(n)=e(0.2+3j)n 0≤n≤15c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π) 0≤n≤15d)将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周期。
e)将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周期。
(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。
a )x 1(n)=2x(n+2)-x(n-1)-2x(n)b )∑=-=51k 2)k n (nx (n) x(4)绘出下列时间函数的图形,对x 轴、y 轴以及图形上方均须加上适当的标注。
a) x(t)=sin(2πt) 0≤t ≤10s b) x(t)=cos(100πt)sin(πt) 0≤t ≤4s(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1<n0<n2,绘出该函数的图形,起点为n1,终点为n2。
(6)给定一因果系统)0.9z 0.67z -1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的幅频响应与相频响应。
(7)计算序列{8 -2 -1 2 3}和序列{2 3 -1 -3}的离散卷积,并作图表示卷积结果。
matlab 数字信号实验报告MATLAB数字信号实验报告摘要:本实验使用MATLAB软件对数字信号进行处理和分析。
首先,我们使用MATLAB生成不同类型的数字信号,并对其进行采样和量化。
然后,我们利用MATLAB对这些数字信号进行滤波、傅里叶变换和频谱分析。
通过本实验,我们可以深入了解数字信号处理的基本原理和方法,并掌握MATLAB在数字信号处理中的应用。
1. 实验目的本实验旨在通过MATLAB软件对数字信号进行处理和分析,加深对数字信号处理原理的理解,掌握MATLAB在数字信号处理中的应用技巧。
2. 实验原理数字信号处理是对数字信号进行处理和分析的技术。
数字信号处理的基本原理包括采样、量化、滤波、傅里叶变换和频谱分析等。
MATLAB是一种强大的工具,可以方便地对数字信号进行处理和分析。
3. 实验内容(1)生成不同类型的数字信号在MATLAB中,我们可以生成不同类型的数字信号,如正弦信号、方波信号和三角波信号等。
通过改变信号的频率、幅度和相位等参数,可以得到不同的数字信号。
(2)采样和量化对生成的数字信号进行采样和量化,得到离散时间信号和离散幅度信号。
(3)滤波利用MATLAB对采样和量化后的数字信号进行滤波处理,去除噪声和干扰,得到清晰的信号。
(4)傅里叶变换和频谱分析对滤波后的数字信号进行傅里叶变换,得到信号的频谱图,分析信号的频率成分和能量分布。
4. 实验结果通过MATLAB对不同类型的数字信号进行处理和分析,得到了清晰的信号波形图和频谱图。
通过对比不同类型的数字信号,我们可以发现它们在频率、幅度和相位等方面的差异。
5. 结论本实验通过MATLAB软件对数字信号进行处理和分析,加深了对数字信号处理原理的理解,掌握了MATLAB在数字信号处理中的应用技巧。
数字信号处理在通信、音频、图像等领域有着广泛的应用,掌握数字信号处理技术对于工程技术人员具有重要的意义。
MATLAB作为一种强大的工具,为数字信号处理提供了便利和高效的解决方案。
matlab 及数字信号实验报告
《利用Matlab进行数字信号实验报告》
数字信号处理是一门重要的工程学科,它涉及到数字信号的获取、处理和分析。
Matlab作为一种强大的工程计算软件,被广泛应用于数字信号处理领域。
本实
验报告将利用Matlab进行数字信号处理实验,以展示其在数字信号处理中的应用。
实验一:数字信号的获取与显示
首先,我们将使用Matlab编写程序,通过声卡获取外部声音信号,并将其显示在Matlab的图形界面上。
这个实验可以帮助我们了解如何使用Matlab进行信
号的采集和显示,为后续实验做好准备。
实验二:数字信号的滤波处理
接下来,我们将利用Matlab对获取的声音信号进行滤波处理。
我们将设计一个数字滤波器,对声音信号进行去噪处理,以提高信号的质量和清晰度。
通过这
个实验,我们可以学习到如何在Matlab中设计和应用数字滤波器,以及滤波处理对信号质量的影响。
实验三:数字信号的频谱分析
最后,我们将对处理后的声音信号进行频谱分析。
通过Matlab的频谱分析工具,我们可以了解信号的频率成分和能量分布情况,从而更好地理解信号的特性和
结构。
这个实验将帮助我们掌握如何使用Matlab进行数字信号的频谱分析,为进一步的信号处理和分析奠定基础。
通过以上实验,我们可以深入了解Matlab在数字信号处理中的应用,掌握信号采集、滤波处理和频谱分析等基本技能。
同时,我们也可以通过实验结果对数
字信号处理的理论知识进行验证和实践,加深对数字信号处理原理的理解。
希望本实验报告能够对数字信号处理领域的学习和研究有所帮助。
实验一Matlab的基本操作一、实验目的:熟悉MATLAB软件布局,掌握MA TLAB基本命令和操作。
二、实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。
三、实验内容:1.MATLAB简介:MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks 公司推向市场。
它是一种科学计算软件,专门以矩阵的形式处理数据。
MA TLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作。
MATLAB软件包括五大通用功能:数值计算功能(Nemeric);符号运算功能(Symbolic);数据可视化功能(Graphic);数据图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。
该软件有三大特点:一是功能强大;二是界面友善、语言自然;三是开放性强。
目前,Mathworks公司已推出30多个应用工具箱。
MATLAB在线性代数、矩阵分析、数值及优化、数理统计和随机信号分析、电路与系统、系统动力学、信号和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统、以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。
MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。
由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能能基本满足信号与系统课程的需求。
例如,解微分方程、傅里叶正反变换、拉普拉斯正反变换、z正反变换等。
MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲激响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析、零极点图绘制等内容。
数值计算仿真分析可以帮助学生更深入理解信号与系统的理论知识,并为将来使用MA TLAB进行信号处理领域的各种分析和实际应用打下基础。
1、编制一个函数实现PCM 量化编码,自己选定一个模拟信号,利用PCM 技术对已选定的 信号进行数字化,已数字化的信号通过一个AWGN 的信道(AWGN 信道的均值为0,方差 自己任意选定),信宿对信号进行PCM 译码,求出原始模拟信号脉冲编码调制(PCM ):脉冲编码调制(PulseCodeModulation),是对信号进行抽样和量化时,将所 得的量化值序列进行编码,变换为数字信号的调制过程。
它主要经过3个过程: 抽样、量化和编码。
抽样过程将连续时间模拟信号变为离散时间、连续幅度的抽 样信号,量化过程将抽样信号变为离散时间、离散幅度的数字信号,编码过程将 量化后的信号编码成为一个二进制码组输出。
理想对数压缩:y = 1 + -ln( x ) k 需对x f 0的小信号段进行修正A 律修正思想:(1) .过原点做y = f (x )的切线,切点b; (2) .切线ob 段+曲线bc ——A 律压缩曲线。
A 压缩律是指符合下式的对数压缩规律:式中,x 为压缩器归一化输入电压;y 为压缩器归一化输出电压;A 为常数, 决定压缩程度。
A 压缩律中的常数A 不同,则压缩曲线的形状也不同,它将特别影响小电压时的信号量噪比的大小,在实用中,选择A 等于87.6。
13折线近似的原理A 律压缩表示式是一条连续的平滑曲线,用电子线路很难准确的实现。
现在 由于数字电路技术的发展,这种特性很容易用数字电路来近似实现,13折线特 性A 律PCM 编码规则:A 律压缩律原理:y =i Ax 1 + ln( A ))1 +--------------,—< x < 1[1+ln( A ) A就是近似于A压缩律的特性,其曲线见图2.图2. 13折线压缩特性曲线图中横坐标x在0〜1区间中分为不均匀的8段。
1/2~1间的线段称为第8 段;1/4~ 1/2间的线段称为第7段;1/8~ 1/4间的线段称为第6段;依此类推,直到0- 1/128间的线段称为第1段。
MATLAB实验教案5篇第一篇:MATLAB实验教案实验一离散系统的时域分析和复频域分析1.实验目的(1)掌握在时域求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)通过实验判断系统稳定性(4)掌握利用Z变换对系统进行复频域分析。
(5)掌握系统零、极点的绘制方法。
(6)通过复频域分析系统稳定性、频率特性。
(7)熟悉Z变换的应用2.实验设备λ计算机λ MATLAB R2012a仿真软件3.实验原理(1)离散系统的时域分析在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,利用filter 函数或conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性是指系统的线性移不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应,或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号、输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。
可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。
系统的稳态输出是指当n→∞时系统的输出。
如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随着n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。
(2)离散系统的复频域分析离散系统的时域方程为∑dk=0Nky(n-k)=x(n-k)∑pkK=0∞M其变换域分析如下y(n)=x(n)*h(n)=频域系统频率响应为m=-∞∑x(m)h(n-m)⇔Y(e)=X(e)H(e)jωjωjωH(e)=Z域 jωY(e)X(e)jωjωy(n)=x(n)*h(n)=系统的转移函数为m=-∞∑x(m)h(n-m)⇔Y(z)=Y(z)X(Z)-i∞X(z)H(z)H(z)=0分解因式H(z)i=N∑pkz∑dkzi=0M=K-i X(1-ξX(1-i=1i=1NMiz-1)),其中,ξ和iλzi-1λi称为零、极点。
实验1 常见离散信号的MATLAB 产生和图形显示1.实验目的:加深对常用离散信号的理解;2.实验原理: 单位抽样序列⎩⎨⎧=01)(n δ0≠=n n在MA TLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n k n2.单位阶跃序列⎩⎨⎧01)(n u 00<≥n n在MA TLAB 中可以利用ones()函数实现。
);,1(N ones x =3.正弦序列)/2sin()(ϕπ+=Fs fn A n x在MA TLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复正弦序列nj en x ϖ=)(在MA TLAB 中)**exp(1:0n w j x N n =-=5.指数序列na n x =)(在MA TLAB 中na x N n .^1:0=-=3.实验内容:编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
4.实验要求:(1)预先阅读附录(MA TLAB 基础介绍); (2)讨论复指数序列的性质;(3)打印程序清单和要求的各信号波形。
实验2 离散系统的差分方程、冲激响应和卷积分析1.实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。
2.实验原理:离散系统其输入、输出关系可用以下差分方程描述:∑=∑=-=-M k k N k k k n x p k n y d 0][][输入信号分解为冲激信号 ∑-=∞-∞=m m n m x n x ][][][δ记系统单位冲激响应][][n h n →δ则系统响应为如下的卷积计算式 ∑∞-∞=-=*=m m n h m x n h n x n y ][][][][][当Nk d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。
在MA TLAB 中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。
3.实验内容:编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
]1[][]2[125.0]1[75.0][--=-+-+n x n x n y n y n y ]}4[]3[]2[]1[{25.0][-+-+-+-=n x n x n x n x n y4.实验要求:(1)给出理论计算结果和程序计算结果并讨论; (2)打印程序清单和要求的各信号波形。
实验3 系统响应及系统稳定性1.实验目的(1) 掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号, 可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB语言的工具箱函数filter函数。
也可以用MA TLAB语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。
可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。
系统的稳态输出是指当n→∞时,系统的输出。
如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。
3.实验内容及步骤(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv 函数求解系统输出响应的主程序。
程序中要有绘制信号波形的功能。
(2)给定一个低通滤波器的差分方程为y(n)=0.05x(n)+0.05x(n-1)+0.9y(n-1)输入信号x1(n)=R8(n), x2(n)=u(n)①分别求出x1(n)=R8(n)和x2(n)=u(n)的系统响应,并画出其波形。
②求出系统的单位脉冲响应,画出其波形。
(3)给定系统的单位脉冲响应为h1(n)=R10(n)h2(n)=δ(n)+2.5δ(n-1)+2.5δ(n-2)+ δ(n-3)用线性卷积法求x1(n)=R8(n)分别对系统h1(n)和h2(n)的输出响应,并画出波形。
(4)给定一谐振器的差分方程为y(n)=1.8237y(n-1)-0.9802y(n-2)+b0x(n)-b0x(n-2)令b0=1/100.49,谐振器的谐振频率为0.4rad。
①用实验方法检查系统是否稳定。
输入信号为u(n)时,画出系统输出波形。
②给定输入信号为x(n)=sin(0.014n)+sin(0.4n)求出系统的输出响应,并画出其波形。
4.思考题(1)如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应?如何求?(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化? 用前面第一个实验结果进行分析说明。
5.实验报告要求(1)简述在时域求系统响应的方法。
(2)简述通过实验判断系统稳定性的方法。
分析上面第三个实验的稳定输出的波形。
(3)对各实验所得结果进行简单分析和解释。
(4)简要回答思考题。
(5)打印程序清单和要求的各信号波形。
实验4 时域采样与频域采样1.实验目的时域采样理论与频域采样理论是数字信号处理中的重要理论。
要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作用。
2.实验原理与方法时域采样定理的要点是:对模拟信号x a (t)以T 进行时域等间隔理想采样,形成的采样信号的频谱 会以采样角频率Ωs (Ωs=2π/T )为周期进行周期延拓。
公式为1()[()]()a a asn X j F T x t X j j n T∞=-∞Ω==Ω-Ω∑② 采样频率s Ω必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频谱混叠。
利用计算机计算上式并不方便,下面我们导出另外一个公式,以便在计算机上进行实验。
理想采样信号 ()a x t 和模拟信号()a x t 之间的关系为 ()()()a an x t x t t n T δ∞=-∞=-∑ 对上式进行傅里叶变换,得到:()[()()]()()j tj ta a a n n X j x t t nT edt x t t nT edtδδ∞∞∞∞-Ω-Ω-∞-∞=-∞=-∞Ω=-=-∑∑⎰⎰在上式的积分号内只有当t =nT 时,才有非零值,因此:()()j nta a n X j x nT e∞-Ω=-∞Ω=∑上式中,在数值上()()a x nT x n =,再将ω=ΩT 代入,得到:()()j na a n X j x n e ∞-Ω=-∞Ω=∑上式的右边就是序列的傅里叶变换()j X eω,即()()j a TX j X eωω=ΩΩ=上式说明采样信号的傅里叶变换可用相应序列的傅里叶变换得到,只要将自变量ω用ΩT 代替即可。
频域采样定理的要点是: ① 对信号x (n )的频谱函数()j X eω在[0,2π]上等间隔采样N 点,得到:2()()j k N NX k X e ωπω== k=0,1,2,…,N -1则N 点IDFT [X N (k)]得到的序列就是原序列x (n )以N 为周期进行周期延拓后的主值区序列,公式为()[()][()]N N NN n x n I D F T X k x ni N Rn∞=-∞==+∑ ② 由上式可知,频域采样点数N 必须大于等于时域离散信号的长度M (即N ≥M),才能使时域不产生混叠,则N 点[()]N ID FT X k 得到的序列()N x n 就是原序列x (n ),即()()N x n x n =。
如果N>M ,()N x n 比原序列尾部多N -M 个零点;如果N<M ,则()[()]N N x n ID FT X k=发生了时域混叠失真,而且()N x n 的长度N 也比x (n )的长度M 短,因此, ()N x n 与x (n )不相同。
在数字信号处理的应用中,只要涉及时域或者频域采样,都必须服从这两个采样理论的要点。
对比上面叙述的时域采样原理和频域采样原理,得到一个有用的结论: 这两个采样理论具有对偶性,即“时域采样频谱周期延拓,频域采样时域信号周期延拓”。
因此,将它们放在一起进行实验。
3.实验内容及步骤(1)时域采样理论的验证。
给定模拟信号 0()()()ta x t A es i n t u tα-=Ω 式中, A =444.128,α=,0Ω=rad/s ,它的幅频特性曲线如图1所示。
现用DFT(FFT)求该模拟信号的幅频特性,以验证时域采样理论。
按照()a x t 的幅频特性曲线,选取三种采样频率,即F s=1kHz ,300Hz ,200Hz 。
观测时间选T p=64 ms 。
为使用DFT ,首先用下面的公式产生时域离散信号,对三种采样频率,采样序列按顺序图1 x a (t )的幅频特性曲线用123(),(),()x n x n x n 表示。
0()()()()nTa x n x nT Ae sin nT u nT α-==Ω 因为采样频率不同,得到的123(),(),()x n x n x n 的长度不同,长度(点数)用公式N =T p×F s 计算。
选FFT 的变换点数为M=64,序列长度不够64的尾部加零。
X(k)=FFT[x(n)] , k =0,1,2,3,…,M -1 式中,k 代表的频率为 2k k Mπω=要求:编写实验程序,计算123(),(),()x n x n x n 的幅度特性,并绘图显示。
观察分析频谱混叠失真。
(2)频域采样理论的验证。
给定信号如下:n+1 0≤n≤13x(n)= 27-n 14≤n≤260 其它编写程序分别对频谱函数()j X e ω=FT [x(n)]在区间[0,2π]上等间隔采样32点和16点,得到32()X k 和16()X k : 23232()()j kX k X e ωπω== k=0,1,2,…,31 21616()()j kX k X e ωπω== k=0,1,2,…,15再分别对32()X k 和16()X k 进行32点和16点IFFT ,得到32()x n 和16()x n :32323()[()]x n I F F T X k = n=0,1,2,…,31 16161()[()]x n I F F T X k = n=0,1,2,…,15分别画出()j X eω、32()X k 和16()X k 的幅度谱,并绘图显示x (n )、32()x n 和16()x n 的波形,进行对比和分析,验证总结频域采样理论。