实信号转换为复信号的原理讲解及MATLAB验证
创作时间:
作者:
@小白创作中心
实信号转换为复信号的原理讲解及MATLAB验证
引用
CSDN
1.
https://blog.csdn.net/NIKANG12/article/details/145751398
在信号处理中,将实信号转换为复信号(解析信号)是提取相位、包络及抑制负频率分量的重要步骤。常用的方法有两种:希尔伯特变换、正交混频法。本文详细介绍了希尔伯特变换和正交混频法的原理,并结合Matlab代码进行效果演示。
一、方法原理与对比
1. 希尔伯特变换法
原理:希尔伯特变换通过将实信号的负频率分量相位偏移±90°,构造解析信号(复信号),其虚部为实信号的希尔伯特变换结果。解析信号的频谱仅保留正频率分量。
公式:
- 实信号x ( t ) x(t)x(t)的解析信号z ( t ) = x ( t ) + j ⋅ H [ x ( t ) ] z(t) = x(t) + j⋅H[x(t)]z(t)=x(t)+j⋅H[x(t)],其中H [ ⋅ ] H[⋅]H[⋅]表示希尔伯特变换。
- 频域操作:将实信号频谱的负频率部分置零,正频率部分幅度加倍。
适用场景:适合离线分析,如包络提取、瞬时频率计算。
2. 正交混频法(正交下变频)
原理:将实信号与复指数载波e − j 2 π f c t e^{-j 2 \pi fc t}e−j2πfct相乘,通过低通滤波保留基带信号,得到复信号的实部(I路)和虚部(Q路)。
公式:
- 混频后信号:z ( t ) = x ( t ) ⋅ e − j 2 π f c t z(t) = x(t)⋅e^{-j 2 \pi fc t}z(t)=x(t)⋅e−j2πfct,滤波后保留低频分量。
- 等效于将频谱从载频f c fcfc搬移到基带,消除负频率。
适用场景:适合通信系统实时处理,如软件定义无线电(SDR)。
二、Matlab实现与效果演示
1. 希尔伯特变换法
代码示例:
fs = 1000;
t = 0:1/fs:1-1/fs;
x = 0.5*cos(2*pi*5*t) .* cos(2*pi*50*t); % 调制信号(实信号)
z_hilbert = hilbert(x); % 希尔伯特变换得到复信号
% 绘图
figure();
subplot(3,1,1);
plot(t, x);
title('实信号时域波形');
subplot(3,1,2);
plot(t, real(z_hilbert));
title('复信号实部(原信号)');
subplot(3,1,3);
plot(t, imag(z_hilbert));
title('复信号虚部(希尔伯特变换)');
效果:
- 复信号的实部与原信号一致,虚部为相位偏移90°的结果(余弦→正弦)。
- 频谱分析显示单边谱(仅正频率):
f = (-fs/2:fs/length(x):fs/2-1);
Z_hilbert = fftshift(fft(z_hilbert));
Z_x = fftshift(fft(x));
figure();
subplot(2,1,1);
plot(f, abs(Z_x));
title('原始实信号频谱(双边)');
subplot(2,1,2);
plot(f, abs(Z_hilbert));
title('希尔伯特法频谱(单边)');
2. 正交混频法
代码示例:
fs = 1000;
t = 0:1/fs:1-1/fs;
fc = 50; % 载波频率
t = 0:1/fs:1;
x = (1 + 0.5*cos(2*pi*5*t)) .* cos(2*pi*fc*t + 0.5*sin(2*pi*10*t)); % 调制信号
local_osc = exp(-1j*2*pi*fc*t); % 本地复振荡器
z_mix = x .* local_osc; % 混频
% 低通滤波(保留基带)
[b, a] = butter(6, 10/(fs/2)); % 截止频率10Hz
z_mix_filtered = filtfilt(b, a, z_mix);
% 绘图
figure();
subplot(2,1,1);
plot(t, real(z_mix_filtered));
title('复信号实部(I路)');
subplot(2,1,2);
plot(t, imag(z_mix_filtered));
title('复信号虚部(Q路)');
效果:
- I/Q两路信号分别对应复信号的实部和虚部,频谱搬移到基带(中心频率0Hz):
Z_mix_filtered = fftshift(fft(z_mix_filtered));
Z_x = fftshift(fft(x));
figure();
subplot(2,1,1);
plot(f, abs(Z_x));
title('原始实信号频谱(双边)');
subplot(2,1,2);
plot(f, abs(Z_mix_filtered));
title('混频法频谱(单边)');
三、方法对比与选择建议
特性 | 希尔伯特变换法 | 正交混频法 |
|---|---|---|
计算复杂度 | 高(需FFT操作) | 低(实时性好) |
频谱处理 | 直接抑制负频率 | 需滤波抑制镜像频率 |
适用场景 | 离线分析(如故障诊断) | 实时系统(如通信接收机) |
四、应用案例:包络提取
希尔伯特法提取包络:
envelope = abs(z_hilbert); % 复信号模值为包络
figure();
plot(t, x, 'b');
hold on;
plot(t, envelope, 'r--');
title('包络提取对比');
legend('原信号', '包络');
效果:红色虚线为提取的包络,与理论包络1 + 0.5 cos ( 2 π 5 t ) 1+0.5\cos (2 \pi 5t)1+0.5cos(2π5t)一致。
五、结论
两种方法均能有效实现实信号到复信号的转换:
- 希尔伯特变换法适合需要精确频谱分析的场景;
- 正交混频法更适合实时系统及通信应用。
通过Matlab代码实践,可直观理解复信号构造原理及工程意义。
热门推荐
珠海十一中、石花路中学学区划分引争议,教育部门回应
2024年春节档电影市场数据复盘:80亿票房创新高,罕见撤档潮引发关注
优化代码,提高效率:减少代码冗余,提升性能
向日葵育苗的好办法,注意这5点,向日葵苗壮成活率高
《天国:拯救 2》评测:全面进化,值得投入上百小时的游戏体验
查看自己五行什么命(怎样查询自己五行属于什么命)
Excel公式中变量的使用方法详解
唐诗中的冬天,冰寒之景与炽热诗情,领略唐诗的独特的魅力!
CF系列游戏十年发展的跨越与创新历程及其价值体现
打造“韧性城市” 让人民城市幸福宜居底色更鲜亮
高雅有涵养的宝宝名字大全集 有中国文化特色的名字
天堂鸟叶子卷边开裂怎么办?原因分析与预防措施全攻略
王艺荻:从校园舞台到荧幕新星的蜕变之路
国考行测考试,如何快速掌握类比推理做题技巧?
李白最长的一首诗,仅凭两句流传千古,热度千年不减,你一定听过
消毒柜怎么选?家庭健康守护者大揭秘!
如何浇水才能让兰花长得快开花多?
桂林桃花源:自然与人文的完美交融之地
短视频平台推荐机制揭秘:从算法到实战的全方位指南
在阴凉处适合养哪些植物,养花盆里和养树荫下有啥区别?
PDF.js Example
Excel表格中实现延迟任务的多种方法
如何在 Mac 上显示和使用「访达」路径栏
张一山:从“小刘星”到实力派演员,演技越来越好了
《雪国》:诺奖史上不朽的经典,川端康成笔下,压抑颓废的美
护照有效期怎么看
精选内容集|摄影大师的独特风格与技法演变
“垃圾情绪”加快机体衰老,比吸烟危害要高出 32%
身体猛然抖一下是怎么回事
免疫力才是人间大药!参苓白术散、玉屏风散,哪个好?