网站首页 > 资源文章 正文
上篇文章将向大家介绍频谱的概念,对傅里叶级数、傅里叶积分、傅里叶变换进行了数学的推导,并解释了它们各自的物理意义。推导过程见我的上一篇文章:频谱分析——频谱概念(傅里叶变换、级数、积分及物理意义)
如下图所示的方波表达式为:
傅里叶级数表示为:
其中
首先求傅里叶系数:
即
因此,得到的傅里叶级数的表达式为:
用MATLAB绘制一下傅里叶级数的曲线
先看看傅里叶级数40次谐波逐次叠加的结果的动态展示(偶次谐波为零,为方便展示,作图时忽略偶次谐波项)
左图是n次谐波的和,右图可以清晰直观地看出各次谐波叠加逼近原始方波的过程
接下来再看看傅里叶级数100次谐波逐次叠加的结果
1000次谐波叠加
10000次谐波叠加
将10000次谐波叠加的方波边缘处放大,发现有依然是有超调现象
这种现象称为吉布斯(Gibbs)现象
在时域描述一个不连续的信号时,要求信号有无穷的频率成分,但实际情况中不可能采样到无穷的频率成分,只能对一定频率范围的信号进行采样。
而对于方波这样具有跳跃间断点的信号,采样将会存在频率截断,频率截断会引起时域信号在不连续处产生“振铃效应”。吉布斯现象的产生有两个条件:(1) 对信号频谱的锐截止;(2) 原信号存在跳变点。
MATLAB代码如下:
clc,clear
f = 2; %输入方波的频率
A = 1; %输入方波的幅值
tw = 1;%持续时间,单位:秒
[t,y] = squareWave(f,A,tw);
%设置傅里叶级数的系数
a0 = A / 2;
n = 100; %谐波次数
sum = zeros(1 , length(t) );
sum = sum + a0;
% figure(2);
% plot(t,y);
% hold on
each_hm = zeros( n + 1 , 40000 );
hm = 0 : n;
for k = 1 : 2 : n
An = -( 2 * A / ( 2 * pi * k) ) * ( cos( k * pi ) - 1 );
y1 = An * sin( 2 * pi * k * t * f );
each_hm( k + 1 , : ) = y1;
sum = sum + y1;
each_hm( 1 , : ) = sum;
figure(2);
plot( t , sum );
title([ 'Sum of the first ', num2str(k) , ' harmonics'])
figure(3)
title([ 'For the first ' , num2str(k) , ' harmonics'])
plot3( t , zeros( 1 , 40000 ) , each_hm( 1 , : ) )
grid on
hold on
plot3( t , k * ones( 1 , 40000 ) , each_hm( k + 1 , : ) )
xlabel('t'); ylabel('Harmonic');
pause(0.5)
end
pause(0.5)
figure(2)
plot(t , y , '--' , 'LineWidth' , 2 );
hold on
plot( t , sum ,'LineWidth',1);
legend('Original Square Wave' , 'Fourier series approximation ')
title(['Sum of the first ' , num2str(k) , ' harmonics'])
%%方波生成代码 squareWave函数
function [t,y] = squareWave(freq,A,waveTime)
tt = waveTime;%sec
f = freq; %hz
tp = 1 / f;
fs = 20000 * f;
n1 = tp*fs;
t= 0 : 1 / fs : ( n1 - 1) / fs;
y1 = zeros(1 , n1);
y1(1 : n1 / 2) = A;
n2 = tt * fs
nw = tt / tp;
t2=0 : 1 / fs : ( n2 - 1 ) / fs;
y2 = zeros(1 , n2);
y2 = repmat(y1 , 1 , nw);
y = y2;
t = t2;
end
制作不易,欢迎关注+点赞+收藏支持作者!!!
猜你喜欢
- 2024-11-17 深入浅出讲解卡尔曼滤波(附Matlab程序)
- 2024-11-17 轻松掌握MATLAB - 1.3 帮助信息的查询与使用
- 2024-11-17 用C语言实现matlab的ifft函数,不依赖第三方库
- 2024-11-17 用C语言重新实现Matlab的FFT函数,不使用第三方库
- 2024-11-17 Matlab中fftshift的用法(matlab fft的用法)
- 2024-11-17 从1Ω电阻开始,理解功率谱密度PSD
- 2024-11-17 基于MATLAB的图像纹理频率特征研究及提取方法实现
- 2024-11-17 基于变分模态分解和Cramer von Mises检验的信号降噪方法(MATLAB)
- 2024-11-17 基于稀疏傅里叶变换的低采样率宽带频谱感知
- 2024-11-17 应用傅里叶-小波检测方式的并联型有源电力滤波器,电能质量高
你 发表评论:
欢迎- 05-24这波色彩配色方案!属于冬天
- 05-24(三色)色彩搭配方案!精美
- 05-24家庭装修,应该如何配色?大牌设计师收藏的36个色卡方案公开了
- 05-24160种穿衣配色方案,总有一种适合你
- 05-24(四色)色彩搭配方案!值得收藏
- 05-24不会色彩搭配?赶紧学会这些基本配色技巧
- 05-24超全37组高级感配色,看上去就很贵的女神范儿,照着穿就对了
- 05-24今夏,穿搭更时髦打开方式:推荐几组“配色方案”,时髦又显白
- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)