20、matlab信号波形生成:狄利克雷函数、高斯脉冲和高斯脉冲序列

时间:2024-06-03 11:57:11

1、狄利克雷函数生成波形diric()函数

语法:y = diric(x,n) 返回n次的狄利克雷函数对输入数组x的元素求值。

1)diric()函数

代码

x = linspace(-2*pi,2*pi,301);%定义x取值
d6 = diric(x,6);
d7 = diric(x,7);
subplot(2,1,1)
plot(x,d6)
ylabel('n= 6')
title('狄利克雷函数')
subplot(2,1,2)
plot(x/pi,d7)
ylabel('n= 7')

视图效果 

2)周期和非周期Sinc函数

代码

xm = 8;
x = linspace(-xm,xm,1001)';
n= 6;
yd = diric(x*pi,n);
ys = sinc(n*x/2)./sinc(x/2);
ys(~mod(x,2)) = (-1).^(x(~mod(x,2))/2*(n-1));
subplot(2,1,1)
plot(x,yd)
title('D_6(x*pi)')
subplot(2,1,2)
plot(x,ys)
title('sinc(6*x/2) / sinc(x/2)')

视图效果

 2、高斯调制正弦射频脉冲gauspuls()

语法

语法1:yi = gauspuls(t,fc,bw,bwr) 返回一个单位振幅的同相高斯射频脉冲,其分数带宽为bw,相对于归一化信号峰值在bwr dB水平上测量。
语法2:[yi,yq,ye]= gauspuls()  返回射频信号包络。

语法3:tc = gauspuls('cutoff',fc,bw,bwr,tpe) 返回尾随脉冲包络相对于峰值包络幅值降至dB类型以下的截止时间tc。

参数

t:时间

fc:中心频率

bw:部分带宽

 bwr:分数带宽参考电平              

yi:同相高斯脉冲 yq:正交高斯脉冲 

ye:射频信号包络   

ct:截止时间

tpe:拖尾脉冲包络电平产生高斯射频脉冲

代码

tc = gauspuls('cutoff',50e3,0.6,[],-40); 
t = -tc : 1e-7 : tc; 
[yi,yq,ye] = gauspuls(t,50e3,0.6); 
plot(t,yi,t,yq,t,ye)
legend('同相高斯脉冲','正交高斯脉冲','射频信号包络')

视图效果

 3、高斯脉冲gmonopuls()

语法

语法1:y = gmonopuls(t,fc) 返回中心频率为fc的单位振幅高斯单脉冲在阵列t中指示的时间点的样本。
语法2:tc = gmonopuls('cutoff',fc)  返回脉冲的最大振幅和最小振幅之间的持续时间。

参数

t:时间      fc:中心频率      y:单脉冲    tc:时间差

1)高斯单脉冲

代码

fc = 1e9;
fs = 150e9;
tc = gmonopuls('cutoff',fc);
t  = -2*tc:1/fs:2*tc;
y = gmonopuls(t,fc);
sg = 1/(2*pi*fc);
ys = exp(1/2)*t/sg.*exp(-(t/sg).^2/2);%单脉冲方程
plot(t,y,t,ys,'p')
legend('高斯单脉冲','单脉冲方程')

视图效果 

2)高斯脉冲序列

代码

fc = 1e9;
fs = 150e9;
tc = gmonopuls('cutoff',fc);
t  = -2*tc:1/fs:2*tc;
y = gmonopuls(t,fc);
sg = 1/(2*pi*fc);
ys = exp(1/2)*t/sg.*exp(-(t/sg).^2/2);%单脉冲方程
plot(t,y,t,ys,'p')
%高斯单脉冲脉冲序列
fc = 1e9;
fs = 150e9;
tc = gmonopuls('cutoff',fc);
c = ((-5:5)*7.5+2.5)*1e-9;%采样间隔
t  = -150*tc:1/fs:150*tc;%时间轴设置
gp = pulstran(t,c,'gmonopuls',fc);%脉冲序列
plot(t,gp)
legend('高斯单脉冲序列')

视图效果