MATLAB信号处理仿真实验教程

合集下载

如何使用Matlab做数字信号处理的仿真1

如何使用Matlab做数字信号处理的仿真1

如何使⽤Matlab做数字信号处理的仿真1例如第三版数字信号处理P51 -1.14习题时域离散信号的相关性研究x(n)=Asin(ωn)+u(n),其中ω=π/16,u(n)是⽩噪声,现要求
⑴、产⽣均值为0,功率P=0.1的均匀分布⽩噪声u(n),求u(n)⾃相关函数ru(m)
⑵、使x(n)的信噪⽐10dB 决定A的数值 并画出x(n)的图形及其⾃相关函数的图形
(1)
1 新建⼀个matlab脚本---edit ⽂件名.m
2 然后再.m后缀的⽂件中编写代码
3 在脚本中调试:直接打⽂件名+回车键就可以调试了,
4 过⼀会会出现如下最右边的图形
edit jaoany.m
p=0.1;N=50000;
u0=rand(1,N);u0=u0-mean(u0);
a=sqrt(p/0.083);u=u0*a;
power_u=dot(u,u)/N
plot(u(1:100));grid on;
求⾃相关函数
>> ru=xcorr(u,100,'unbiased');plot(ru) %求⾃相关函数
⑵、使x(n)的信噪⽐10dB 决定A的数值 并画出x(n)的图形及其⾃相关函数的图形
运⾏可以直接在>>l后⾯敲下代码,不过错了不好编辑,建议还是建⽴⼀个.m的⽂档来编写
n=0:49999;
y=0.5*pi*sin(0.0625*pi*n);
x=y+u;
plot(x(1:100));grid on;
求⾃相关函数>> rx=xcorr(x,100,'unbiased');plot(rx)%求⾃相关函数。

简单的matlab信号仿真

简单的matlab信号仿真

实验1 连续时间信号和离散信号的实现实验内容与方法一、验证性试验1、生成直流信号f(t)=6MA TLAB程序代码:t = -10:0.01:10;a1 = 6;subplot(3,3,1)plot(t,a1,'b');title('直流信号');xlabel('时间(t)');ylabel('幅值(f)')2、生成正弦交流信号f(t)=sin(wt+φ)MA TLAB程序代码:t = 0:0.01:1;f = sym('sin(2*pi*t)');subplot(3,3,2)ezplot(f,[0,1]);title('正弦交流信号');xlabel('时间(t)');ylabel('幅值(f)')3、生成单位阶跃信号f(t)=ε(t)MA TLAB程序代码:t0=0;t1=-1;t2=3;dt=0.01;t=t1:dt:-t0;n=length(t);t3=-t0:dt:t2;n3=length(t3);u=zeros(1,n);u3=ones(1,n3);subplot(3,3,3)plot(t,u);hold on;plot(t3,u3);plot([-t0,-t0],[0,1]);hold off;axis([t1,t2,-0.2,1.5]);xlabel('时间(t)');ylabel('幅值(f)');title('单位阶跃信号')4、生成单位冲激信号f(t)=δ(t)MA TLAB程序代码:t0=0;t1=-1;t2=5;dt=0.1;t=t1:dt:t2;n=length(t);x=zeros(1,n);x(1,(t0-t1)/dt+1)=1/dt;subplot(3,3,4)stairs(t,x);axis([t1,t2,0,1/dt]);xlabel('时间(t)');ylabel('幅值(f)');title('单位冲激信号')5、生成周期方波信号MA TLAB程序代码:t=(0:0.0001:1);y=square(2*pi*15*t);subplot(3,3,5)plot(t,y);axis([0,1,-1.5,1.5]);xlabel('时间(t)');ylabel('幅值(f)');title('周期方波信号')6、生成三角波信号MA TLAB程序代码:t=(-3:0.0001:5);y=tripuls(t,4,0.5);subplot(3,3,6)plot(t,y);xlabel('时间(t)');ylabel('幅值(f)');title('三角波信号')7、生成正弦序列信号MA TLAB程序代码:k1=-20;k2=20;k=k1:k2;f=sin(k*pi/6);subplot(3,3,7)stem(k,f,'filled');xlabel('时间(t)');ylabel('幅值(f)');title('正弦序列')8、生成单位斜波序列信号MA TLAB程序代码:k1=-20;k2=20;k0=0;n=[k1:k2];if k0>=k2x=zeros(1,length(n));elseif (k0<k2)&(k0>k1)x=[zeros(1,k0-k1),[0:k2-k0]];elsex=(k1-k0)+[0:k2-k1];endsubplot(3,3,8)stem(n,x);xlabel('时间(t)');ylabel('幅值(f)');title('单位斜波序列')9、生成幅值调制序列信号MA TLAB程序代码:n=0:100;m=0.4;fH=0.1;fL=0.01;xH=sin(2*pi*fH*n);xL=sin(2*pi*fL*n);y=(1+m*xL).*xH;subplot(3,3,9)stem(n,y);grid;xlabel('时间(k)');ylabel('幅值f(k)');title('幅值调制序列')10、生成复指数信号y(t)=e^(-at+bjt)MA TLAB程序代码:t=0:0.01:3;a=-3;b=4;z=exp((a+i*b)*t);subplot(2,2,1);plot(t,real(z)),title('实部'):xlabel('时间(t)');ylabel('幅值(f)'); subplot(2,2,2);plot(t,imag(z)),title('虚部'):xlabel('时间(t)');ylabel('幅值'); subplot(2,2,3);plot(t,abs(z)),title('模'):xlabel('时间(t)');ylabel('幅值'); subplot(2,2,4);plot(t,real(z)),title('相角'):xlabel('时间(t)');ylabel('幅值')二、程序设计实验①a=3;x=-10:0.01:10;y=(1-2*abs(x))/a;subplot(3,3,1)plot(x,y,'b')axis([-12,12,-10,5]);xlabel('x');ylabel('y');title('(1-2*abs(x))/a')②t = 0:0.01:6*pi;f = sym('cos(3*t)+sin(2*t)');subplot(3,3,2)ezplot(f,[0,6*pi]);title('信号');xlabel('时间(t)');ylabel('幅值(f)')③t0=-5;t1=-10;t2=5;dt=0.01;t=t1:dt:t0;n=length(t);t3=t0:dt:t2;n3=length(t3);u=zeros(1,n);u3=ones(1,n3);subplot(3,3,3)plot(t,u);hold on;plot(t3,u3);plot([t0,t0],[0,1]);hold off;axis([t1,t2,-0.2,1.2]);xlabel('时间(t)');ylabel('幅值(f)');title('u(t+5)')④k1=-20;k2=20;k=k1:k2;f=cos(5*k)+sin(4*k);subplot(3,3,7)stem(k,f,'filled');xlabel('时间(k)');ylabel('幅值f(k)');title('信号4')⑤x=0:0.01:3;z=5*exp(-x);subplot(2,2,1);plot(x,real(z)),title('信号5'):xlabel('时间(x)');ylabel('幅值(f)')⑥k0=0;k1=-1;k2=10;dk=1;k=k1:dk:k2;n=length(k);x=zeros(1,n);x(1,(k0-k1)/dk+1)=1/dk;subplot(3,3,4)stairs(k+5,x);axis([k1,k2,0,1/dk]);xlabel('时间(k)');ylabel('幅值(f)');title('信号6')⑦t0=-5;t1=-6;t2=0;t=t1:t0-1;n=length(t);t3=t0:t2;n3=length(t3);u=zeros(1,n);u3=ones(1,n3);subplot(3,3,7)stem(t,u,'filled');hold on;stem(t3,u3,'filled');hold off;axis([t1,t2,-0.2,1.5]);xlabel('时间(t)');ylabel('幅值(f)');title('信号7');。

数字信号MATLAB仿真实验

数字信号MATLAB仿真实验

数字信号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信号处理仿真实验1. 引言信号处理是一种广泛应用于各个领域的技术,它涉及到对信号的获取、处理和分析。

MATLAB是一种强大的数学软件,提供了丰富的信号处理工具箱,可以用于信号处理的仿真实验。

本文将介绍如何使用MATLAB进行信号处理仿真实验,并提供详细的步骤和示例。

2. 实验目的本实验旨在通过MATLAB软件进行信号处理仿真,以加深对信号处理原理和算法的理解,并掌握使用MATLAB进行信号处理的基本方法和技巧。

3. 实验步骤3.1 生成信号首先,我们需要生成一个待处理的信号。

可以使用MATLAB提供的信号生成函数,如sine、square和sawtooth等。

以生成一个正弦信号为例,可以使用以下代码:```MATLABfs = 1000; % 采样频率t = 0:1/fs:1; % 时间向量f = 10; % 信号频率x = sin(2*pi*f*t); % 生成正弦信号```3.2 添加噪声为了更真实地摹拟实际信号处理场景,我们可以向生成的信号中添加噪声。

可以使用MATLAB提供的随机噪声生成函数,如randn和awgn等。

以向生成的信号中添加高斯白噪声为例,可以使用以下代码:```MATLABSNR = 10; % 信噪比y = awgn(x, SNR); % 向信号中添加高斯白噪声```3.3 进行滤波处理滤波是信号处理中常用的一种技术,用于去除信号中的噪声或者提取感兴趣的频率成份。

可以使用MATLAB提供的滤波函数,如fir1和butter等。

以设计并应用一个低通滤波器为例,可以使用以下代码:```MATLABorder = 10; % 滤波器阶数cutoff = 0.1; % 截止频率b = fir1(order, cutoff); % 设计低通滤波器filtered_y = filter(b, 1, y); % 应用滤波器```3.4 进行频谱分析频谱分析是信号处理中常用的一种技术,用于分析信号的频率成份。

第一次实验 MATLAB的数字信号处理基础

第一次实验 MATLAB的数字信号处理基础

第一次实验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基本操作

实验一用于信号处理的MATLAB基本操作

实验一 用于信号处理的MATLAB 基本操作一、[实验目的]1.学习和掌握MATLAB 最基本的矩阵运算与绘图工具2.复习离散时间的信号,离散时间重要类型的信号和它们的运算的实现 3.复习离散时间信号理论中一些重要的结果,在数字信号处理中很有用 二、[实验原理] 1.典型序列单位抽样序列1,0()0,0n n n δ=⎧=⎨≠⎩单位阶跃序列1,0()0,0n u n n ≥⎧=⎨<⎩实数指数序列n a n x =)(1 ,a =5,010n ≤≤ 复数指数序列()2(),2,1,010,a jw n x n e a w n +===≤≤表示出实部虚部,模和相位 正余弦序列30()sin()(),anT x n Ae nT u n -=Ω0444.128,02,502,T 0.001s ;050A a n ==Ω==≤≤ 随机序列:MATLAB 可用rand (1,N )和randn (1,N )来生成 周期序列:4()2,010,151515n x n n =≤≤对该序列以周期为延拓,画出[-,]的图形 2.序列的运算信号加:13()(),010x n x n n +≤≤, 信号乘:13()(),010x n x n n ⋅≤≤,插值与抽取:11121n(),010y (n)(2),y (n)()2x n n x n x ≤≤==已知,求移位:33343(),010y (n)(5),y (n)(5)x n n x n x n ≤≤=+=-已知,求 折叠:fliplr(x) 353(),010y (n)()x n n x n ≤≤=-已知,求取样和:sum(x(n1:n2)) 10363m 0(),010y (n)(m)x n n x =≤≤=∑已知,求信号能量:sum(abs(x).^2) 102373m 0(),010y (n)(m)x n n x =≤≤=∑已知,求信号功率:sum(abs(x).^2)/length(x)102283m 01(),010y (n)|(m)|11x n n x =≤≤=∑已知,求3.一些有用的结果软件实现 (1)本实验用到的一些matlab 函数stem(x,y),plot(x,y):x 轴和y 轴均为线性刻度(linear scale ) Xlable(‘x ’),Ylable(‘y ’) Title(‘x ’)Axis([xmin ,xmax,ymin,ymax]):调整图轴的范围 Subplot(x,y ,z):同时画出数个小图形在同一视窗中 Real(x):求复数x 的实数部分 Imag(x):求复数x 的虚数部分 Abs (x ):求复数x 的模 Angle(x):求复数x 的相位Conv(x,y):求x 和y 的卷积,注意下标是从1开始 Fliplr(x):信号反折(2)Matlab 编程和调试技巧:因为Matlab 语言是一种解释性语言,所以有时matlab 程序的执行速度不是很理想。

MATLAB信号处理仿真实验

MATLAB信号处理仿真实验

3 信号处理仿真实验(教师)3.1 MATLAB信号处理基础实验一、实验目的1.掌握MATLAB常用信号处理波形;2.学习信号序列的各种操作;3.学习离散傅立叶变换的MATALB相关操作。

二、实验内容1.产生下列各种波形,并记录结果。

(1)单位抽样序列x=[1 zeros(1,n-1)]>> n=7;>> x=[1 zeros(1,n-1)]x =1 0 0 0 0 0 0(2)单位阶跃矩阵x=ones(1,N)>> N=6;>> x=ones(1,N)x =1 1 1 1 1 1(3)实指数序列n=0:N-1;x=a.^n;>> a=6;>> N=6;>> n=0:N-1;>> x=a.^nx =1 6 36 216 1296 7776(4)复指数序列n=0:N-1;x=ex((lu+j*w0)*n);>> N=6;lu=3;w0=40;n=0:N-1;x=exp((lu+j*w0)*n)x =1.0e+006 *0.0000 -0.0000 + 0.0000i -0.0000 - 0.0004i0.0066 + 0.0047i -0.1588 + 0.0357i 1.5926 - 2.8548i(5)随机序列rand(1,N);randn(1,N);>> N=6;>> rand(1,N)ans =0.4565 0.0185 0.8214 0.4447 0.6154 0.7919 >> randn(1,N)ans =1.1892 -0.0376 0.3273 0.1746 -0.1867 0.7258 (6)方波t=0:0.1*pi:6*pi;y=square(t);axis([0 7*pi -1.5 1.5]);plot(t,y);xlabel('时间');ylabel('幅值');(7)正弦波t=0:0.01*pi:2*pi;x=sin(2*pi*t);plot(t,x);xlabel('时间');ylabel('幅值');(8)锯齿波Fs=10000;t=0:1/Fs:1.5;x=sawtooth(2*pi*50*t);plot(t,x);axis([0 0.2 -1 1]);(9)基本非周期波形t=0:1/1000:2;x=chirp(t,0,1,150);specgram(x,256,1000,256,250);(10)sinc信号t=linspace(-5,5);x=sinc(t);plot(t,x);(11)pulstran信号t=0:1/50E3:10E-3;d=[0:1/1E3:10E-3;0.8.^(0:10)]';x=pulstran(t,d,'gauspuls',10E3,0.5);plot(t,x);(12)diric信号t=[-4*pi:0.1/pi:4*pi];x=diric(t,7);y=diric(t,8);subplot(1,2,1);title('n为奇数');plot(t,x);subplot(1,2,2);plot(t,y);title('n为偶数');2.有两信号分别为)2sin(11t x πω=,)2sin(222t x πω=,其中Hz501=ω,Hz1202=ω,编程实现此二信号的叠加,并计算它的抽样和、抽样积、信号能量和信号功率。

信号处理仿真及应用实验指导书(最新)

信号处理仿真及应用实验指导书(最新)

信号处理仿真及应用实验指导书实验一 电路的建模与仿真——MATLAB 程序设计一、实验目的:1、熟悉MATLAB 命令和编辑、运行、调试环境;2、编写M 文件,实现电路仿真。

二、实验原理与方法:仿真RLC 电路的响应,要求运用电路分析知识编写M 文件,计算电流,并绘制出图形。

二、实验内容及步骤:方法一:采用函数文件形式进行仿真(参考教材P18例子)1、如下图所示电路的初始能量为零,t=0时刻,将一个25mA 的直流源作用到电路上,其中电容C=0.1F ,电感L=1H ,电阻R=4Ω,画出图中电感L 支路上电流i L 的图形。

列写出关于电感L 支路上电流i L 的微分方程 2、根据建模分析 3、进行MA TLAB 仿真建立M 文件,运行求解微分方程 4、绘制电感支路电流图形方法二、采用MA TLAB 函数dsolve 进行仿真1、运用电路分析知识建立电路模型如上图所示电路的初始能量为零,t=0时刻,将一个25mA 的直流源作用到电路上,其中电容C=25nF ,电感L=25mH ,电阻R=400Ω(注意该参数与前面的参数不同)。

列写出关于电感L 支路上电流i L 的微分方程因为电路初始能量为0,而且电感上的电流不能突变,所以在开关打开瞬间电感上的电流),0(0)(==t t i L 电感上的电压),0(0)(==t t V L 又,/)(*)(dt i d L t V L L =所以:0)0(=+dtdi L (1)根据电路图及基尔霍夫电流定律可得:I i i i C R L =++ (2)其中,C R i i ,的表达式分别如下:RV i R =,dtdV Ci C = (3)在上式中,V 为电阻R 两端电压,同时也就是电容两端电压,又有如下式关系:dtdi LV L =22dti d LdtdV L = (4)将(3)式与(4)式依次代入(2)式,可得如下表达式:LCI LCi dtdi RC dti d L L L =++1222、进行MATLAB 仿真建立M 文件,运行求解微分方程 desolve :求解微分方程符号的一般指令,其通用格式为: ('1,2,','1,2,r d s o l v e e q e q c o n d c o n d v=⋅⋅⋅⋅⋅⋅其中,eq1,eq2,…分别代表按序排列的不同微分方程,cond1、cond2分别代表微分方程式的初始条件,v 代表微分方程中的独立变量(其默认独立变量为t )。

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