当前位置: 服务支持 >  技术文档 >  MATLAB方波傅里叶变换:学习与记录

MATLAB方波傅里叶变换:学习与记录

阅读数 67
点赞 63
copyright 著作权
article_banner

f = 1/(200e-9);   %方波信号的频率,5Mhz,200ns

L = 512;             % 每个周期采样的点数

Fs = L*f;            % Sampling frequency ,采样率=信号频率*每个周期的采样数                   

T = 1/Fs;             % Sampling period     两次采样的时间间隔

t = (0:L-1)*T;        % Time vector    通过采样时间间隔和采样的点数生成时间矩阵。这里选取一个周期的方波信号:512个点=1个方波周期,时间从0开始所以最后减去一个点。

x = square(t*f*2*pi); %square可以方便的生成方波信号,生成方式和正弦信号一样,角速度*时间,官方说明文档有很多实例。

plot(t,x);  %画出方波信号幅值随时间的变化图

%n = 2^nextpow2(L); %在有些文档里对进行快速傅里叶变化的点数进行补零。(可能可以加快运算,测试了1024和1000点精度上没有区别)

Y = fft(x); %快速傅里叶变换

P2 = abs(Y/L); %双边频谱,Matlab做快速傅里叶变换后会保留负频部分需要后处理。这里取绝对值和除上数据长度,是为了还原纵坐标和功率的对应关系。(具体原有可能和傅里叶快速变换的数学推导有关)

P1 = P2(1:L/2+1); %截取频谱一半加一个点(方法参考的官方文档加一个点可能是由于直流部分和最高频只有一个?)

P1(2:end-1) = 2*P1(2:end-1); %单边频谱,除头尾乘2。根据上面猜想对有正负频两部分的进行合并,还原正确的频间功率关系

f_fft = Fs*(0:(L/2))/L; %给这截取一半的频谱图对应正确的横坐标,频率。257个点有256个间隔。

plot(f_fft,P1) %画出频谱图

时域图

频域图

相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空