这样用matlab做傅里叶变换:
1、我们使用matlab开发的傅立叶变换程序代码如下:
syms x
f = exp(-2*x^2) %our function
ezplot(f,[-2,2]) % plot of our function
FT = fourier(f) % Fourier transform
将其写入到我们的matlab程序模块中。
2、我们运行上面的傅立叶变换程序代码,将得出运行结果:FT = (2^(1/2)*pi^(1/2)*exp(-w^2/8))/2。
3、如果我们需要更高级的显示,我们修改上述代码即可,如使用ezplot(FT)作傅里叶变换折线图。
以上就是如何用matlab做傅里叶变换的解决步骤。
试试吧clear
f1=30f2=400f3=2000
a1=randa2=randa3=rand
ψ1=rand*2*piψ2=rand*2*piψ3=rand*2*pi
x=a1*sin(2*pi*f1*t+ψ1)+...+n(t)
X=fft(x) %DFFT处理
冲击响应不变法函数[bz,az]=impinvar(b,a,Fs)
[bz,az]=impinvar(b,a)
例如:取采样频率f=1KHz,用双线性变换法设计五阶Butterworth低通数字滤波器,绘出模拟滤波器与数字滤波器的幅频与相频特性,MATLAB程序如下:
[z,p,k]=buttap(5) % 设计五阶Butterworth低通模拟滤波器原型
[zd,pd,kd]=bilinear(z,p,k,1000)%双线性变换得到低通数字滤波器
[b,a]=zp2tf(zd,pd,kd)%滤波器类型转换
w=128
freqs(b,a,w)
figure
freqz(b,a,w)
实例:1、设带通滤波器的滤波器中心频率为W0=2KHz,带宽为BW=100Hz, 取采样频率f=10kHZ,用脉冲相应不变法设计,设计五阶带通Butterworth数字滤波器,绘出数字滤波器的频谱特性
[z,p,k]=buttap(5)
[b,a]=zp2tf(z,p,k)
w=128
w0=2000
[bt,at]=lp2bp(b,a,w0,10000)
[bz,az]=impinvar(b,a,w)
freqz(bt,at,w)
2、直接设计五阶butterworth带通滤波器,绘出频谱图。(高端与低端截止频率分别为0.2和0.9)
figure
w=[0.2,0.9]
[b,a]=butter(5,w)
freqz(b,a)
3、设高通截止频率为w0=10000Hz, 取采样频率f=20000,用双线性变换法设计六阶高通Butterworth数字滤波器,绘出数字滤波器的频谱特性
[z,p,k]=besselap(6)
[b,a]=zp2tf(z,p,k)
w=128
w0=10000
[bt,at]=lp2hp(b,a,w0)
[bz,az]=bilinear(bt,at,20000)
freqz(bz,az,w)
4、取采样频率f=100Hz,用双线性变换法设计五阶Butterworth低通数字滤波器,绘出模拟滤波器与数字滤波器的幅频与相频特性
[z,p,k]=buttap(5)
[zd,pd,kd]=bilinear(z,p,k,100)
[b,a]=zp2tf(zd,pd,kd)
w=128
freqs(b,a,w)
figure
freqz(b,a,w)
具体的得根据情况自己确定
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)