我是靠谱客的博主 秀丽大山,最近开发中收集的这篇文章主要介绍matlab生成随机信号序列_信号处理工具箱:基本信号发生器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

信号是现代工程中经常处理的对象,在通信、雷达等领域有大量的应用。在MATLAB中,信号处理工具箱可以看做工具集合,包含波形产生与处理、数字和模拟滤波器设计、信号模型以及频谱分析、时频分析等多个常见功能。

91bf67cd006b143cf975dae2f2a557fa.png

在MATLAB信号工具箱中,提供了多种产生信号的函数。利用这些函数,可以很方便地产生多种常见信号。

锯齿波和三角波

0f8354dac7bd365d9603a4960ba2a51c.png

sawtooth(t):产生周期为2π,峰值为-1和1,采样时刻由向量t指定,此时为锯齿波。

sawtooth(t, xmax):产生三角波,xmax指定最大值出现的地方,其取值在0到1之间。当t由0增大到xmax*2π时,函数值由-1增大到1,当t由xmax*2π增大到2π时,函数值由1减小到-1。当xmax=0.5时,上升段斜率与下降段斜率相等,三角波对称,如下面简单例子。

T = 5*(1/50);

Fs = 100e3;

dt = 1/Fs;

t = 0:dt:T-dt;

Xmax = 0.5;

st = sawtooth(2*pi*50*t,Xmax);

plot(t,st)

grid on

1587f27a401e5b139ea60a7f3319ea69.png

非周期三角/矩形脉冲

0f8354dac7bd365d9603a4960ba2a51c.png

tripuls(t) :产生一个连续的、非周期的、单位高度的三角脉冲的采样,采样时刻由数组t指定。缺省情况下,产生的是宽度为1的非对称三角脉冲。

tripuls(t,W) :产生一个宽度为W的三角脉冲。

tripuls(t,W,S) :S为三角波的斜度。参数S满足-11,当S=0时,产生一个对称的三角波。

rectpuls(t, W) 产生一个连续的、非周期的、单位高度的矩形脉冲的采样,宽度为W。

t = -T:1/Fs:T-Ts;

W = 0.04;

S = 0;

st_tri = tripuls(t,W,S);

figure;

plot(t,st_tri)

grid on

t = -T:1/Fs:T-Ts;

W = 0.04;

st_rect = rectpuls(t,W);

figure;

plot(t,st_rect)

grid on

8f6b21422aae25a15996e81cadd16e9b.png

周期sinc波形

0f8354dac7bd365d9603a4960ba2a51c.png

在MATLAB中,用户可以使用diric命令实现周期sinc函数,又被称为Dirichlet 函数。Dirichlet函数的定义是d(x)=sin(N*x/2)./(N*sin(x/2))。diric函数的调用格式为:Y=diric(x,N)。

函数返回大小与x相同的矩阵,元素为Dirichlet 函数值。N必须为正整数,该函数将0到2π等间隔的分成N等份。

x=-6*pi:0.01:6*pi;

y1=abs(diric(x,10));

y2=diric(x,50);

figure;

plot(x,y1,'-k',x,y2,'-r','LineWidth',2)

grid on

1ff725d5715e97204e118e7f8cb83ce1.png

高斯调幅正弦波

0f8354dac7bd365d9603a4960ba2a51c.png

在信息处理中,使载波的振幅按调制信号改变的方式叫调幅。高斯调幅正弦波是比较常见的调幅正弦波,通过高斯函数变换将正弦波的幅度进行调整。gauspuls是MATLAB信号处理工具箱提供的信号发生函数,其调用格式如下:

yi=gauspuls(t,Fc,BW):函数返回最大幅值为1的高斯函数调幅的正弦波的采样,其中心频率为Fc,相对带宽为BW,时间由数组t给定。BW 的值必须大于0。默认情况下,Fc=1000Hz,BW=0.5。

yi=gauspuls(t,Fc,BW,BWR) BWR:指定可选的频带边缘处的参考水平,以相对于正常信号峰值下降了-BWR(单位为dB)为边界的频带,其相对带宽为100*BW%。默认情况下BWR的值为-6dB。其他参数设置同上。BWR的值为负值。

tc=gauspuls(‘cutoff’,Fc,BW,BWR,TPE):返回包络相对包络峰值下降TPE(单位为dB)时的时间tc。默认情况下,TPE 的值是-60dB。其他参数设置同上。TPE 的值必须是负值。

Fc = 5e3;

BW = 0.6;

tc = gauspuls('cutoff',Fc,BW,[],-40);

t = -tc:dt:tc;

yi = gauspuls(t,Fc,BW);

figure;

plot(t,yi)

grid on

521c85be3841f7d746cfd124408efba5.png

调频信号

0f8354dac7bd365d9603a4960ba2a51c.png

和调幅类似,使载波的频率按调制信号改变的方式被称为调频。调波后的频率变化由调制信号决定,同时调波的振幅保持不变。从波形上看,调频波像被压缩得不均匀的弹簧。在MATLAB中,chirp 函数可以获得在设定频率范围内的按照设定方式进行的扫频信号。chirp函数调用格式如下。

Y=chirp(t,F0,T1,F1):产生一个频率随时间线性变化信号的采样,其时间轴的设置由数组t定义。时刻0的瞬时频率为F0;时刻T1的瞬时频率为F1。默认情况下,F0=0Hz,T1=1,F1=100Hz。

Y=chirp(t,F0,T1,F1,’method’):method指定改变扫频的方法。可用的方法有‘linear’(线性调频)、‘quadratic’(二次调频)、‘logarithmic’(对数调频)。默认时为‘linear’,其他参数意义同上。

Y=chirp(t,F0,T1,F1,’method’,PHI):PHI 指定信号的初始相位,默认时PHI 的值为0,其他参数意义同上。

56af4f9d4a60fab2730979c28025aac6.png

高斯分布随机序列

0f8354dac7bd365d9603a4960ba2a51c.png

在信号处理中,标准正态分布随机序列是重要序列。该序列可以由randn函数生成,randn函数的调用格式为:Y=randn(M,N):将生成M 行N 列的均值方差为1的标准正态分布的随机数序列。

M = 150;

D = 5;

Y = M+sqrt(D)*randn(1,10000);

M1 = mean(Y)

D1 = var(Y)

x=140:0.1:160;

figure;

hist(Y,x)

grid on

d3413d2696390c267836af6fbb0a0f30.png

需要本文Matlab代码的可给“雷达通信电子战”发送“190611”或者直接点击“阅读原文”。

最后

以上就是秀丽大山为你收集整理的matlab生成随机信号序列_信号处理工具箱:基本信号发生器的全部内容,希望文章能够帮你解决matlab生成随机信号序列_信号处理工具箱:基本信号发生器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部