数字信号处理MATLAB仿真(DOC)
数字信号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在“数字信号处理”教学中的应用研究word精品文档3页
MATLAB在“数字信号处理”教学中的应用研究随着计算机技术和微电子学科的迅速发展,数字信号处理技术(Digital Signal Processing,DSP)被广泛应用于电子、信息、生物医学、控制等各个专业技术领域,[1]数字信号处理课程也已成为各大专院校理工科类的专业基础课程。
数字信号处理课程同大多数理工类基础课和专业基础课一样,翻开相关教材,满篇是抽象的数学公式和数学符号。
而且其内容涉及范围之广,从高等数学的微分积分,到离散数学差分、求和、插值,再到信号与系统的时域分析、变换域分析、傅里叶分析,以及到数字滤波器的结构分析和设计实现,无不涉及理论推导,公式推理,令初学者望而生畏。
因此,如何帮助学生理解与掌握课程中的基本概念、基本原理、基本分析方法以及综合应用所学知识解决实际问题,是本门课程教学所要解决的关键问题。
MATLAB软件是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。
它集数值分析、矩阵运算、信号处理和图形显示于一体,特别是具有的数字信号处理软件包,可以很方便地进行数字信号处理方面的有关运算、系统设计和仿真。
MATLAB软件已经成为数字信号处理应用中分析和仿真设计的主要工具,使得“数字信号处理”课程的教学方法有了很大的改进。
一、MATLAB在课堂教学中的应用“数字信号处理”课程最大特点是概念抽象且公式繁多,许多公式的物理意义不直观且很难理解。
传统的课堂教学很难达到理想的效果,如果采用MATLAB软件对信号处理过程进行演示,不但可以帮助学生理解和掌握基本概念,而且可以增加课堂教学的生动性和趣味性,激发学生的求知欲,加深学生对概念的理解和掌握,从而提高教学质量。
MATLAB在课堂教学中的应用主要体现在两个方面:一是在课堂上将理论教学与MATLAB图形演示结合起来,使学生在接受枯燥理论知识的同时,可以看到相应知识点的验证演示,从而使课堂教学更加直观、生动和紧凑;二是针对课堂教学中涉及的重点适当布置课后练习,让学生利用MATLAB软件完成平时以书面形式难以完成的作业,加深对所学知识的理解,提高学习兴趣。
北邮数字信号处理Matlab仿真实验-实验报告
北京邮电大学数字信号处理<MatLab仿真试验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx实验时间: xxx评定成绩:目录实验一:数字信号的FFT 分析 (2)1、实验内容及要求 (2)(1)离散信号的频谱分析 (2)(2)DTMF信号频谱分析 (2)2、实验目的 (2)3、分析设计 (2)(1)离散信号的频谱分析 (2)(2)DTMF信号频谱分析 (3)4、设计结果 (4)(1)离散信号的频谱分析 (4)(2)DTMF信号频谱分析 (4)实验二:DTMF 信号的编码 (5)1、实验内容及要求 (5)2、实验目的 (6)3、分析设计 (6)4、设计结果 (7)实验三:FIR 数字滤波器的设计和实现 (8)1、实验内容及要求: (8)2、实验目的 (8)3、分析设计 (8)4、设计结果 (13)实验一:数字信号的 FFT 分析1、实验内容及要求(1)离散信号的频谱分析设信号00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--此信号的0.3pi 和0.302pi 两根谱线相距很近,谱线0.45pi 的幅度很小,请选择合适的序列长度N 和窗函数,用DFT 分析其频谱,要求得到清楚的三根谱线。
(2)DTMF 信号频谱分析用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。
2、实验目的通过本次实验,应该掌握:(a)用傅立叶变换进行信号分析时基本参数的选择。
(b)经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别,前者DTFT 时间域是离散信号,频率域还是连续的,而DFT 在两个域中都是离散的。
(c)离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
精品文档-数字信号处理实验(MATLAB版)刘舒帆-第13章
y(n)=x((n+m)N)RN(n) x(n)左移m位的过程可由以下步骤获得:
(1)将x(n)以N为周期进行周期延拓,得到
=
x((n)N); (2)将
左移m位,得到
; ~x(n)
(3)取 y(n)。
~x(n)
~x(n
m)
的主值序列,~x(得n到mx)(n)循环移位序列
10
有限长序列的移位也称为循环移位,原因是将x(n)左移m 位时,移出的m位又依次从右端进入主值区。下面举例说明。
11
例13-2 已知有限长序列x(n)=[1,2,3,4,5,6],
求x(n)左移2位成为新的向量y(n),并画出循环移位的中间过
程。
解 MATLAB程序如下:
xn=[1,2,3,4,5,6];
%建立xn序列
Nx=length(xn);nx=0:Nx-1;
nx1=-Nx:2*Nx-1;%设立周期延拓的范围
subplot(4,1,2),stem(nx1,x1);%画出x1 subplot(4,1,3),stem(ny1,y1);%画出y1 subplot(4,1,4),stem(ny1,RN1.*y1); %画出y1的 主值部分 运行结果如图13-2所示。
13 图13-2 例13-2有限长序列的循环移位
x1=xn(mod(nx1,Nx)+1);%建立周期延拓序列
ny1=nx1-2;y1=x1;%将x1左移2位,得到y1
12
RN=(nx1>=0)&(nx1<Nx);%在x1的位置向量nx1上设置 主值窗
RN1=(ny1>=0)&(ny1<Nx);%在y1的位置向量ny1上设置 主值窗
subplot(4,1,1),stem(nx1,RN.*x1);%画出x1的主 值部分
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=ω,编程实现此二信号的叠加,并计算它的抽样和、抽样积、信号能量和信号功率。
(完整版)数字信号处理实验二
y = filter(num,den,x,ic);
yt = a*y1 + b*y2;
d = y - yt;
subplot(3,1,1)
stem(n,y);
ylabel('振幅');
title('加权输入: a \cdot x_{1}[n] + b \cdot x_{2}[n]的输出');
subplot(3,1,2)
%扫频信号通过2.1系统:
clf;
n = 0:100;
s1 = cos(2*pi*0.05*n);
s2 = cos(2*pi*0.47*n);
a = pi/2/100;
b = 0;
arg = a*n.*n + b*n;
x = cos(arg);
M = input('滤波器所需的长度=');
num = ones(1,M);
三、实验器材及软件
1.微型计算机1台
2. MATLAB 7.0软件
四、实验原理
1.三点平滑滤波器是一个线性时不变的有限冲激响应系统,将输出延时一个抽样周期,可得到三点平滑滤波器的因果表达式,生成的滤波器表示为
归纳上式可得
此式表示了一个因果M点平滑FIR滤波器。
2.对线性离散时间系统,若y1[n]和y2[n]分别是输入序列x1[n]和x2[n]的响应,则输入
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
重庆大学数字信号处理matlab,重庆大学控制工程大作业—matlab程序及附图.doc
重庆⼤学数字信号处理matlab,重庆⼤学控制⼯程⼤作业—matlab程序及附图.doc附录相位超前校正相位超前校正前后相位滞后校正相位滞后校正相位滞后-超前校正相位滞后-超前校正相位超前校正程序kc=10; %满⾜恒速响应稳态误差要求w=logspace(-1,2,100); %频率范围bode(tf(kc*ng,dg),w),grid[mu,pu]=bode(tf(kc*ng,dg),w);%满⾜稳态误差要求系统的Bode响应fz=20*log10(mu);%将幅值⽤分贝表⽰wc=interp1(fz,w,0,'spline') %求出幅值交界频率gama=180+spline(w,pu,wc)wcg=interp1(fz,w,-6.02,'spline')(2)作图程序num1=[0 0 40];den1=[1 2 0];sys1=tf(num1,den1);w=logspace(-1,2,100);%频率范围bode(sys1,w),gridhold on;num2=[0.227 1];den2=[0.057 1];sys2=tf(num2,den2);bode(sys2,w),gridhold on;num3=[9.08 40];den3=[0.057 1.114 2 0];sys3=tf(num3,den3);bode(sys3,w),gridgtext('校正前幅频')gtext('校正环节幅频')gtext('校正后幅频')gtext('校正前相频')gtext('校正环节相频')gtext('校正后相频')gtext('幅频/dB')gtext('相频/度')gtext('频率')相位滞后校正程序kc=5; %满⾜恒速响应稳态误差要求w=logspace(-3,4,100); %频率范围bode(tf(kc*ng,dg),w),grid[mu,pu]=bode(tf(kc*ng,dg),w);%满⾜稳态误差要求系统的Bode响应fz=20*log10(mu);%将幅值⽤分贝表⽰wc=interp1(fz,w,0,'spline') %求出幅值交界频率gama=180+spline(w,pu,wc)%求出相位裕量w0=spline(pu,w,-140)%求出与40度相位裕量对应频率wc1=spline(pu,w,-128)%求出与52度相位裕量对应频率,即新的幅值交界频率db=spline(w,fz,wc1)%原来系统在wc1下的幅值b=10^(db/20)作图程序num1=[5];Z1=[];P1=[0 -1 -2];K1=5;sys1=zpk(Z1,P1,K1);w=logspace(-3,2,100);%频率范围bode(sys1,w),gridhold on;num2=[10 1];den2=[95 1];sys2=tf(num2,den2);bode(sys2,w),gridhold on;Z3=[-0.1];P3=[0 -1 -2 -1/95];K3=5;sys3=zpk(Z3,P3,K3);bode(sys3,w),gridgtext('校正前幅频')gtext('校正环节幅频')gtext('校正后幅频')gtext('校正前相频')gtext('校正环节相频')gtext('校正后相频')gtext('幅频/dB')gtext('相频/度')gtext('频率')相位滞后-超前校正校正程序sys=zpk(Z,P,K);%传递函数的零极点增益模型w=logspace(-1,2,100);%频率范围bode(sys,w),grid %满⾜稳态误差要求系统的Bode图[mu,pu]=bode(sys,w);fz=20*log10(mu);%将幅值⽤分贝表⽰wc=interp1(fz,w,0,'spline') %求出幅值交界频率gama=180+spline(w,pu,wc)%求出相位裕量wc1=spline(pu,w,-180)db=spline(w,fz,wc1)作图程序sys1=zpk(Z1,P1,K1);%传递函数的零极点增益模型w=logspace(-2,1,100);%频率范围bode(sys1,w),grid %Bode图hold on;Z2=[-1/2.12 -1/7.07];P2=[-1/0.212 -1/70.7];K2=1; sys2=zpk(Z2,P2,K2);bode(sys2,w),gridhold on;Z3=[-1/2.12 -1/7.07];P3=[0 -1 -2 -1/0.21。
数字信号处理MATLAB仿真第一次
按时间抽取的基2FFT算法的MATLAB实现班级:2013211212姓名:王志伟学号:2013211137一、算法原理简介MATLAB提供的fft函数是一个计算DFT的智能程序,能自动选择快速算法进行DFT运算,我们将自己的算法与内建算法的输出做比较。
MATLAB的数组元素按序存储,可用下标寻访,但下标是从1开始的,所以在MATLAB程序中,寻访数组中的元素(数据)时,下标要在原序号上加1。
旋转因子可按指数预先计算出来并存放到数组WN中,虽然占用了一些内存,但程序运行时可直接寻访调用,无需反复计算,可进一步提高运算速度。
二、MATLAB代码源程序clc;close all;clear;format compact;Q = 0.9 + 0.3 * 1i;xn = ones(1,32);xn = xn .* Q;xn = xn .^ (0:31);M = nextpow2(length(xn)); N = 2^M;for m=0:N/2-1;WN(m+1)=exp(-1i*2*pi/N)^m;endA=[xn,zeros(1,N-length(xn))];disp('输入到各存储单元的数据:'),disp(A);J=0;for I=0:N-1;if I<J;T=A(I+1);A(I+1)=A(J+1);A(J+1)=T;end;K=N/2;while J>=K;J=J-K;K=K/2;endJ=J+K;enddisp('倒序后各存储单元的数据:'),disp(A);for L=1:M;disp('运算级次:'),disp(L);B=2^(L-1);for R=0:B-1;P=2^(M-L)*R;for K=R:2^L:N-2;T=A(K+1)+A(K+B+1)*WN(P+1);A(K+B+1)=A(K+1)-A(K+B+1)*WN(P+1);A(K+1)=T;endenddisp('本级运算后各存储单元的数据:'),disp(A);enddisp('输出各存储单元的数据:'),Xk = A;disp(Xk);disp('调用fft函数运算的结果:'),fftxn = fft(xn,N);disp(fftxn);三、运行结果输入到各存储单元的数据:Columns 1 through 51.0000 + 0.0000i 0.9000 + 0.3000i 0.7200 + 0.5400i 0.4860 + 0.7020i 0.2268 + 0.7776iColumns 6 through 10-0.0292 + 0.7679i -0.2566 + 0.6823i -0.4357 + 0.5371i -0.5532 + 0.3527i -0.6037 + 0.1515iColumns 11 through 15-0.5888 - 0.0448i -0.5165 - 0.2169i -0.3997 - 0.3502i -0.2547 - 0.4351i -0.0987 - 0.4680iColumns 16 through 200.0516 - 0.4508i 0.1816 - 0.3903i 0.2806 - 0.2967i 0.3415 - 0.1829i 0.3622 - 0.0622iColumns 21 through 250.3447 + 0.0527i 0.2944 + 0.1509i 0.2197 + 0.2241i 0.1305 + 0.2676i 0.0372 + 0.2800iColumns 26 through 30-0.0505 + 0.2631i -0.1244 + 0.2216i -0.1785 + 0.1622i -0.2093 + 0.0924i -0.2161 + 0.0204iColumns 31 through 32-0.2006 - 0.0465i -0.1666 - 0.1020i倒序后各存储单元的数据:Columns 1 through 51.0000 + 0.0000i 0.1816 - 0.3903i -0.5532 + 0.3527i 0.0372 + 0.2800i 0.2268 + 0.7776iColumns 6 through 100.3447 + 0.0527i -0.3997 - 0.3502i -0.2093 + 0.0924i 0.7200 + 0.5400i 0.3415 - 0.1829iColumns 11 through 15-0.5888 - 0.0448i -0.1244 + 0.2216i -0.2566 + 0.6823i 0.2197 + 0.2241i-0.0987 - 0.4680iColumns 16 through 20-0.2006 - 0.0465i 0.9000 + 0.3000i 0.2806 - 0.2967i -0.6037 + 0.1515i -0.0505 + 0.2631iColumns 21 through 25-0.0292 + 0.7679i 0.2944 + 0.1509i -0.2547 - 0.4351i -0.2161 + 0.0204i 0.4860 + 0.7020iColumns 26 through 300.3622 - 0.0622i -0.5165 - 0.2169i -0.1785 + 0.1622i -0.4357 + 0.5371i 0.1305 + 0.2676iColumns 31 through 320.0516 - 0.4508i -0.1666 - 0.1020i运算级次:1本级运算后各存储单元的数据:Columns 1 through 51.1816 - 0.3903i 0.8184 + 0.3903i -0.5161 + 0.6327i -0.5904 + 0.0727i 0.5715 + 0.8303iColumns 6 through 10-0.1179 + 0.7249i -0.6090 - 0.2578i -0.1905 - 0.4426i 1.0615 + 0.3571i 0.3785 + 0.7229iColumns 11 through 15-0.7132 + 0.1769i -0.4644 - 0.2664i -0.0369 + 0.9064i -0.4763 + 0.4583i -0.2993 - 0.5145iColumns 16 through 200.1019 - 0.4215i 1.1806 + 0.0033i 0.6194 + 0.5967i -0.6543 + 0.4146i -0.5532 - 0.1116iColumns 21 through 250.2652 + 0.9187i -0.3235 + 0.6170i -0.4708 - 0.4147i -0.0386 - 0.4555i 0.8482 + 0.6398iColumns 26 through 300.1238 + 0.7642i -0.6950 - 0.0548i -0.3380 - 0.3791i -0.3052 + 0.8047i -0.5661 + 0.2695iColumns 31 through 32-0.1150 - 0.5528i 0.2181 - 0.3488i运算级次:2本级运算后各存储单元的数据:Columns 1 through 50.6656 + 0.2424i 0.8911 + 0.9807i 1.6977 - 1.0230i 0.7456 - 0.2001i -0.0376 + 0.5725iColumns 6 through 10-0.5605 + 0.9153i 1.1805 + 1.0881i 0.3247 + 0.5344i 0.3483 + 0.5340i 0.1120 + 1.1873iColumns 11 through 151.7747 + 0.1802i 0.6449 + 0.2585i -0.3362 + 0.3919i -0.8978 + 0.3564i 0.2624 + 1.4209iColumns 16 through 20-0.0548 + 0.5601i 0.5263 + 0.4179i 0.5078 + 1.1499i 1.8348 - 0.4114i 0.7311 + 0.0436iColumns 21 through 25-0.2056 + 0.5040i -0.7790 + 0.6557i 0.7360 + 1.3335i 0.1319 + 0.5784i 0.1533 + 0.5851iColumns 26 through 30-0.2553 + 1.1021i 1.5432 + 0.6946i 0.5029 + 0.4262i -0.4202 + 0.2519i -0.9149 + 0.0514iColumns 31 through 32-0.1901 + 1.3575i -0.2173 + 0.4877i运算级次:3本级运算后各存储单元的数据:Columns 1 through 50.6280 + 0.8150i 1.1420 + 2.0242i 2.7858 - 2.2035i 0.8939 - 0.8076i 0.7031 - 0.3301iColumns 6 through 100.6402 - 0.0629i 0.6096 + 0.1575i 0.5973 + 0.4074i 0.0121 + 0.9259i -0.2708 + 2.0741iColumns 11 through 153.1957 - 0.0821i 1.0797 - 0.0988i 0.6845 + 0.1420i 0.4949 + 0.3004i 0.3538 + 0.4426iColumns 16 through 200.2101 + 0.6159i 0.3207 + 0.9219i 0.4206 + 2.1644i 3.1683 - 1.1474i1.0468 - 0.4587iColumns 21 through 250.7319 - 0.0862i 0.5950 + 0.1355i 0.5014 + 0.3247i 0.4154 + 0.5458i -0.2669 + 0.8370iColumns 26 through 30-0.8660 + 1.7855i 2.9007 + 0.8848i 1.0014 + 0.2350i 0.5735 + 0.3332i 0.3553 + 0.4188iColumns 31 through 320.1857 + 0.5045i 0.0043 + 0.6173i运算级次:4本级运算后各存储单元的数据:Columns 1 through 50.6401 + 1.7409i 1.6856 + 4.0441i 4.9874 - 4.5212i 1.2158 - 1.8429i 0.8452 - 1.0146iColumns 6 through 100.7283 - 0.6351i 0.6723 - 0.4056i 0.6389 - 0.2420i 0.6159 - 0.1109i 0.5985 + 0.0043iColumns 11 through 150.5842 + 0.1143i 0.5720 + 0.2277i 0.5611 + 0.3544i 0.5520 + 0.5093i 0.5468 + 0.7207iColumns 16 through 200.5558 + 1.0568i 0.0538 + 1.7588i 0.3038 + 4.1453i 5.8450 - 2.5729i1.6471 - 1.2939iColumns 21 through 251.0650 - 0.6596i 0.8460 - 0.3531i 0.7268 - 0.1634i 0.6476 - 0.0262i 0.5876 + 0.0849iColumns 26 through 300.5373 + 0.1834i 0.4915 + 0.2781i 0.4465 + 0.3765i 0.3987 + 0.4873i 0.3440 + 0.6240iColumns 31 through 320.2759 + 0.8127i 0.1832 + 1.1178i运算级次:5本级运算后各存储单元的数据:Columns 1 through 50.6940 + 3.4997i 2.7923 + 8.0505i 9.4030 - 9.1350i 1.8664 - 3.8338i1.1318 -2.2342iColumns 6 through 100.9048 - 1.5346i 0.7996 - 1.1396i 0.7396 - 0.8823i 0.7009 - 0.6986i 0.6736 - 0.5585iColumns 11 through 150.6531 - 0.4462i 0.6370 - 0.3527i 0.6238 - 0.2721i 0.6126 - 0.2006i 0.6029 - 0.1357iColumns 16 through 200.5942 - 0.0753i 0.5863 - 0.0179i 0.5789 + 0.0377i 0.5719 + 0.0926i 0.5651 + 0.1480iColumns 21 through 250.5585 + 0.2049i 0.5519 + 0.2645i 0.5451 + 0.3284i 0.5382 + 0.3983i 0.5310 + 0.4767iColumns 26 through 300.5234 + 0.5671i 0.5154 + 0.6748i 0.5069 + 0.8081i 0.4985 + 0.9809i 0.4914 + 1.2192iColumns 31 through 320.4907 + 1.5771i 0.5174 + 2.1888i输出各存储单元的数据:Columns 1 through 50.6940 + 3.4997i 2.7923 + 8.0505i 9.4030 - 9.1350i 1.8664 - 3.8338i1.1318 -2.2342iColumns 6 through 100.9048 - 1.5346i 0.7996 - 1.1396i 0.7396 - 0.8823i 0.7009 - 0.6986i 0.6736 - 0.5585iColumns 11 through 150.6531 - 0.4462i 0.6370 - 0.3527i 0.6238 - 0.2721i 0.6126 - 0.2006i 0.6029 - 0.1357iColumns 16 through 200.5942 - 0.0753i 0.5863 - 0.0179i 0.5789 + 0.0377i 0.5719 + 0.0926i 0.5651 + 0.1480iColumns 21 through 250.5585 + 0.2049i 0.5519 + 0.2645i 0.5451 + 0.3284i 0.5382 + 0.3983i 0.5310 + 0.4767iColumns 26 through 300.5234 + 0.5671i 0.5154 + 0.6748i 0.5069 + 0.8081i 0.4985 + 0.9809i 0.4914 + 1.2192iColumns 31 through 320.4907 + 1.5771i 0.5174 + 2.1888i调用fft函数运算的结果:Columns 1 through 50.6940 + 3.4997i 2.7923 + 8.0505i 9.4030 - 9.1350i 1.8664 - 3.8338i1.1318 -2.2342iColumns 6 through 100.9048 - 1.5346i 0.7996 - 1.1396i 0.7396 - 0.8823i 0.7009 - 0.6986i 0.6736 - 0.5585iColumns 11 through 150.6531 - 0.4462i 0.6370 - 0.3527i 0.6238 - 0.2721i 0.6126 - 0.2006i 0.6029 - 0.1357iColumns 16 through 200.5942 - 0.0753i 0.5863 - 0.0179i 0.5789 + 0.0377i 0.5719 + 0.0926i 0.5651 + 0.1480iColumns 21 through 250.5585 + 0.2049i 0.5519 + 0.2645i 0.5451 + 0.3284i 0.5382 + 0.3983i 0.5310 + 0.4767iColumns 26 through 300.5234 + 0.5671i 0.5154 + 0.6748i 0.5069 + 0.8081i 0.4985 + 0.9809i 0.4914 + 1.2192iColumns 31 through 320.4907 + 1.5771i 0.5174 + 2.1888i四、结论经比较两者输出结果相同。
数字信号处理(第2版)教学课件第8章 MATLAB仿真实验
系统的稳定性是指对任意有界的输入信号,系统都能 得到有界的系统响应,或者系统的单位脉冲响应满足绝对 可和的条件。系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界 的输入信号、输出是否都是有界输出,或者检查系统的单位 脉冲响应满足绝对可和的条件。可行的方法是在系统的输入 端加入单位阶跃序列,如果系统的输出趋近一个常数(包括 零),就可以断定系统是稳定的。系统的稳态输出是指当n→ ∞时系统的输出。如果系统稳定,信号加入系统后,系统输出 的开始一段称为暂态效应,随着n的加大,幅度趋于稳定,达 到稳态输出。
(2)频域采样理论的验证。 给定长度为26的三角波序列x(n) 编写程序,分别对频谱函数 X (e j ) FT[x(n)] 在区间 [0, 2π] 上等间隔采样32点和16点,得到 X32 (k) 和 X16 (k) ,再分别对 X32 (k)
和 ①X16分(k)别进画行出32X点(ej和 )、16X点32 (IkF)F和T,X1得6 (k到) 的x幅32 (度n)谱和。x16 (n) 。要求:
4. 参考程序
(1)内容1参考程序,实验结果。 (2)内容2参考程序,实验结果。 (3)内容3参考程序,实验结果。
5.实验结果
图8-1 调用filter解差分方程仿真结果
5.实验结果
图8-2 稳定性分析方面的仿真结果
5.实验结果
图8-3 稳定性分析仿真结果
实验二 时域采样与频域采样
1. 实验目的
y(n) 0.5y(n 1) 0.25y(n 2) x(n) 2x(n 1) x(n 3)
MATLAB信号处理仿真
MATLAB信号处理仿真本次,我们将展示另外一个信号分析的有力工具,短时傅里叶变换。
对于探讨经典信号处理的问题,我的感觉相对舒畅,因为从信号与系统到离散时间信号处理,建立在无穷时域前提下的各种结论,完美的仿佛传说中的理想国与乌托邦。
尽管DFT与FFT的时域有限长采样造成了频谱泄露,但是我们似乎仍然心存希望,至少可以通过增加采样长度来降低泄露,至少还有这一途径可以让我们感到些许温暖,对于频率成分固定不变的信号,这种增加采样长度的方法可以让我们逼近理想主义的完美。
但是,对于频率成分随时间发生改变的信号,以上的方法陷入一个两难境地,如果采集很长的一段数据进行DFT分析,可以很精确的得知出现了那些频率成分,但是却无法知道这个成分是在何时出现的,或者,采集很短的数据做DFT分析,可以相对准确的知道在什么时候出现了某个频率成分,然而对于这个成分的具体频率值可能就探测的不那么准确,于是,对于频谱成分随时间变化的信号,我们的傅里叶分析真的变成了一个跷跷板问题,一头好了,另一头就糟糕。
不管怎样,有总比没有强,这就是本次的主题,短时傅里叶变换,在奥本海姆的书中称为“依时傅里叶变换”。
具体的数学推导此处就不再赘述了,并且没有数学排版工具也不方便展示公式,维基百科英文版的短时傅里叶变换写的也比较生动,此处我们定性的讲一讲,就是如果有一个很长的时间信号序列,我们每次从中取出一个长度为L的片段,加窗做DFT,看看频谱,这就是短时傅里叶变换,由于多引入了一个时间的维度,所以存在一个问题,就是两次做DFT 的L点数据帧,它们在原始信号中的相对位置是怎样的,是否允许有些重叠呢?我们思考一下,如果两帧信号完全不重叠,那么由于加窗的原因(想想,窗函数的边界处通常都是接近0的数据)交界处的信号突变会被窗函数抹杀掉,所以通常来说两帧数据是要有重叠的,而且重叠的部分越多,对于捕获突发的信号越有帮助,这样做的代价呢,就是计算量的增加。
那么可能您会有疑问,在做短时傅里叶变换的时候,增加DFT的帧长度L会不会是个一本万利的事情呢?很遗憾,不是,因为对于L点的DFT的分析中找到的谱峰,其有效意义对应于整个的L点数据,所以无法分辨出是在L点数据中的那个位置出现的,也许你会想,可以把两帧数据的重叠点数增加啊,这样是否利用观测某个谱峰在那个时间出现呢?的确,提高重叠点数是有帮助,但是,得到的分析结果仍然是一种不清晰的结果。
数字信号处理实验MATLAB上机DOC
班级: 学号: 姓名: 日期: 实验一:离散时间信号的分析一、实验目的利用DFT 卷积实现系统的时域分析二、实验原理在离散时间、连续频率的傅里叶变换中,由于卷积性质知道,对系统输出的计算可以通过求x[n]和h[n]的DTFT ,将得到的X(e jw )和H(e jw )相乘就可以得到Y(e jw ),进而再通过反变换得到y[n]。
这就避免了在时域进行繁琐的卷积求解。
三、实验步骤(包括代码和波形)1-2(2)x[k]=g[k]=k+1,0<=k<=3;x[k]=g[k]=0,其他 编码如下:ak=1:4 gk=1:4Z=conv(ak,gk) stem(Z)波形如下:12345675101520251-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]的自相关函数以及序列x[k]与y[k]的互相关函数。
编码如下:x=[1,2,3,4];kx=0:3; y=[-1,1,-2,3];ky=0:3; xf=fliplr(x); s1=conv(x,xf); s2=conv(xf,y); yf=fliplr(y); s3=conv(yf,x);k1=kx(1)+ky(1):kx(end)+ky(end); kxf=-fliplr(kx);k2=kxf(1)+ky(1):kxf(end)+ky(end); kyf=-fliplr(ky);k3=kyf(1)+kx(1):kyf(end)+kx(end); subplot(2,2,1); stem(k1,s1);xlabel('k1');ylabel('s1'); subplot(2,2,2); stem(k2,s2);xlabel('k2');ylabel('s2'); subplot(2,2,3) stem(k3,s3);xlabel('k3');ylabel('s3');波形如下:0246102030k1s 1-4-2024-10-50510k2s 2-4-2024-10-50510k3s 3M-1已知g1[t]=cos(6*pi*t),g2=cos(14*pi*t),g3=cos(26*pi*t),以抽样频率f(max)=10HZ对上述三个信号进行抽样。
数字信号处理MATLAB仿真
数字信号处理期末作业学院:大数据与信息工程学院专业:电子信息科学与技术1.12、已知x(n)={1,2,4,3,6},h(n)={2,1,5,7};试求y(n)=x(n)*h(n)。
采用MATLAB方法求解。
1.14、设有一系统,其输入输出关系由以下差分方程确定:y(n)-0.5y(n-1)=x(n)+0.5x(n-1)设系统是有因果性的。
(1)求该系统的单位抽样相应;(2)由(1)的结果,利用卷积和求输入x(n)=e jwn的响应。
2.27设有一个偶对称的矩形脉冲序列为1, -N<=n<=NA N0,其他求当N=5,15,25,100时的X(e jw)=DTFT[A N(n)],将X(e jw)乘一个因子,使其归一化为X(e j0)=1,当在[-π,π]区间用MATLAB工具画出归一化的X(e jw),请讨论他们随N 变化的关系。
解:归一化因子为A=1/(1+2N)用MATLAB画出归一化的X(e jw):当N=5时;当N=15时;当N=25时;当N=100时;由此可知,随着N的增大,归一化X(e jw)的图形幅度及波形变化保持一致,但波形的振荡频率变大,若N继续增大,则会变成一个冲击函数。
2.28、对下列两个冲击响应所代表的线性移不变系统,求其系统的H(z),并用MATLAB 工具画出|H(e jw)| 及arg[H(e jw)]的图形。
(1)h(n)=0.9| n |u(n)解:H(z)=1/(1-0.9z -1),用MATLAB仿真结果如下图所示:(2)h(n)=[0.3n+0.5n]u(n)解:H(z)=1/(1-0.3z -1)+1/(1-0.5z -1),用MATLAB仿真结果如下图所示:3.29、利用MATLAB编程完成此题,用DFT对下列信号进行谱分析,选择合适的变换区间长度N,并画出幅度特性和相位特性。
(1)x1(n)=3cos(0.25πn)R8(n)(2)x2(n)=0.8| n |R15(n+7)1、若一因果系统用差分方程:y(n)=0.6y(n-1)-0.08y(n-2)+x(n)描述,输入序列x(n)为单位脉冲序列,求输出序列y(n)。
MATLAB平台下数字信号优化处理及其仿真分析
• 175•当前我国数字信号处理技术和仿真技术正在不断发展,并成为一门新兴学科,该技术的研发与应用关系到国民经济的稳定发展,使人们的生产生活发生变化。
基于此,本文基于MATLAB 平台探究数字信号的优化处理,根据MATLAB 平台的应用优势与系统构成情况健全数字信号处理平台架构,并完成对MATLAB 平台下的数字信号滤波仿真分析。
数字信号就是幅度与时间上处于离散状态的一种信号,数字信号处理和仿真是一门新兴学科,所涉及到的领域十分广泛。
基于MATLAB 平台进行数字信号的处理和仿真,就是采用数字化方法分析信号,检测信号内容,实现对信号的仿真分析,以此完成信号滤波,测量其他连续模拟信号,试着从仿真数字信号中得到有利信息。
1 MATLAB平台的应用优点与系统构成1.1 应用优点当前信息技术的发展主要体现在数字化和智能网络化两方面。
人们在日常生活中会遇到各类信号,比如电视信号、导航信号以及广播信号,这些信号有数字信号,也有模拟信号。
MATLAB 平台是一款商业化计算软件,该软件支持链接库模块封装,具有高效率编程的特点,初学者通过MATLAB 平台可以简单的控制C 语言,提高学习效率。
与此同时,MATLAB 平台在人机交互过程中也会带来较好的体验,MATLAB 平体,为用户提供一个可交互的环境界面。
不同软件有着不同的开发环境,MATLAB 软件由一系列工具组成,减少用户软件使用障碍,提高使用效率,方便MATLAB 平台在市场中的推广。
随着MATLAB 软件的更新,用户操作界面也在改进,交互作用越来越突出,MATLAB 语言系统作为平台的关键部分,软件采用了矩阵语言建立复杂而快捷的程序,提高用户对MATLAB 平台的使用满意度。
2 MATLAB平台下数字信号的优化处理2.1 数字信号处理算法理论MATLAB 平台在数字信号优化处理方面有着较好的应用。
MATLAB 平台对于数字信号或语音信号的处理过程主要是利用MATLAB 仿真软件进行信号频域和视域分析。
matlab信号处理——算法、仿真与实现
matlab信号处理——算法、仿真与实现MATLAB信号处理是一种广泛应用于各种工程领域的计算机语言和软件环境,其核心理念是用数字信号来处理实际的物理信号,使其在控制、通信、生物医学、天文学等应用中得到应用。
本文将简要介绍MATLAB信号处理的算法、仿真和实现。
算法:MATLAB信号处理的算法通常由两个主要部分组成:滤波和谱分析。
滤波是一种数字信号处理技术,可以从信号中过滤出所需的频率范围内的成分。
同时,还可以去除噪声和干扰信号,让信号更加清晰。
谱分析是一种用于检测信号频率组成的技术,可以将信号中不同频率的成分分解出来,并显示其功率谱和频率谱等分析结果。
MATLAB的信号处理工具箱中,有着很多种滤波和谱分析算法,比如数字滤波器设计、窗函数处理、FFT、STFT等等。
具体使用哪种算法,取决于所要处理的信号的特殊需要和噪声干扰的情况。
仿真:MATLAB信号处理提供了一种方便快捷的方式,将设计的算法模拟成一个完整的信号处理系统,以有效的验证其功能和正确性。
MATLAB的仿真工具包括仿真模型设计、数据可视化、参数调整等等,并可以集成其他MATLAB工具箱中的算法,如图像处理、统计分析等。
钟形图、波形图、频谱图等类型的可视化功能,让仿真数据的输出更加直观明了,以及可以快速检验算法和调整参数。
实现:MATLAB信号处理是通过在计算机中实现信号处理算法来实现的。
实现的具体方式,即设计一个MATLAB程序,将处理算法编写成代码并运行。
程序可以接受实时或离线信号,并对其进行处理和分析。
MATLAB的实现方式具有非常高的灵活性和可定制性,可以满足各种不同应用场景的需要。
总之,MATLAB信号处理可以通过对算法的选择、仿真的建模和实现的编写来完成,进而用于控制、通信、生物医学、天文学等各种应用中。
(完整word版)基于MATLAB的2DPSK信号仿真
基于MATLAB的2DPSK信号的调制与解调仿真西安电子科技大学张**目录一题目要求二关于2DPSK1 基础知识________________________________________________________________22 2DPSK的调制原理_________________________________________________________23 2DPSK的解调原理_________________________________________________________3 三调制系统仿真1 调制系统设计____________________________________________________________41)产生基带信号______________________________________________________ 42)产生相对码________________________________________________________53)产生载波信号______________________________________________________64)调制______________________________________________________________62 传输系统设计____________________________________________________________73 解调系统设计___________________________________________________________71)带通滤波器________________________________________________________72)乘法器____________________________________________________________83)低通滤波器________________________________________________________84)抽样判决器________________________________________________________95)延迟单元__________________________________________________________96)码(反)变换器____________________________________________________94 极性比较法结果_________________________________________________________105 差分相干法结果_________________________________________________________11 四完整程序源码1 极性比较法程序DPSK.m_________________________________________________122 差分相干法DPSK1.m________________________________________________15一 题目要求产生2DPSK 信号,画出时域波形和频谱,分别用极性比较法和差分相干法解调。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 数字信号处理的Matlab 仿真一、实验目的1、掌握连续信号及其MATLAB 实现方法;2、掌握离散信号及其MATLAB 实现方法3、掌握离散信号的基本运算方法,以及MATLAB 实现4、了解离散傅里叶变换的MATLAB 实现5、了解IIR 数字滤波器设计6、了解FIR 数字滤波器设计1二、实验设备计算机,Matlab 软件三、实验内容(一)、 连续信号及其MATLAB 实现1、 单位冲击信号()0,0()1,0t t t dt εεδδε-⎧=≠⎪⎨=∀>⎪⎩⎰例1.1:t=1/A=50时,单位脉冲序列的MATLAB 实现程序如下:clear all;t1=-0.5:0.001:0;A=50;A1=1/A;n1=length(t1);u1=zeros(1,n1);t2=0:0.001:A1;t0=0;u2=A*stepfun(t2,t0);t3=A1:0.001:1;n3=length(t3);u3=zeros(1,n3);t=[t1 t2 t3];u=[u1 u2 u3];plot(t,u)axis([-0.5 1 0 A+2])2、 任意函数()()()f t f t d τδττ+∞-∞=-⎰例1.2:用MATLAB 画出如下表达式的脉冲序列()0.4(2)0.8(1) 1.2() 1.5(1) 1.0(2)0.7(3)f n n n n n n n δδδδδδ=-+-+++++++ clear all;t=-2:1:3;N=length(t);x=zeros(1,N);x(1)=0.4;x(2)=0.8x(3)=1.2;x(4)=1.5;x(5)=1.0;stem(t,x);axis([-2.2 3.2 0 1.7])3、 单位阶跃函数1,0()0,0t u t t ⎧≥⎪=⎨<⎪⎩例1.3:用MATLAB 实现单位阶跃函数clear all;t=-0.5:0.001:1;t0=0;u=stepfun(t,t0);plot(t,u)axis([-0.5 1 -0.2 1.2])4、 斜坡函数0()()g t B t t =-例1.4:用MATLAB 实现g(t)=3(t-1)clear all;t=0:0.01:3;B=3;t0=1;u=stepfun(t,t0);n=length(t);u(i)=B*u(i)*(t(i)-t0);endplot(t,u)axis([-0.2 3.1 -0.2 6.2])5、 实指数函数()at f t Ae =例1.5:用MATLAB 实现0.5()3t f t e=clear all;t=0:0.001:3;A=3;a=0.5;u=A*exp(a*t);plot(t,u)axis([-0.2 3.1 -0.2 14])6、 正弦函数 02()cos()t f t A T πϕ=+ 例1.6:用MATLAB 实现正弦函数f(t)=3cos(10πt+1)clear all;t=-0.5:0.001:1;A=3;f=5;fai=1;u=A*sin(2*pi*f*t+fai);plot(t,u)axis([-0.5 1 -3.2 3.2])(二)、离散信号及其MATLAB 实现1、 单位冲激序列1,0()0,0n n n δ⎧=⎪=⎨≠⎪⎩例2.1:用MATLAB 产生64点的单位冲激序列clear all;N=64;x=zeros(1,N);x(1)=1;xn=0:N-1;stem(xn,x)axis([-1 65 0 1.1])2、 任意序列()()()m f n f m n m δ∞=-∞=-∑例2.2:用MATLAB 画出如下表达式的脉冲序列()8.0() 3.4(1) 1.8() 5.6(3) 2.9(4)0.7(5)f n n n n n n n δδδδδδ=+-++-+-+-.clear all;N=8;x=zeros(1,N);x(1)=8.0;x(2)=3.4x(3)=1.8;x(4)=5.6;x(5)=2.9;x(6)=0.7;xn=0:N-1;stem(xn,x)axis([-1 8 0 8.2])3、 单位阶跃序列1,0()0,0n u n n ⎧≥⎪=⎨<⎪⎩例2.3:用MATLAB 实现单位阶跃函数clear all;N=32;x=ones(1,N);xn=0:N-1;stem(xn,x)axis([-1 32 0 1.1])4、 斜坡序列0()()g n B n n =-例2.4:用MATLAB 实现g(n)=3(n-4)点数为32的斜坡序列clear all;N=32;k=4B=3;t0=1;x=[zeros(1,k) ones(1,N-k)];for i=1:Nx(i)=B*x(i)*(i-k);endxn=0:N-1;stem(xn,x)axis([-1 32 0 90])5、 正弦序列()sin(2)x n A fn πϕ=+例2.5:用MATLAB 实现幅度A=3,频率f=100,初始相位Φ=1.2,点数为32的正弦信号clear all;N=32;f=100;fai=1.2;xn=0:N-1;x=A*sin(2*pi*f*(xn/N)+fai);stem(xn,x)axis([-1 32 -3.2 3.2])6、 实指数序列()n x n Aa =例2.6:用MATLAB 实现0.7()3x n e=,点数为32的实指数序列clear all;N=32;A=3;a=0.7;xn=0:N-1;x=A*a.^xn;stem(xn,x)7、 复指数序列 ()(),a j n x n Ae n ω+=∀例2.7:用MATLAB 实现幅度A=3,a=0.7,角频率ω=314,点数为32的实指数序列 clear all;A=3;a=0.7;w=314;xn=0:N-1;x=A*exp((a+j*w)*xn);stem(xn,x)8、随机序列利用MATLAB产生两种随机信号:rand(1,N)在区间上产生N点均匀分布的随机序列randn(1,N)产生均值为0,方差为1的高斯随机序列,即白噪声序列例2.8:用MATLAB产生点数为32的均匀分布的随机序列与高斯随机序列clear all;N=32;x_rand=rand(1,N);x_randn=randn(1,N);xn=0:N-1;figure(1);stem(xn,x_rand)figure(2);stem(xn,x_randn)(三)、离散信号的基本运算1、信号的延迟给定离散信号x(n),若信号y(n)定义为:y(n)=x(n-k),那么y(n)是信号x(n)在时间轴上右移k个抽样周期得到的新序列。
例3.1:正弦序列y(n)=sin(100n)右移3个抽样周期后所得的序列,MATLAB程序如下:clear all;N=32;w=100;k=3;x1=zeros(1,k);xn=0:N-1;x2=sin(100*xn);figure(1)stem(xn,x2)x=[x1 x2];axis([-1 N -1.1 1.1])N=N+k;xn=0:N-1;figure(2)stem(xn,x)axis([-1 N -1.1 1.1])2、信号相加若信号12()()()x n x n x n =+,值得注意的是当序列1()x n 和2()x n 的长度不相等或者位置不对应时,首先应该使两者的位置对齐,然后通过zeros 函数左右补零使其长度相等后再相加 例3.2:用MATLAB 实现两序列相加clear all;n1=0:3x1=[2 0.5 0.9 1];figure(1)stem(n1,x1)axis([-1 8 0 2.1] )n2=0:7x2=[ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7];figure(2)stem(n2,x2)axis([-1 8 0 0.8] )n=0:7;x1=[x1 zeros(1,8-length(n1))];x2=[ zeros(1,8-length(n2)),x2];x=x1+x2;figure(3)stem(n,x)axis([-1 8 0 2.1])3、 信号相乘信号序列1()x n 和2()x n 相乘所得信号()x n 的表达式为:12()()()x n x n x n这是样本与样本之间的点乘运算,在MATLAB 中可采用“.*”来实现,但是在信号序列相乘之前,应对其做与相加运算一样的操作。
例3.3:用MATLAB 实现上例中两序列相乘clear all;n1=0:3x1=[2 0.5 0.9 1];figure(1)stem(n1,x1)axis([-1 8 0 2.1] )n2=0:7x2=[ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7];figure(2)stem(n2,x2)axis([-1 8 0 0.8] )n=0:7;x1=[x1 zeros(1,8-length(n1))];x2=[ zeros(1,8-length(n2)),x2];x=x1.*x2;figure(3)stem(n,x)axis([-1 8 0 0.35])4、 信号翻转信号翻转的表达式为:y(n)=x(-n),在MATLAB 中可以用fliplr 函数实现此操作 例3.4:用MATLAB 实现“信号相加”中的1()x n 序列翻转clear all;n=0:3x1=[2 0.5 0.9 1];x=fliplr(x1);stem(n,x)axis([-1 4 0 2.1] )5、 信号和对于N 点信号()x n ,其和的定义为:1()Nn y x n ==∑例3.5:用MATLAB 实现“信号相加”中的1()x n 序列和clear all;n=0:3x1=[2 0.5 0.9 1];x=sum(x1)6、 信号积对于N 点信号()x n ,其积的定义为:1()Nn y x n ==∏例3.5:用MATLAB 实现“信号相加”中的1()x n 序列积clear all;n=0:3x1=[2 0.5 0.9 1];x=prod(x1)(四)、离散傅里叶变换的MATLAB 实现 例4:若()sin()4n x n π=是一个N=32的有限序列,利用MATLAB 计算它的DFT 并画出图形。
N=32;n=0:N-1;xn=cos(pi*n/6);k=0:N-1;WN=exp(-j*2*pi/N);nk=n ’*k;WNnk=WN.^nk;Xk=xn*WNnk;figure(1)stem(n,xn)figure(2)stem(k,abs(Xk))在MATLAB 中,可以直接利用内部函数fft 来实现FFT 算法,该函数是机器语言,而不是MATLAB 指令写成的,执行速度很快。