1.复信号的数学表达式
大家都知道,复数是由实数与虚数构成。同理,复信号也可以有一个实信号和一个虚信号构成。
数学表达式可以表示为:
这里我们还可以回想起经典的欧拉公式:
这个公式将复变函数,三角函数以及指数函数巧妙的结合在了一起。如果定义一个复平面,其横坐标就是实数,纵坐标就是虚数,诸如此类的函数我们叫它复变函数,并且它实际上是绕原点旋转的圆,如下图:
其中θ=wt=2*pi*t/T,该复变函数可以看做是一个角速度为 w 周期为T在复平面上绕原点旋转的半径为R的圆,如果R=1,则该圆为单位圆。
2.复信号的傅里叶变换
如果我们直接给公示(1)套用CFT公式,我们会发现摸不着头脑,不知道该如何求复信号的傅里叶变换。这时我们其实可以类比于公示(2)发现所有的复信号都可以写成实部是余弦函数,虚部是正弦函数的组合形式,那么我们有:
我们这里就架设A=1,则:
给S(t)求CFT,得到:
我们可以清楚的发现复信号的傅里叶变换可以变为正弦函数的傅式变换和余弦函数的傅式变换之和,我们知道正弦函数和余弦函数的傅式变换分别为:
这里就不帮大家回顾该怎么推导了,那我们就可以很容易得到复信号S(t)的傅式变换为(6)式与(7)式之和,即:
这样我们就得到了复信号S(t)的傅式变换。
3.复信号的频谱图
从公式(8)我们可以看到复信号S(t)的傅式变换就Delta冲激函数的向右频移的2π倍,也就是频点Ws对应的冲激的2π倍,那么它的频谱其实就是一根简单的谱线,如下图:
4.复信号3D频谱图
如果我们要把频谱画到三维图里面,在Matlab是可以用mesh函数来实现的。如下图:
但是我们需要注意mesh的X,Y,Z参数必须设置正确,否则会造成矩阵维度不一致的情况出现。
5.Matlab仿真验证
%%=======================================================================================
% 程序说明:本程序验证复信号的傅式变换并且仿真复信号的频谱
% 程序名称:复信号的频谱分析
% 作者: hill5678
% 当前版本:1.0
%%=======================================================================================
clear all;
close all;
clc;
N=128; % 采样点数
n=0:N-1;
fm=1000; % 载波频率
fs=1e4; % 采样频率
t=1/fs*n; % 时间向量
s3=cos(2*pi*fm*t)+1j*sin(2*pi*fm*t); % 构造复信号
s3_1=repmat(s3,N,1);
y1=zeros(length(s3_1)/2-1,length(s3_1));
y2=zeros(length(s3_1)/2,length(s3_1));
s3_1(1:end/2-1,:)=y1;
s3_1(end/2+1:end,:)=y2;
f=[0:N-1]*fs/N; % 真实频率
mag1=abs((fft(s3_1,N,2))); % FFT点数与采样点数相同
mag2=abs((fft(s3,N,2)));
figure(1)
plot(f,mag2);
xlabel('频率f/Hz');
ylabel('幅度');
title('复信号s3的频谱');
grid on;
figure(2)
plot(t,s3);
xlabel('时间');
ylabel('幅度');
title('复信号的时域波形');
grid on;
figure(3)
mesh(f,n,mag1)
set(gca, 'color', [202 / 255, 234 / 255, 206 / 255]);
xlabel('频率/Hz','FontSize', 15 , 'FontWeight', 'bold', 'Color', 'r');
ylabel('FFT点数','FontSize', 15 , 'FontWeight', 'bold', 'Color', 'r');
zlabel('幅值','FontSize', 15 , 'FontWeight', 'bold', 'Color', 'r');
title('复信号s3的3D频谱图','FontSize', 15 , 'FontWeight', 'bold', 'Color', 'k')
*如果上述内容有误,请大家留言指正,我会及时修改*