当前位置: 首页 > news >正文

信号相角位移量的计算与信号位移计算-附Matlab代码

一、初始相角的位移量

在信号处理中正弦信号经常表示为 x ( n ) = A cos ⁡ ( 2 π f 0 n / f s + θ ) x\left( n \right)=A\cos (2\pi {{f}_{0}}n/{{f}_{s}}+\theta ) x(n)=Acos(2πf0n/fs+θ),其中 f s {{f}_{s}} fs是采样频率, f 0 {{f}_{0}} f0是正弦信号的频率,A是信号的幅值,θ是信号的初始相角。而初始相角值也相当于一个时间的位移量。

信号可进一步表示为:

在这里插入图片描述
由上式可知

在这里插入图片描述

然后导出

在这里插入图片描述
d值就是所要求的相角代表的位移样点量。

而要使信号恢复到初始相角为0,则相当于要设置一个函数y(n),满足y(n)=x(n-d),可得到

在这里插入图片描述

二、获取原始信号的振幅与初始相位角

假如有一正弦信号,如下图所示:

Matlab代码如下:

%% 原始信号
fs = 2000;                      % 采样频率
N = 40;                         % 信号长度
n = 0:N-1;                      % 样点序列
f0 = 100;                       % 初始频率
ph1=-pi/3;                      % 初始相角
x=cos(2*pi*f0*n/fs+ph1);        % 余弦信号序列
figure,plot(n,x,'r')
xlabel('样点'); ylabel('幅值'); 

在这里插入图片描述

图1 正弦信号

通过对上述信号进行傅里叶变换,得到频域谱,可通过分析获得信号在频域谱上的位置值,利用该位置,即可计算出上述信号的幅值与初始相位角,对应的Matlab代码如下:

%% 通过FFT计算信号幅值和信号初始相位角
X=fft(x);                      % FFT
figure,plot(n,real(X),'r');title('信号的频域图')
df = fs/N;                      % 计算频率间隔
nk=f0/df+1;                     % 信号在nk谱线上
A=abs(X(nk))*2/N;               % 计算幅值
Theta=angle(X(nk));             % 计算初始相角

在这里插入图片描述

图2 信号频谱

此时,计算出的信号幅值为1和初始相位角为-1.0472,因此,通过傅里叶变换后计算得到的信号幅值和初始相位角与设置值完全一致。

三、相角位移量计算与信号恢复到初始相角为0

对于本例来说,初始相角值ph1为负值,对应的样点值d也为负值,波形又要左移。
此时,根据上述理论公式,计算得到的相角位移量d=-3.33333

对应的Matlab代码如下:

%% 相角位移量计算
d = ph1*fs/f0/(2*pi);           % 计算位移量

根据第一节的理论,使原始信号位移,此时恢复得到的信号如下图所示:

在这里插入图片描述

图3 信号发生位移(此时初相角为0)

计算得到初始相位角为0。

对应的matlab代码如下:

%% 信号恢复到初始相角为0
Ex=exp(-1j*2*pi*n*d/N);         % 计算旋转因子W^(dk) 

Y = X.*Ex;                      % FFT后乘旋转因子
figure,plot(n,real(Y),'r');title('信号的频域图')

y=ifft(Y);                      % FFT逆变换
y1=real(y);                     % 取的实部
figure,plot(n,y1,'r')
xlabel('样点'); ylabel('幅值'); 

Y1=fft(y1);                     % FFT
df = fs/N;                      % 计算频率间隔
nk=f0/df+1;                     % 信号在nk谱线上
A=abs(real(Y1(nk)))*2/N;        % 计算幅值
Theta=angle(Y1(nk));            % 计算初始相角

四、Matlab程序获取与验证

完整代码链接如下:

信号相角位移量的计算与信号位移计算

可开展针对性验证实验,请私信博主。

相关文章:

  • 小红书店铺需不需要开?在小红书开店需要注意什么
  • 通过图卷积网络从单词语义学习到句子句法,用于基于方面的情感分析
  • Springboot你写我评小说同好交流网站hp7zh计算机毕业设计-课程设计-期末作业-毕设程序代做
  • GitHub上架即巅峰!《Spring Cloud微服务架构实战》标星已超30k
  • ADI的DSP开发软件:CCES软件的使用说明(很早期写的一点心得)
  • Webpack完整打包流程分析
  • ubuntu 20.04 设置DNS
  • 小型扫雪机结构设计
  • Day17 | 每天五道题
  • 无人机边缘计算中的计算卸载——Stackelberg博弈方法论文复现附matlab代码
  • 【明天截稿】Wiley出版社,传感器网络与电路类SCI,仅2-3个月左右录用
  • Matplotlib学习笔记(第一章)
  • 做一个公司网站大概要多少钱?
  • MySQL 数据库主从复制
  • 分布式文件存储系统FastDFS[1]-介绍以及安装
  • 如何使用 Excel拆分文本单元格,基于LEFT、RIGHT、MID、SUBSTITUTE、FIND、SEARCH
  • Java 泛型方法总结
  • WebRTC Native M96 SDK接口封装--注册语音观测器对象获取原始音频数据registerAudioFrameObserver
  • 深入理解Linux网络技术内幕(十一)——帧的传输
  • PXE + Kickstart 服务器批量安装Linux系统
  • 【表格单元格可编辑】vue-elementul简单实现table表格点击单元格可编辑,点击单元格变成输入框修改数据
  • ES7-ES13 新特性
  • 【C++】打开C++的大门
  • 【深度学习】U-Net和FCN具体分析
  • Linux下 git 上传与删除 的基本指令
  • Swift 新 async/await 同步机制小技巧:消除“多余”的 await 关键字
  • Github如何使用详细介绍(保姆级教学)
  • 【ardunio+sx1268】与【esp32+sx1268】实现不同主控单片机lora通讯
  • Linux常用命令——pvscan命令
  • Openharmony的编译构建--进阶篇1
  • 旅游管理专业学什么 难就业吗
  • 2022海南高考体育专业考试时间 什么时候考试
  • 云南楚雄高考时间2021具体时间:6月7日
  • 高考什么特长可以加分 政策有哪些
  • 2022年贵州高考218分能报什么大学 218分能上哪些院校
  • 2022大专石油化工专业毕业后待遇 工资高吗
  • 中国科学院大学2021年各省录取分数线及专业分数线
  • 学英语用点读笔好不好 有效果吗
  • 2021河南职业技术学院学费多少 各专业收费标准
  • 2022广西外语口试成绩查询时间公布 什么时候查分