概述
一、实信号与复信号的基本概念
1、实信号:物理可实现的信号常常是时间t(或k)的实函数(或序列),其在各时刻的函数(或序列)值为实数,这样的信号称为实信号。
2、复信号:函数(或序列)值为复数的信号称为复信号,最常用的是复指数信号。
复指数信号的重要特性之一是它对时间的导数和积分仍然是复指数信号。
连续信号的复指数信号可表示为
离散时间的复指数序列可表示为
3、如何理解复信号?
一个复信号f(t)=Re[f(t)]+jIm[f(t)]可以看做是一个实信号Re[f(t)]与一个虚信号jIm[f(t)]的合成,由于任何只含有时间t为自变量的信号都可以视为一条二维曲线,则两个分别以时间为唯一自变量的信号Re[f(t)]与jIm[f(t)]的叠加可以看成是一条随着时间延伸的三维曲线。
-
复指数信号分析
当Re[f(t)]为一个余弦信号,Im[f(t)]为一个正弦信号时,他们的合成即为一条标准的螺旋线。
MATLAB绘制复指数函数y=e^(jwn)的三维图像
为了绘制直观的复指数图像,可以连同它在实轴、虚轴上的投影一起绘制。这样一个大任务就分解为6个步骤:
S1-绘制复指数图像的离散点; S2-绘制每个离散点到旋转轴x轴的垂直连线; S3-绘制复指数图像在实轴z上的投影,这也是离散点; S4-绘制实轴投影离散点到旋转轴x轴的垂直连线; S5-绘制复指数图像在虚轴y上的投影,这也是离散点; S6-绘制虚轴投影离散点到旋转轴x轴的垂直连线。
代码
clear all;
close all;
clc;
w=1;
n=0:0.1:20;
f=exp(1j*w*n);
L=length(n);
x=n; %以该复函数自变量n作为三维图像的x轴
y=imag(f); %以该复函数虚部作为三维图像的y轴
z=real(f); %以该复函数实部作为三维图像的z轴
y_0=zeros(size(n)); %获取y=0的点集
y_1=ones(size(n)); %获取y=1的点集
z_0=zeros(size(n)); %获取z=0的点集
z_1=ones(size(n)); %获取z=1的点集
%S1-用蓝点绘制复指数函数图像的离散点;
plot3(x,y,z,'.b');
%添加坐标轴名称及标题名称
xlabel('自变量n');
ylabel('虚部');
zlabel('实部');
title('复指数函数图像');
hold on %启动图形保持功能,当前坐标轴和图形都将保持而不被刷新,此后绘制的图形都将添加在这个图像的基础上,多图共存,并自动调整坐标轴的范围
grid on %显示坐标轴网格线
x1=[x;x];
y1=[y;y_0];
z1=[z;z_0];
%S2-用蓝色实线绘制每个离散点到旋转轴x轴的垂直连线;
for i=1:L
plot3(x1(:,i),y1(:,i),z1(:,i),'b');
end
% 绘制复指数函数图像所绕的轴
plot3(x,y_0,z_0,'k');
%S3-用黄点绘制复指数图像在实轴z上的投影,这也是离散点;
plot3(x,y,-1*z_1,'.y');
%S4-用黄色实线绘制实轴投影离散点到旋转轴x轴的垂直连线;
y2=[y;y_0];
z2=[-1*z_1;-1*z_1];
for i=1:L
plot3(x1(:,i),y2(:,i),z2(:,i),'y');
end
%S5-用紫点绘制复指数图像在虚轴y上的投影,这也是离散点;
plot3(x,y_1,z,'.m');
%S6-用紫色实线绘制虚轴投影离散点到旋转轴x轴的垂直连线。
y3=[y_1;y_1];
z3=[z;z_0];
for i=1:L
plot3(x1(:,i),y3(:,i),z3(:,i),'m');
end
结果
当w=1,n=0:0.1:20时,从原点往自变量n的正方向看去,图像逆时针旋转。
当w=-1,n=0:0.1:20时,从原点往自变量n的正方向看去,图像顺时针旋转。
当w=0.5,n=0:0.1:20时,图像旋转速度变慢。
- 由此我们可以看出,复指数函数y=e^(jwn)在空间中是一个螺旋前进的三维图像,它前进的方向是自变量序列n增大的方向,w确定了旋转的方向与速度。
- w为正值时,图形逆时针旋转;反之,w为负值时,图形顺时针旋转。这就解释了负频率的物理意义:正频率代表向量逆时针旋转,负频率代表向量顺时针旋转。
- 通过观察w=1与w=-1时复指数信号图像在实轴和虚轴的投影也可以看出,其实轴投影相同,虚轴投影相反,这显然也是符合数学定义的。
-
复信号的幅值与相位
假如用垂直于时间轴的横截面去切一个复信号,该平面将于这个复信号相交于唯一一点;同时,该平面与时间轴也会有唯一交点;这两个交点之间的距离就是该信号的幅值。
时间轴切面除了与时间轴相交于一点外,还分别与实平面和虚平面相交于一条直线,这两条直线的交点恰好是时间轴切面与时间轴的交点;因此,时间轴切面上信号点在实轴、虚轴二维坐标系上的与原点连线与坐标轴的夹角就是该时刻上信号的相位。 -
瞬时角频率
瞬时角频率是相位函数的倒数。
我们可以这样理解瞬时角频率:每一个时刻的时间切面都可以得到一个与复信号对应二维曲线的交点,当把这些切面叠放到一起时,这些交点就成为一条曲线。当我们用微小的离散时隙来近似连续的情况时,曲线上相邻任意两点与坐标中心的连线将构成一个夹角,而该夹角的大小就是瞬时角频率,也就是相位的变化率。
二、为什么要引入复信号?
实际信号不存在复信号,只存在实信号,那为什么要提出复信号的概念?
我们首先来看一下实信号的频谱:
研究时间信号 f(t) 与其频谱 F(jw) 之间的虚实、奇偶关系。如果 f(t) 是时间 t 的实函数,那么
式中频谱函数的实部和虚部分别为
频谱函数的模和相角分别为
故若 f(t) 是时间 t 的实函数,则频谱函数 F(jw) 的实部 R(w) 是角频率 w 的偶函数,虚部 X(w) 是角频率的奇函数;
进而可知,|F(jw)| 是 w 的偶函数,而 φ(w) 是 w 的奇函数;
此外,由下式可知,其频谱具有共轭对称性,f(t)的幅度频谱为偶对称,相位频谱为奇对称
分析:实信号具有共轭对称的频谱,从信息的角度来看,其负频谱部分是冗余的,因此为了信号处理方便,去掉频域的负半平面,只保留正频谱部分的信号,其频谱不存在共轭对称性,这样产生的频谱所对应的时域信号就是一个复信号,这个复信号称为解析信号或预包络。
两点补充:
- 负频率只有数学上的意义,并不实际占用带宽,但是基带信号调制到高频之后,形成了关于Wc的对称频谱,原来的负频率信号就占用了实实在在的频率资源。
- 如果一个实信号的单边频带宽w,考虑到负频率频谱,实际占的频谱区域就是±w,所以通信中传输这样的信号就需要占用2w的频带宽度。
为了去掉负频率但保持总功率不变,我们利用阶跃信号u(w)对实信号x(t)的频谱X(jw)进行处理:
根据卷积定理及傅里叶变换的性质可得傅里叶反变换(*表示卷积运算)
由此引出了希尔伯特变换
三、希尔伯特变换(Hilbert transform)
-
数学定义:在数学与信号处理的领域中,一个实值函数的希尔伯特变换是将信号x(t)与h(t)=1/(πt)做卷积,以得到其希尔伯特变换。因此,希尔伯特变换结果可以理解为输入是x(t)的线性时不变系统(linear time invariant system)的输出响应,而此系统的脉冲响应为h(t)=1/(πt)。
因此,一个实值函数x(t)的希尔伯特变换记作H[x(t)]
反变换为
-
实质:h(t)的傅里叶变换为
从频谱上来看,希尔伯特变换将我们的原始信号的正频率部分乘以 -j,负频率部分乘以 j。即保持幅度不变的条件下,将正频率移相-90°,而对于负频率成分移相90°。
下图是对原始信号做1到4次Hilbert变换的频谱示意图,较为直观的表示了希尔伯特变换:
- Hilbert变换性质:
(1)2次Hilbert变换后,原信号相位翻转了180°,即信号两次Hilbert变换后是其自身相反数。
(2)Hilbert变换四次后就变回本身了。
(3)Hilbert变换本质上是卷积,若y=conv(v,x),那么Hilbert(y)=conv(Hilbert(v),x)=conv(v,Hilbert(x))。
(4)x(t)和Hilbert[x(t)]的能量以及平均功率相等,相关函数和功率谱密度相同。(希尔伯特变换只改变相位,不改变幅度)
(5)x(t)和Hilbert[x(t)]奇偶性相反,即若原函数x(t)是 t 的偶(奇)函数,则其希尔伯特变换Hilbert[x(t)]就是 t 的奇(偶)函数。
(6)x(t)和Hilbert[x(t)]是正交的,即
(7)卷积H变换
(8)Hilbert变换抑制了直流分量 H(0)=0
(9)实信号Hilbert变换后的信号依然是实信号,Hilbert变换是一个线性变换.
MATLAB分析cos函数的希尔伯特变换
代码
close all;
clear all;
clc;
% Hilbert transform testing
ts = 0.001; %时间间隔
fs = 1/ts; %采样率
N = 200; %采样个数
f = 50; %频率,小于采样率的一半(奈奎斯特)
k = 0:N-1;
t = k*ts; %时间向量
% signal transform
% 结论:cos信号Hilbert变换后为sin信号
y = cos(2*pi*f*t);
yh = hilbert(y); % matlab函数得到的信号是解析信号
yi = imag(yh); % 虚部为书上定义的Hilbert变换
subplot(2,3,1);
plot(t,y);
title('原始cos信号');
subplot(2,3,2);
plot(t,yi);
title('Hilbert变换后的信号');
% 检验两次Hilbert变换的结果(理论上为原信号的负值)
% 结论:两次Hilbert变换的结果为原信号的负值
yih = hilbert(yi);
yii = imag(yih);
subplot(2,3,3);
plot(t,yii);
title('两次Hilbert变换后的信号');
set(gca,'YLim',[-1,1]); %设置Y轴的数据显示范围
set(gca,'YTick',[-1:0.5:1]); %设置Y轴刻度
% 谱分析
% 结论:Hilbert变换后构建的解析信号的谱为单边谱
NFFT = 2^nextpow2(N); %由于FFT算法的本质,对于NFFT的选择一般为大于序列长度点数N的最小的2的幂次方,这样能够改善FFT的计算性能
f = fs*linspace(0,1,NFFT); %从0到fs共输出NFFT个数,则步长为fs/NFFT
Y = fft(y, NFFT)/N; %Y=fft(X,n)函数返回n点DFT
YH = fft(yh, NFFT)/N;
%figure
subplot(2,3,4);
plot(f,abs(Y));
title('原信号的幅度谱');
xlabel('频率f (Hz)');
ylabel('|Y(f)|');
subplot(2,3,5);
plot(f,abs(YH));
title('解析信号的幅度谱');
xlabel('频率f (Hz)');
ylabel('|YH(f)|');
结果
- 物理意义:
4.1 解析信号
4.1.1 本质:
把信号的正频率频谱移相-90°,把负频率频谱移相90°,然后再将这个信号移相90°与原信号相加,使两者的负频率频谱互相抵消,正频率频谱加倍,构成一个没有负频率频谱的复信号。这个复信号的带宽就只占w了,用这个方法,使频带节约了一半。
4.1.2 特点:
4.1.2.1 解析信号的实部和虚部功率谱相同,自相关函数相同,其互相关函数是一个奇函数;
4.1.2.2 解析信号的频谱只有正频段且幅度值为原来的2倍,实现了信号由双边谱转换为单边谱;功率谱也只有正频段,强度为原来的4倍;
4.1.3 意义:
将实信号变换为解析信号就是将一个二维信号变成了三维复平面上的信号,复平面向量的模和相角代表了信号的幅度和相位。
解析信号可以计算包络(瞬时振幅)和瞬时相位
4.1.3.1 包络
4.1.3.2 瞬时相位就是虚部和实部在某一时间点的比值的arctan
4.1.3.3 瞬时频率是瞬时相位对时间的导数
4.1.3.4 一个信号既有幅度信息,又有相位信息,所以可设
4.2 欧拉公式(Euler’s formula)
公式表明,复指数信号可以表示为一个实信号和一个虚信号的和的形式,且实部和虚部相差π/2
观察sin和cos的傅里叶变换,可以得出,sinx的Hilbert变换是cosx,cosx的Hilbert变换是-sinx.也就是说,sinx与cosx是一对希尔伯特变换对.
那么,欧拉公式实际上就是一种特殊的Hilbert变换。
复指数信号,时域上是复数,但其频谱就是一个脉冲,只有正频率部分,且幅度值是原来的2倍。
最后
以上就是爱撒娇曲奇为你收集整理的学习探究--实信号与复信号一、实信号与复信号的基本概念二、为什么要引入复信号?三、希尔伯特变换(Hilbert transform)的全部内容,希望文章能够帮你解决学习探究--实信号与复信号一、实信号与复信号的基本概念二、为什么要引入复信号?三、希尔伯特变换(Hilbert transform)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复