MATLAB计算信号的幅度谱与相位谱
创作时间:
作者:
@小白创作中心
MATLAB计算信号的幅度谱与相位谱
引用
CSDN
1.
https://blog.csdn.net/weixin_45333185/article/details/143101062
信号的频谱分析包括信号的幅度谱和相位谱,其中幅度谱是组成信号的各频谱成分的幅度,相位谱是组成信号的各频谱成分的初始相位。本文将详细介绍使用MATLAB计算信号幅度谱和相位谱的方法,特别指出在计算信号相位谱时如何避免相位信息误差。
一、MATLAB代码实现
幅度谱的计算方法已在之前的系列文章中详细介绍过,这里重点分析相位谱的计算。相位谱的计算公式如下:
计算信号幅度谱和相位谱的MATLAB代码如下:
%% 生成时域信号
f1 = 10; % 余弦波1的频率,单位Hz
f2 = 20; % 余弦波2的频率,单位Hz
p1 = 30; % 余弦波1的初始相位,单位度
p2 = 45; % 余弦波2的初始相位,单位度
A1 = 0.5; % 余弦波的振幅
A2 = 1; % 余弦波的振幅
fs = 320; % 采样率
Ts = 1/fs; % 采样时间间隔
t =0:1/fs:2-1/fs; % 信号时长2秒
s1 = A1*cos(2*pi*f1*t + p1*pi/180); % 信号1
s2 = A2*cos(2*pi*f2*t + p2*pi/180); % 信号2
x = s1 + s2; % 和信号
figure()
subplot(2,2,1);
plot(t,x);
grid on;
title('time domain signal');
xlabel('t/s');
ylabel('x(t)');
ylim([-1.5 2])
%% 频域分析:幅度谱与相位谱
N = 512; % FFT size
X = 1/N*fftshift(fft(x,N)); % N-point complex DFT
df = fs/N; % 频率分辨率
n = -N/2:N/2-1; % FFT结果序号
f = n*df; % x轴索引转换为频率值
subplot(2,2,2);
plot(f,abs(X)); % 幅度谱
grid on;
title('Magnitude spectrum');
xlabel('f (Hz)');
ylabel('|X(k)|');
xlim([-100 100])
% 直接计算相位谱
phase = atan2(imag(X),real(X))*180/pi; % 原始相位信息是被计算误差污染的
subplot(2,2,3);
plot(f,phase); % 相位谱
grid on;
title('Phase spectrum (noisy)');
xlabel('f(Hz)');
ylabel('angle(X(k))');
xlim([-100 100])
二、仿真结果分析
信号的时域波形图:
信号的双边幅度谱:
信号的相位谱:
【相位谱分析】
从这个相位谱可以发现,相位信息误差导致不能得到正确的相位谱。
这个相位谱充满了噪声,几乎不能得出有效的相位信息。相位谱之所以噪声很大,是因为相位谱是通过计算FFT结果的虚部与实部之比的反正切得到的。这样,即使是微小的浮点舍入误差也会放大结果,并以相位信息的形式错误地表现出来。为了理解这一点,可以打印出FFT结果的前几个样本,可以发现它们并不完全等于0(虽然理论上应该等于0,但实际上所得到的值是非常小的数值,大约在10^-16的量级)。计算反正切将导致不正确的结果。解决方案是定义一个容差阈值,所有低于阈值的计算相位都将被忽略。下面给出正确的相位谱计算方法。
三、正确的相位谱计算方法与仿真结果
1.MATLAB代码
正确的相位谱计算的MATLAB代码如下:
% 排除信号误差对相位谱的影响
X2 = X;
threshold = max(abs(X))/10000; % 设置误差门限
X2(abs(X)<threshold) = 0; % 小于门限的值清零
phase = atan2(imag(X2),real(X2))*180/pi; % 提取相位信息
subplot(2,2,4);
plot(f,phase); % 相位谱
grid on;
title('Phase spectrum');
xlabel('f(Hz)');
ylabel('angle(X(k))');
xlim([-100 100])
2.正确的相位谱
所得到的相位谱如下:
分析:
正确的相位谱指出在频率f = 10Hz处的30°相位偏移,和在频率f = 20Hz处的45°相位偏移。相位谱是反对称的:在f = −10Hz处φ = −30°,在f = −20Hz处φ = −45°,这个仿真结果完全符合实值信号的理论分析。
热门推荐
保存图片视频用什么数据库
鸟类迁徙的奥秘,如何飞越千山万水,如何应对人类活动的威胁
史料比较研究:谈谈《旧唐书》与《新唐书》各自的优缺点
治筋膜炎的中草药方
如何使用群晖NAS搭建高效存储解决方案?
健脾袪濕湯水 | 淮山雞腳袪濕湯
油价调整或搁浅?
5分钟搞懂POM设计模式
口腔文史|最全的牙科发展史,盘点58个激动人心的时刻!
CMOS 逻辑 IC 深度揭秘:低功耗、高速度,驱动电子设备的核心引擎
诊断证明书和出院证明一样吗?
梦境解析:乌龟的象征意义,预示未来
解密”Key”的多种含义:从钥匙到关键,带你一探究竟!
开发银发经济新业态新模式 打造高质量充分就业新引擎
培训需求分析:破解组织人才成长的密钥
MySQL数据库异常处理:执行SQL语句报超时异常的解决方案
苏州买房全攻略:区域分析与购房指南
从石油到AI:中东经济转型的雄心
如何看待国外黄金价格的波动情况?这种看法对跨国投资有何指导?
图像增强算法详解:直方图均衡化、拉普拉斯、Log、伽马变换
宅家也能享美食:自制家庭版麻辣火锅攻略
络病理论创新转化成果丰硕 四项目入选2024年度中国中医药领域十大医学研究
6个因素影响PMP考试费用的变化
能源转型关键矿物如何助力实现共同繁荣
北海道秋刀鱼怎么做?有哪些独特烹饪技巧?
二进制如何转回来数据库
仓库温湿度监测有什么意义
ITK-SNAP多模式应用:不同类型图像抠图及Mask保存策略
科普 | 什么是磷酸铁锂电池?
西安周边13个赏红叶最佳好地推荐,从南到北,秦岭红了!