信号在脑子里面应该是什么样的(二)

上节我们讲的主要观点是:信号在我们脑海里面应该是以频谱的方式呈现,也就是各种频率的正弦波。

原因也说了,电感和电容的阻抗公式只能适用于正弦波。而正巧的是,傅里叶变换能将任何信号都变成正弦波的叠加。因此,我们处理信号正确的方式是,先将信号变成各种信号正弦波,然后通过电路,再合并起来,就是我们最终的信号。我举了方波通过RC滤波器之后波形的例子。

不过呢,上节我并没有做实验认证,这次就来补上,本节主要内容也是做实验的过程,主要是使用Matlab编程,并找了网友焊接的RC滤波器电路板实验,互相印证。

网友的电路实测的帖子,文末会给出链接,下面详细介绍下。

理论基础

目的:确定方波通过RC低通滤波器之后的精确波形

我们按照上面思路求得输出波形公式,过程如下:

公式看着有那么点复杂,其实不难,幅度按照比值代入。需要注意的是,要想得到精确波形,仅仅算出各个频率的幅度大小还不行,还得带上相位变化,如此才是准确的。

Matlab代码:

%参数设置
R=1000/(2*pi);  %电阻值,2*pi只是为了方便是截止频率为整数
C=0.000001; %电容
Fc=1/(2*pi*R*C); %RC滤波器的截止频率
f=1;  %方波频率1Hz
omega=2*pi*f; %基频角频率w

%计算
t=-1:0.001:1 %坐标轴从-1到1,分辨率为0.001
n=[1:2:201];  %表示201谐波数的叠加   单行矩阵:1,3,5,7,9...201
An=4./(pi*n); %方波的各个谐波的系数  单行矩阵:1,1/3,1/5,1/7,1/9...1/201
Bn=sin(omega*n'*t); %方波的各个谐波分量  单列矩阵:sin(wt),sin(3wt),sin(5wt)...sin(201wt)   '表示矩阵转置,即行矩阵变成列矩阵
s_wave=An*Bn;   %方波表达式:单行矩阵乘以单列矩阵,即使方波的表达式(谐波系数乘以对应谐波分量,然后相加)
figure;         %画图
plot(t, s_wave);%绘制方波曲线
hold on;
Cn= (1./(1+R^2*omega^2*(n'.^2)*C^2).^0.5).*sin(omega*n'*t-atan(R*C*omega*n')); %计算各个谐波分量通过滤波器,并附入相移atan(R*C*omega*n');
%Cn= (1./(1+R^2*omega^2*(n'.^2)*C^2).^0.5).*sin(omega*n'*t-atan(R*C*omega*n')); %计算各个谐波分量通过滤波器,并附入相移atan(R*C*omega*n');
rc_wave=An*Cn;  %通过RC滤波器的
plot(t, rc_wave);
title(['截止频率=',num2str(Fc)]); %标题显示截止频率是多少

执行结果

1Hz方波,通过截止频率为1Hz的低通滤波器波形:

正巧我在某帖子上面看到,有人做过周期矩形波通过低通滤波器的实验

两个实验的结果是同样的,证明了理论的正确性。感兴趣的同学,可以修改代码中的R和C的值,看看方波通过不同截止频率的波形是分别是什么样的。

有人说方波通过低通滤波器之后变成了正弦波,显然也不是的。

结语

傅里叶变换应用是非常广泛,写这个文章的目的,是为了让同志们知道傅里叶变换是怎么用的,为什么要用这个,这是我的目的

如果您还是在校生,如果这篇文章能让你知道为什么要学习傅里叶变换,那我很欣慰。想当初我在学校的时候,仅仅只是因为要考试才去学。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 5
收藏 5
关注 761
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧