用MATLAB编程计算任意周期性连续函数的单边频谱

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用MATLAB编程计算任意周期性连续函数的单边频谱相关的知识,希望对你有一定的参考价值。

参考技术A matlab所有的连续函数基本上都需要转换到离散域处理,所有应该用fft实现。
下面是我自己写的一段小代码,用上了数字信号处理中的离散域和数字域上处理的对应关系:)

%计算傅里叶变换的函数,Fs是采样频率,s是时域信号
function [F,f]=Fourier(s,Fs);
fftn=2^nextpow2(length(s));
F=fft(s,fftn);
f=linspace(0,Fs/2,fftn/2)';
figure;
plot(f,abs(F(1:fftn/2))/Fs);
F=F/Fs;
xlabel('Frequency/Hz');
ylabel('Ampitude');
title('Fourier');追问

为什么不能用傅里叶级数的余弦计算公式完成?如果要该怎么办?

追答

没注意到你问题中说的周期性。周期信号的Fourier变换应该是一个一个的冲击函数,其系数是傅里叶级数的系数。你说用傅里叶级数的余弦计算公式是说求傅里叶级数吧,如果要求的话应该也是用离散化的方式,因为是要求积分嘛,这个我没有做过。另也任意周期的信号的Fourier变换其实可以视为非周期信号的Fourier的抽样,典型例子是方波信号。可以利用我上面提供函数计算单周期的Fourier变换再在特定的频率上取点就行了吧,取样点应该是时域频率的整数倍。

参考技术B 给你发怒

以上是关于用MATLAB编程计算任意周期性连续函数的单边频谱的主要内容,如果未能解决你的问题,请参考以下文章

如何用matlab求周期函数的频谱?

关于用MATLAB设计确定信号的频谱分析和滤波

数字信号处理 频域采样及恢复(离散频谱到连续频谱) MATLAB

转载时域信号的频谱功率谱和功率谱密度计算

用matlab实现连续时间周期信号(方波信号,三角波信号)的频谱分析

怎样利用MATLAB 完成周期矩形脉冲信号的频谱图??