分享4 矩形脉冲的傅里叶变换演示
技术分享
发布于 2024-09-27 21:13:06
查看 45过去639天
矩形脉冲的傅里叶变换,在信号的傅里叶变换中具有比较典型的意义
已知幅度为1,持续时间为τ的矩形脉冲(如图所示)其傅里叶变换为τSa(πfτ)=τSa(ωτ/2)

从相关变换结果及傅里叶变换的性质可知,脉冲越窄即信号在时域被压缩,则信号的频域将被拓展即第一过零点将被展宽。
接下来我们就用MWORKS中的Syslab来演示这个性质,通过下面的演示程序可以帮助我们:
1.初步了解Julia中的fft()函数使用;
2.基本了解频谱的绘制;
3.掌握矩形脉冲的傅里叶变换以及傅里叶变换的一个基本性质。
fs=200 #采样频率
t=LinRange(-0.5,0.5,fs)#时间轴长度及分度
τ=0.05 #高电平持续时间
#=矩形脉冲函数rectpuls(t,τ),其中T为高电平持续时间,分别给出三种不同宽度的脉冲,
宽度分别为τ、0.5τ、1.5τ=#
x = rectpuls(t,τ)
x1=rectpuls(t,0.5*τ)
x2=rectpuls(t,1.5*τ)
#绘制时域波形
ax1=subplot(2, 1, 1)
ax2=subplot(2, 1, 2)
plot(ax1,t,x,t,x1,t,x2)
xlabel("Time (s)")
ylabel("Magnitude")
title("矩形脉冲的傅里叶变换演示")
#对时域信号做快速傅里变换获得频域数据
y=fft(x)
y1=fft(x1)
y2=fft(x2)
#由于在理论上我们获得的是双边谱,即正负频率都有。
#因此需要对fft后的信号做移动将0频信号移到中心,可以采用fftshift()函数
yshift=fftshift(y)
y1shift=fftshift(y1)
y2shift=fftshift(y2)
#确定绘制频谱图的横轴
fshift=LinRange(-1,1,length(yshift))
f1shift=LinRange(-1,1,length(y1shift))
f2shift=LinRange(-1,1,length(y2shift))
#绘制频谱图
plot(ax2,fshift,abs.(yshift),f1shift,abs.(y1shift),f2shift,abs.(y2shift))
xlabel("Frequency (Hz)")
ylabel("Magnitude")


所属专栏:Julia语言
产品信息:Syslab科学计算环境