信号分析与处理MATLAB仿真程序
- 格式:docx
- 大小:19.92 KB
- 文档页数:6
matlab软件仿真实验(信号与系统)(1)《信号与系统实验报告》学院:信息科学与⼯程学院专业:物联⽹⼯程姓名:学号:⽬录实验⼀、MATLAB 基本应⽤实验⼆信号的时域表⽰实验三、连续信号卷积实验四、典型周期信号的频谱表⽰实验五、傅⽴叶变换性质研究实验六、抽样定理与信号恢复实验⼀MATLAB 基本应⽤⼀、实验⽬的:学习MATLAB的基本⽤法,了解 MATLAB 的⽬录结构和基本功能以及MATLAB在信号与系统中的应⽤。
⼆、实验内容:例⼀已知x的取值范围,画出y=sin(x)的图型。
x=0:0.05:4*pi;y=sin(x);plot(y)例⼆计算y=sin(π/5)+4cos(π/4)例三已知z 取值范围,x=sin(z);y=cos(z);画三维图形。
z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)xlabel('x')ylabel('y')zlabel('z')例四已知x的取值范围,⽤subplot函数绘图。
参考程序:x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(2,2,1),plot(x,y1),title('sin(x)')subplot(2,2,2),plot(x,y2),title('1.5*cos(x)')subplot(2,2,3),plot(x,y3),title('sin(2*x)')subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')连续信号的MATLAB表⽰1、指数信号:指数信号Ae at在MATLAB中可⽤exp函数表⽰,其调⽤形式为:y=A*exp(a*t) (例取 A=1,a=-0.4)参考程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;2、正弦信号:正弦信号Acos(w0t+?)和Asin(w0t+?)分别由函数cos和sin表⽰,其调⽤形式为:A*cos(w0t+phi) ;A*sin(w0t+phi) (例取A=1,w0=2π,?=π/6) 参考程序:A=1;w0=2*pi; phi=pi/6; t=0:0.001:8;ft=A*sin(w0*t+phi);plot(t,ft);grid on ;3、抽样函数:抽样函数Sa(t)在MATLAB中⽤sinc函数表⽰,其定义为:sinc(t)=sin(πt)/( πt)其调⽤形式为:y=sinc(t)参考程序:t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);grid on;4、矩形脉冲信号:在MATLAB中⽤rectpuls函数来表⽰,其调⽤形式为:y=rectpuls(t,width),⽤以产⽣⼀个幅值为1,宽度为width,相对于t=0点左右对称的矩形波信号,该函数的横坐标范围由向量t决定,是以t=0为中⼼向左右各展开width/2的范围,width的默认值为1。
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作为一个功能强大的编程软件,具备丰富的信号处理和仿真工具,因此被广泛应用于信号处理领域。
本文将重点介绍如何学习使用MATLAB进行信号处理和仿真。
一、MATLAB入门要使用MATLAB进行信号处理和仿真,首先需要对MATLAB有一定的了解。
MATLAB是一种高级计算机语言,可用于数值计算、可视化和编程。
首先,我们需要学习MATLAB的基本语法和特点,包括变量的定义和操作、矩阵运算、函数的定义和调用等。
其次,熟悉MATLAB的常用工具箱,如信号处理工具箱和控制系统工具箱,它们提供了丰富的函数和算法,方便进行信号处理和仿真。
二、信号的表示与分析在信号处理中,首先需要了解信号的表示与分析方法。
MATLAB提供了多种表示信号的方法,包括时域分析和频域分析。
时域分析是通过观察信号在时间上的变化来研究信号的性质,常用的时域分析方法有时域图形显示、自相关函数和互相关函数等。
频域分析则是将信号转换到频域进行分析,常用的频域分析方法有傅里叶变换和功率谱密度估计等。
学习使用MATLAB进行信号的时域和频域分析,可以更好地理解和处理信号。
三、滤波器设计与应用滤波器是信号处理中非常常见和重要的工具。
它可以通过选择性地通过或抑制特定频率的信号,对信号进行处理。
MATLAB提供了丰富的滤波器设计和应用函数,包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
我们可以利用MATLAB进行滤波器的设计、参数的调整和滤波器效果的评估等工作。
熟练掌握MATLAB中滤波器设计与应用的方法,对信号处理和仿真工作具有重要意义。
四、信号处理应用实例学习信号处理和仿真离不开实际应用实例的学习。
在这一章节中,将以几个具体的信号处理应用实例来展示MATLAB的具体使用。
比如,在通信领域中,我们可以利用MATLAB进行信号调制、解调和信道编码等工作。
离散时间信号处理与matlab仿真概述及解释说明1. 引言1.1 概述离散时间信号处理是指对离散时间信号进行分析、处理和转换的过程。
离散时间信号处理在许多领域中都起着重要作用,例如通信系统、音频处理、图像处理等。
通过对离散时间信号进行采样和量化,我们可以将连续时间信号转换为离散时间信号,并对其进行数字化处理。
随着计算机技术的发展,MATLAB成为了一种强大的工具,被广泛应用于离散时间信号处理。
MATLAB提供了丰富的函数和工具箱以及易于使用的界面,使离散时间信号处理变得更加简单和高效。
1.2 文章结构本文将按以下结构来介绍离散时间信号处理与MATLAB仿真:- 第2部分: 离散时间信号处理概述。
在这一部分中,我们将介绍信号和系统的基础知识,并比较离散时间信号与连续时间信号之间的差异。
此外,我们还将探讨离散时间信号处理在各个应用领域中的应用案例。
- 第3部分: MATLAB在离散时间信号处理中的应用。
这一部分将重点介绍MATLAB工具箱的使用方法,并提供离散时间信号处理算法在MATLAB中的实现方式。
同时,我们将通过一些具体案例来演示MATLAB在离散时间信号处理中的应用。
- 第4部分: 离散时间信号处理的常见问题和挑战。
在这部分中,我们将探讨采样频率选择与混叠效应、数字滤波器设计与优化原理以及非线性失真和量化误差分析等离散时间信号处理中常见的问题和挑战。
- 最后,我们将在第5部分总结本文,并对离散时间信号处理与MATLAB仿真的重要性进行回顾和总结,同时展望未来离散时间信号处理方法研究的发展方向。
1.3 目的本文目的是为读者提供一个全面且详细的概述,使其了解离散时间信号处理以及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仿真与信号处理实践指导第一章:MATLAB仿真基础MATLAB是一种功能强大的数学软件,广泛应用于科学与工程领域的仿真和信号处理任务。
本章将向读者介绍MATLAB的基本概念和使用方法,帮助读者快速入门。
1.1 MATLAB简介MATLAB是由MathWorks公司开发的一种高级技术计算语言和环境。
它集成了数值计算、可视化和编程功能,可用于进行数据分析、仿真、建模、图像处理等多种任务。
1.2 MATLAB界面MATLAB的主要界面由命令窗口、脚本编辑器和变量浏览器组成。
命令窗口可以直接输入MATLAB命令,脚本编辑器用于编写和运行MATLAB脚本,变量浏览器可以查看和管理当前工作空间中的变量。
1.3 基本数据类型MATLAB支持多种基本数据类型,如数值、字符和逻辑类型。
数值类型包括整数、浮点数和复数。
字符类型用于表示文本数据,逻辑类型用于表示真假值。
1.4 基本操作MATLAB提供了丰富的数学和矩阵操作函数,如加法、乘法、求逆、求特征值等。
同时,MATLAB还支持向量化操作,可一次对整个矩阵或向量进行计算,提高运算效率。
第二章:MATLAB仿真实践本章将介绍MATLAB在仿真领域的应用,包括利用MATLAB进行线性系统仿真、非线性系统仿真和电路仿真等方面的实践。
2.1 线性系统仿真MATLAB提供了强大的线性系统仿真工具,如系统传输函数建模、频域分析、时域响应等。
通过MATLAB,可以对各种线性系统进行仿真和分析,如低通滤波器、控制系统等。
2.2 非线性系统仿真与线性系统仿真相比,非线性系统仿真更加复杂。
MATLAB提供了多种工具箱,如Simulink和Simscape,用于建立和仿真非线性系统模型。
通过这些工具,可以更加准确地模拟和预测非线性系统的行为。
2.3 电路仿真MATLAB还提供了用于电路仿真的工具,如Circuit Design Toolbox和Simscape Electronics。
信号分析与处理MATLAB仿真实验报告2009.12.25院系:电气工程学院专业: 自动化班级:姓名:学号:实验7 离散时间序列的卷积实验目的:学会用MATLAB实现对离散时间序列的卷积,掌握利用h(n) 与输入x(n)卷积来求系统零状态响应的方法。
实验要求:使用MATLAB中求卷积函数的conv(),并对结果分析总结。
实验内容:LTI系统的单位脉冲响应为h(n)=(0.9)n ε(n),输入序列为x(n)=ε(n)- ε(n-10),求系统的输出y(n)。
程序function [y,ny]=conv_m(x,nx,h,nh);y=conv(x(5:45),h);ny=nh;y=y(1:41);subplot(3,1,1);stem(nx,x,'filled');axis([-4,40,0,1]);title('x[n]');subplot(3,1,2);stem(nh,h,'filled');axis([-4,40,0,1]);title('h[n]');subplot(3,1,3);stem(ny,y,'filled');axis([-4,40,0,8]);title('y[n]');实验结果:结果分析:改变参数以后的程序:function [y,ny]=conv_m(x,nx,h,nh);y=conv(x(5:45),h);ny=nh;y=y(1:41);subplot(3,1,1);stem(nx,x,'filled');axis([-4,40,0,1]);title('x[n]'); subplot(3,1,2);stem(nh,h,'filled');axis([-4,40,0,1]);title('h[n]'); subplot(3,1,3);stem(ny,y,'filled');axis([-4,40,0,2]);title('y[n]');输出结果:实验8 连续时间信号的卷积实验目的:学会用MATLAB实现对连续时间信号的卷积,掌握利用卷积的方法求系统零状态响应,并与离散系统比较。
实验2 利用MATLAB 进行信号分析实验目的:学习用MATLAB 编程进行信号分析实验内容:1、 数字滤波器的频率响应:数字滤波器的系统函数为:H(z)=21214.013.02.0----++++z z z z ,求其幅频特性和相频特性:2、离散系统零极点图:b =[0.2 0.1 0.3 0.1 0.2]; a=[1.0 -1.1 1.5 -0.7 0.3]; 画出其零极点图3、数字滤波器的冲激响应: b=[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3]; 求滤波器的冲激响应。
4、 计算离散卷积:x=[1 1 1 1 0 0]; y=[2 2 3 4]; 求x(n)*y(n)。
5、 计算离散信号的能量和功率:序列的能量:E=∑∞=02)(n n x =∑∞=0)(*)(n n x n x序列的功率:P=N1∑-=102)(N n n x =N1∑∞=0)(*)(n n x n xx(n)=0.8nu(n),计算前10点的能量占总能量的百分比。
6、 求逆Z 变换:求X(z)=)9.01()9.01(121z z +-- z ﹥0.9的逆Z 变换。
实验要求:打印出程序、图形及运行结果,并分析实验结果。
利用MATLAB 进行信号分析● 数字滤波器的频率响应:例:对一数字滤波器H(z)=21214.013.02.0----++++zz z z ,求其幅频特性和相频特性: a=[1 0.4 1]; b=[0.2 0.3 1]; freqz(b,a,128)● 离散系统零极点图:b =[0.2 0.1 0.3 0.1 0.2]; a=[1.0 -1.1 1.5 -0.7 0.3]; zplane(b,a)● 数字滤波器的冲激响应: b=[0.2 0.1 0.3 0.1 0.2];a=[1.0 -1.1 1.5 -0.7 0.3]; impz(b,a,50)● 计算离散卷积:x=[1 1 1 1 0 0]; y=[2 2 3 4]; z=conv(x,y);stem(0:length(x)+length(y)-2,z)● 计算离散信号的能量和功率:序列的能量:E=∑∞=02)(n n x = ∑∞=0)(*)(n n x n x序列的功率:P=N1∑-=12)(N n n x =N1∑∞=0)(*)(n n x n x例:x(n)=0.8n u(n),计算前10点的能量占总能量的百分比。
窗型选择仿真程序: clear,clcbw=3e6;% 信号带宽T=1e-4;%信号脉冲宽度A=2;%信号幅度fs=4*bw;lfft=round(T*fs);%采样点数lfft=2^nextpow2(lfft);dt=1/fs;%采样间隔f0=1e6;t=(0:lfft-1)*dt;%时域采样点q=(0:lfft-1)*2*pi/lfft;s=A*exp(j*2*pi*f0*t+j*pi*bw*t.*t/T);%产生线性调频信号S=(fft(s));%线性调频信号的傅立叶变换fftH=conj(S);%匹配滤波器的频率响应Y=S.*H;%线性调频信号的频域匹配滤波输出y=fftshift(ifft(Y));%线性调频信号的时域匹配滤波输出%对chirp信号进行时域加权h1=(triang(lfft))';%三角窗函数s1=s.*h1;S1=fft(s1);H1=conj(S1);Y1=S1.*H1;y1=fftshift(ifft(Y1));%加三角窗后的线性调频信号的时域匹配滤波输出h2=(hanning(lfft))';%汉宁窗函数s2=s.*h2;S2=fft(s2);H2=conj(S2);Y2=S2.*H2;y2=fftshift(ifft(Y2));%加汉宁窗后的线性调频信号的时域匹配滤波输出h3=(hamming(lfft))';%海明窗函数s3=s.*h3;S3=fft(s3);H3=conj(S3);Y3=S3.*H3;y3=fftshift(ifft(Y3));%加海明窗后的线性调频信号的时域匹配滤波输出figure;subplot(3,1,1),plot(t,real(s)),title('chirp signal');subplot(3,1,2),plot(q,abs(S)),title('线性调频信号幅度谱');subplot(3,1,3),plot(q,angle(S)),title('线性调频信号相位谱');figure;subplot(2,1,1),plot(q,abs(H));title('MF的幅度谱');subplot(2,1,2),plot(q,angle(H));title('MF的相位谱');figure;subplot(3,1,1),plot(t,real(y)),title('脉压信号');subplot(3,1,2),plot(q,abs(Y)),title('脉压信号幅度谱');subplot(3,1,3),plot(q,angle(Y)),title('脉压信号相位谱');figure;subplot(2,2,1),plot(t,20*log10(abs(y)/max(abs(y))));title('未加窗时的时域输出'); subplot(2,2,2),plot(t,20*log10(abs(y1)/max(abs(y1))));title('加三角窗时的时域输出'); subplot(2,2,3),plot(t,20*log10(abs(y2)/max(abs(y2)))); title('加汉宁窗时的时域输出'); subplot(2,2,4),plot(t,20*log10(abs(y3)/max(abs(y3))));title('加海明窗时的时域输出');叠加3个频移多普勒干扰程序:BandWidth=10e6; %发射信号带宽TimeWidth=20e-6; %发射信号时宽mu=BandWidth/TimeWidth %调频率Fs=2*BandWidth; %采样频率Ts=1/Fs;Ns=fix(Fs*TimeWidth);%计算一个脉冲周期的采样点数400;N=1024; %FFT点数t=0:Ts:TimeWidth-Ts;y=exp(j*pi*mu*t.^2); %产生LFM信号h=zeros(1,Ns);for i=1:Nsh(i)=conj(y(Ns-i+1));endfd=6e6;y1=exp(j*2*pi*(fd*t+0.5*mu*t.^2));%频移干扰信号fd1=+1e6;y2=exp(j*2*pi*(fd1*t+0.5*mu*t.^2));%频移干扰信fd2=+10e6;y3=exp(j*2*pi*(fd2*t+0.5*mu*t.^2));%频移干扰信y=y1+exp(j*pi*mu*t.^2)+y2+y3; %产生叠加了干扰的LFM信号yfft=fft(y,1024);win = hamming(Ns)';h_w=h.*win;hfft_w=fft(h_w,1024);ycomp = abs(ifft(yfft .*hfft_w)); %脉冲压缩maxval1 = max(ycomp);ycomp_w = eps + ycomp ./ maxval1; % 利用ycomp的最大值归一化tt =0:Ts:2*TimeWidth-Ts;plot (tt,ycomp_w(1:2*Ns),'b')xlabel ('t - seconds ');ylabel(' 幅度db')title('带宽=10MHZ,叠加fd=0MHZ,+1MHZ,+6MHZ,+10MHZ的脉压') grid on加噪仿真:BandWidth=1.0e6; %发射信号带宽TimeWidth=200e-6; %发射信号时宽mu=BandWidth/TimeWidth %调频率Fs=2*BandWidth; %采样频率Ts=1/Fs;Ns=fix(Fs*TimeWidth);%计算一个脉冲周期的采样点数400;N=1024; %FFT点数t=0:Ts:TimeWidth-Ts;%================================================================== == y=exp(j*pi*mu*t.^2); %产生LFM信号figure(1)plot(real(y));%加噪前的输入信号title('未加噪前的LFM信号');h=zeros(1,Ns);for i=1:Nsh(i)=conj(y(Ns-i+1));endfigure(2)plot(real(h));title('匹配滤波器信号');hfft= fft(h,N); % 匹配滤波器的频域响应y_n=awgn(y,20);%在中叠加一个信噪比为20的高斯白噪声figure(3)plot(real(y_n));%加噪后的输入信号title('加噪后的LFM信号');y_nfft = fft(y_n,N) ;ycomp =abs(ifft(y_nfft .*hfft)); %脉冲压缩maxval = max (ycomp);ycomp = eps + ycomp ./ maxval; % 利用最大值归一化ycomp_db=20*log10(ycomp); %取对数%%%%%%%%%%%%%% 加窗处理 %%%%%%%win = hamming(Ns)';figure(4)plot(win);title('海明窗信号');h_w=h.*win; % 加窗hfft_w=fft(h_w,N); % 加窗的匹配滤波器的频域响应ycomp_w = abs(ifft(y_nfft .*hfft_w)); %脉冲压缩maxval1 = max(ycomp_w);val=ycomp_w ;ycomp_w = eps + ycomp_w ./ maxval; % 利用ycomp的最大值归一化ycomp_w1 = eps + val./ maxval1; % 利用ycomp_w的最大值归一化ycomp_w_db=20*log10(ycomp_w); %取对数ycomp_w1_db=20*log10(ycomp_w1); %取对数%%%%%%%%%%%%%%%%tt =0:Ts:2*TimeWidth-Ts;figure(5)plot (tt,ycomp_db(1:2*Ns),'b')axis([.2*TimeWidth 1.8*TimeWidth -60 0] )xlabel ('t - seconds ');ylabel('幅度db')title('未加窗的脉冲压缩输出')grid onfigure(6)plot (tt,ycomp_w1_db(1:2*Ns),'r')axis([.2*TimeWidth 1.8*TimeWidth -60 0] )xlabel ('t - seconds ');ylabel(' 幅度db')title('加窗的脉冲压缩输出')grid onfigure(7)plot (tt,ycomp_db(1:2*Ns),'b',tt,ycomp_w_db(1:2*Ns),'r') axis([.2*TimeWidth 1.8*TimeWidth -60 0] )xlabel ('t - seconds ');ylabel(' 幅度db')legend('未加窗','加窗');title('脉冲压缩输出对比')grid on延时干扰仿真:BandWidth=1.0e6; %发射信号带宽TimeWidth=200e-6; %发射信号时宽mu=BandWidth/TimeWidth %LFM的调频率Fs=2*BandWidth; %采样频率Ts=1/Fs; %采样周期Ns=fix(Fs*TimeWidth);%计算一个脉冲周期的采样点数;N=1024; %FFT点数t=0:Ts:TimeWidth-Ts;y=exp(j*pi*mu*t.^2); %产生LFM信号,写成复数的形式h=zeros(1,Ns); %匹配系数初始化为0,点数与LFM的点数一致for i=1:Nsh(i)=conj(y(Ns-i+1));end %匹配滤波系数取LFM信号的镜像共轭yfft=fft(y,1024);%对回波LFM信号做FFT变换win = hamming(Ns)'; %产生海明窗h_w=h.*win; %时域加海明窗,匹配系数乘以海明窗函数,完成加权抑制距离旁瓣hfft_w=fft(h_w,1024);%加权后的匹配系数做FFT变换ycomp = abs(ifft(yfft .*hfft_w)); %完成脉冲压缩maxval1 = max(ycomp); %取ycomp的最大值ycomp_w = ycomp ./ maxval1; % 利用ycomp的最大值归一化tt =0:Ts:2*TimeWidth-Ts;subplot(2,1,1);plot (tt,ycomp_w(1:2*Ns),'b')axis([.2*TimeWidth 1.8*TimeWidth 0 1] ) %设定显示图形的尺寸title('时宽=200us无时延的脉冲压缩输出') ;grid on ;td1=20e-6;%时延值为td1t1=t+td1;%有时延的时间变量yd1=exp(j*pi*mu*t1.^2); %产生时延为td1的LFM信号td2=20e-6%时延值为td2t2=t-td2;yd2=exp(j*pi*mu*t2.^2); %产生时延为td2的LFM信号y1=y+yd1+yd2;%叠加有2个时延的回波信号y1fft=fft(y1,1024);hfft_w=fft(h_w,1024);ycomp_w1 = abs(ifft(y1fft .*hfft_w)); %脉冲压缩maxval1 = max(ycomp_w1);ycomp_w2 = ycomp_w1 ./ maxval1; % 利用ycomp_w1的最大值归一化%%%%%%%%%%%%%%%%tt =0:Ts:2*TimeWidth-Ts;subplot(2,1,2);plot (tt,ycomp_w2(1:2*Ns),'r')axis([.1*TimeWidth 2.0*TimeWidth 0 1] ) xlabel ('t - seconds ');title('有td=+20us,-20us时延干扰输出') grid on。
实验一 数字信号处理的Matlab 仿真一、实验目的1、掌握连续信号及其MATLAB 实现方法;2、掌握离散信号及其MA TLAB 实现方法3、掌握离散信号的基本运算方法,以及MATLAB 实现4、了解离散傅里叶变换的MA TLAB 实现5、了解IIR 数字滤波器设计6、了解FIR 数字滤波器设计1二、实验设备计算机,Matlab 软件三、实验内容(一)、 连续信号及其MATLAB 实现1、 单位冲击信号()0,0()1,0t t t dt εεδδε-⎧=≠⎪⎨=∀>⎪⎩⎰例1.1:t=1/A=50时,单位脉冲序列的MA TLAB 实现程序如下: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:用MA TLAB 画出如下表达式的脉冲序列()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;x(6)=0.7;stem(t,x);axis([-2.2 3.2 0 1.7])3、 单位阶跃函数1,0()0,0t u t t ⎧≥⎪=⎨<⎪⎩例1.3:用MA TLAB 实现单位阶跃函数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:用MA TLAB 实现g(t)=3(t-1)clear all;t=0:0.01:3;B=3;t0=1;u=stepfun(t,t0);n=length(t);for i=1:nu(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:用MA TLAB 实现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、 正弦函数2()cos()t f t A T πϕ=+ 例1.6:用MA TLAB 实现正弦函数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:用MA TLAB 产生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:用MA TLAB 画出如下表达式的脉冲序列()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:用MA TLAB 实现单位阶跃函数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:用MA TLAB 实现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:用MA TLAB 实现幅度A=3,频率f=100,初始相位Φ=1.2,点数为32的正弦信号 clear all;N=32;A=3;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:用MA TLAB 实现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:用MA TLAB 实现幅度A=3,a=0.7,角频率ω=314,点数为32的实指数序列 clear all;N=32;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:用MA TLAB 产生点数为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 个抽样周期得到的新序列。
一正弦信号w=pi/6;ns1=0;nf1=48;n1=[ns1:nf1];x1=sin(w*n1);subplot(1,1,1);stem(n1,x1);axis([0,50,-1.2,1.2]);xlabel('n');ylabel('x');title('正弦信号');grid on;二周期信号x=[1 1 0 -1 -1 1 0 0];xn1=x'*ones(1,8);xn1=xn1(:);xn1=xn1';n1=0:length(xn1)-1;subplot(1,1,1);stem(n1,xn1);axis([0,42,-1.5,1.5]);xlabel('n');ylabel('xn');title('周期信号');grid on;三高斯随机信号n1=30;xn1=randn(1,n1);subplot(1,1,1);stem(xn1);axis([0,32,-4,4]);xlabel('n');ylabel('xn');title('高斯随机信号'); grid on;四正选信号求特征值:>> clearw=pi/6;ns1=0;nf1=48;>> n1=[ns1:nf1];>> xn1=sin(w*n1);>> x=mean(xn1);>> y=var(xn1);>> xx =-1.0931e-017>> yy =0.5000五周期信号特征值计算:>> clear>> x=[1 1 0 -1 -1 1 0 0];xn1=x'*ones(1,8);xn1=xn1(:);xn1=xn1';n1=0:length(xn1)-1;>> u=mean(xn1);>> v=var(xn1);>> uu =0.1250>> vv =0.6190六高斯随机信号特征值计算:>> clear>> n1=30;xn1=randn(1,n1);>> m=mean(xn1);>> v=var(xn1);>> mm =-0.1349>> vv =1.3187七信号运算w=pi/6;ns1=0;nf1=48;n1=[ns1:nf1];xn1=sin(w*n1);x=[1 1 0 -1 -1 1 0 0];xn2=x'*ones(1,8);xn2=xn2(:);xn2=xn2';ns2=0;nf2=length(xn2)-1;n2=0:nf2;ny=0:max(nf1,nf2);y1=zeros(1,length(ny));y2=y1;y1(find(ny<=nf1))=xn1;y2(find(ny<=nf2))=xn2;ya=y1+y2;ys=y1-y2;subplot(3,2,1);stem(n1,xn1);xlabel('n');ylabel('xn');title('正弦信号');grid on;subplot(3,2,2);stem(ny,y1);xlabel('n');ylabel('xn');title('修正后的正弦信号');grid on; subplot(3,2,3);stem(n2,xn2);xlabel('n');ylabel('xn');title('周期信号');grid on;subplot(3,2,4);stem(ny,y2);xlabel('n');ylabel('xn');title('修正后的周期信号');grid on;subplot(3,2,5);stem(ny,ya);xlabel('n');ylabel('xn');title('序列相加');grid on;subplot(3,2,6);stem(ny,ys);xlabel('n');ylabel('xn');title('序列相减');grid on;八正弦信号的傅里叶分析w=pi/6;ns1=0;nf1=48;n1=[ns1:nf1];x1=sin(w*n1);xk=fft(x1,96);k=0:95;wk=3*k/95;subplot(3,1,1);stem(n1,x1);xlabel('n');ylabel('xn');title('正弦信号');grid on;subplot(3,1,2);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度');title('96点的幅频特性图');grid on; subplot(3,1,3);stem(wk,angle(xk));xlabel('\w/\pi');ylabel('相位');title('96点的相频特性图');grid on;九周期信号的傅里叶分析x=[1 1 0 -1 -1 1 0 0];xn1=x'*ones(1,8);xn1=xn1(:);xn1=xn1';n1=0:length(xn1)-1;xk=fft(xn1,100);k=0:99;wk=2*k/100;subplot(3,1,1);stem(n1,xn1);xlabel('n');ylabel('xn');title('周期信号');grid on;subplot(3,1,2);stem(wk,abs(xk));xlabel('\w\pi');ylabel('幅度');title('100点的幅频特性图');grid on; subplot(3,1,3);stem(wk,angle(xk));xlabel('\w\pi');ylabel('相位');title('100点的相频特性图');grid on;十频谱混叠w=pi/5;ns=0;nf=40;n=[ns:nf];xn=10*sin(w*n);xk=fft(xn,160);xn1=ifft(xk,160);xk1=xk(1:2:160);xn2=ifft(xk1,160);k=0:159;wk=2*k/160;subplot(4,1,1);stem(n,xn);xlabel('n');ylabel('xn');title('正弦信号');grid on;subplot(4,1,2);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度');title('160点的dft幅频特性图');grid on;subplot(4,1,3);stem(0:length(xn1)-1,xn1);xlabel('n');ylabel('xn');title('抽取160点的dft还原信号');grid on;subplot(4,1,4);stem(0:length(xn2)-1,xn2);xlabel('n');ylabel('xn');title('抽取80点的dft还原信号');grid on;十一泄露分析w=pi/5;for i=1:2if i==1ns=0;nf=40;else ns=0;nf=160;endn=[ns:nf];xn=10*sin(n*w);figure(i)xk=fft(xn,160);k=0:159;wk=2*k/160;subplot(2,1,1);stem(n,xn);xlabel('n');ylabel('xn');title('正弦信号');grid on;subplot(2,1,2);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度');title('160点的dft幅频特性图');grid on;end十二整周期截取分析w=pi/5;ns=0;nf=40;n=[ns:nf];xn=10*sin(n*w);xk=fft(xn,80);xn1=n(1:35);xk1=fft(xn1,80);k=0:79;wk=2*k/180;subplot(4,1,1);stem(n,xn);xlabel('n');ylabel('xn');title(' 整周期截取的正弦信号');grid on;subplot(4,1,2);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度');title('整周期截取的80点dft的幅频特性图');grid on; subplot(4,1,3);stem(0:length(xn1)-1,xn1);xlabel('n');ylabel('xn');title('非整周期截取的正弦信号');grid on;subplot(4,1,4);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度');title('非整周期截取的80点的dft幅频特性图');grid on;十三,频率分辨率w=pi/5;for i=1:3if i==1ns=0;nf=20;else if i==2ns=0;nf=40;else ns=0;nf=80;endendn=[ns:nf];y1=10*sin(w*n);y2=5*sin(0.25*w*n); y3=y1+y2;xk=fft(y3,80);k=0:79;wk=2*k/80;subplot(3,1,1);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度');title('n=20 80点的dft幅频特性图');grid on;subplot(3,1,2);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度 ');title('n=40 80点的dft幅频特性图');grid on;subplot(3,1,3);stem(wk,abs(xk));xlabel('\w/\pi');ylabel('幅度');title('n=80 80点的dft幅频特性图');grid on;end十五IIR滤波器clearwp=input('请输入通带截止频率wp=');ws=input('请输入阻带截止频率ws=');rp=input('请输入通带最大衰减rp=');rs=input('请输入阻带最大衰减rs=');fs=1000;[N,wn]=cheb1ord(wp,ws,rp,rs,'s');[z,p,k]=cheb1ap(N,rp);[b,a]=zp2tf(z,p,k);[bt,at]=lp2lp(b,a,wn);[bz,az]=impinvar(bt,at,fs); [h,f]=freqz(bz,az,512,fs); hdb=20*log10(abs(h));subplot(2,1,1);plot(f,abs(h));xlabel('f/HZ');ylabel('幅度/dB');subplot(2,1,2);plot(f,hdb);xlabel('f/HZ');ylabel('幅度/dB');x=0:0.2:60;xn1=10*sin(pi*x/10);figure(2);subplot(2,2,1);plot(x,xn1);grid on;xlabel('x');ylabel('y');title('正弦信号');xn2=randn(1,length(x));subplot(2,2,2);plot(x,xn2);grid on;xlabel('x');ylabel('y');title('高斯随机信号');xn3=xn1+xn2;subplot(2,2,3);plot(x,xn3);xlabel('x');ylabel('y');title('滤波前的信号');grid on;xn=filter(bz,az,xn3);subplot(2,2,4);plot(x,xn);grid on; xlabel('x');ylabel('y');title('滤波后的信号');十六,FIRclearwp=input('请输入通带截止频率wp=');ws=input('请输入阻带截止频率ws=');rp=input('请输入通带衰减rp=');rs=input('请输入阻带衰减rs=');tr_width=ws-wp;N=ceil(6.6*pi/tr_width)+1;n=0:1:N-1;wc=(wp+ws)/2;alpha=(N-1)/2;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);w_ham=(hamming(N))';h=hd.*w_ham;[H,w]=freqz(h,[1]);db=20*log10(abs(H));subplot(2,1,1);plot(w/pi,abs(H));title('幅度');xlabel('w/pi');axis([0,1.2,0,1.3]);subplot(2,1,2);plot(w/pi,db);title('幅度');xlabel('w/pi');axis([0,1.2,-100,10]);x=0:0.2:40;xn1=10*sin(pi*x/10);figure(2);subplot(2,2,1);plot(x,xn1);grid on;xlabel('x');ylabel('y');title('正弦信号');xn2=randn(1,length(x));subplot(2,2,2);plot(x,xn2);grid on;xlabel('x');ylabel('y');title('高斯随机信号');xn3=xn1+xn2;subplot(2,2,3);plot(x,xn3);xlabel('x');ylabel('y');title('滤波前的信号');grid on; xn=filter(h,1,xn3);subplot(2,2,4);plot(x,xn);grid on; xlabel('x');ylabel('y');title('滤波后的信号');。