用MATLAB 实现傅里叶变换:
用户任意输入一个函数,然后,输出函数的傅里叶变换函数,然后输出振幅频率 。
x=sin(2pit); %任意输入一个函数。
y=fft(x); %傅里叶变换函数。
plot(abs(y)); %振幅频率。
function test
Fs = 256; % 采样频率
T = 1/Fs; % 采样时间
t = (0:Fs-1)T; % 时间序列(时间轴)
S=2+3cos(2pi50t-pi30/180)+15cos(2pi75t+pi90/180);
f= Fslinspace(0,1,Fs);
Y=2abs(fft(S,Fs)/Fs); %得到正确的峰值
plot(f,Y)
这段函数应该是一个做信号分析的GUI里的一个功能吧。
这段代码是要干啥?对应的按钮上有文字说明么。
感觉是观察一段离散信号经过DFT后的功率谱密度。
y=fft(x,xlength);
这个是快速傅里叶变换,也就是对信号x做DFT
Pyy =yconj(y)/xlength;
这个是信号x的功率谱,也就是频谱y的幅值平方除以信号长度
至于为什么只看一半我就不知道了
首先产生矩形脉冲信号,可以使用rectpuls(t,w)函数产生一个幅值为1,以t=0为中心对称,半宽度为w/2的矩形脉冲
然后傅里叶变换是用fft()命令的。如果要得到频谱的话还要再处理一下,具体就不多说了,给个程序样例:
t=-20:20;
w=10;
y=rectpuls(t,w);%矩形脉冲信号
yy=fft(y);
n=size(y);
n=n(2);
fy=abs(fft(y))/n2;%频谱
subplot(2,1,1)
plot(y);
subplot(2,1,2)
plot(fy);
挺粗糙的,最后得到的两个图分别是方波脉冲和频谱图。。
顺带一提:
1)三角波是tripuls(t,w);
2)矩形波也可以通过ones()和zeros生成一个信号矩阵
3)具体的函数使用和参数规则请参阅help“command”
4)其实这些用simulink做,里面都有现成的模块。这样倒是很简洁,但也不容易看懂
以上就是关于如何用matlab对函数求傅立叶变换全部的内容,包括:如何用matlab对函数求傅立叶变换、求解一个MATLAB的有关傅里叶变换、FFT函数的问题,求具体的MATLAB程序。、关于matlab的傅里叶变换的代码求解释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)