数字信号处理MATLAB注解

信号

能量和功率是积分的关系

能量信号(类比电路里的功):一般指能量有限信号

功率信号(类比电路里的功率)

 

小结

能量有限、功率为零的信号为能量信号。

能量无限、功率有限的信号为功率信号。

所有有界的周期信号都是功率信号;所有有限数量的脉冲信号都是能量信号。

参考链接

【知乎】能量信号和功率信号的分别

【百度文库】功率信号和能量信号举例

 

信号运算

积分:加速度——速度——位移

 

傅里叶变换fft

有关文章

傅里叶即为卷积

离散傅里叶变换DFT基本原理图解:矩形窗和汉宁窗

数字信号处理 | 你想知道的都在这儿

窗函数——模态空间

MATLAB傅里叶命令有两种:

  • Yfft(x) ,其中,x 为一个序列(向量),存放采集信号的数据;

  • 另外一种Yfft(x,n),x 的定义同上,n 定义计算数据的个数,如果大于的长度,在x 的末尾添加0,使得的长度等于n。如果n小于x的长度,截取中的前n 个数来进行计算。Y 返回fft 的结果,为一个复数序列(向量)。

     Y的结果是复数,幅值根据复数的模而来,相位角根据复数的角度来的。

线性振幅谱的纵坐标有明确的物理量纲,是最常用的。

对数振幅谱中各谱线的振幅都作了对数计算,所以其纵坐标的单位是dB(分贝)。20*lg(abs(Y)/Y0)表示成dB值,Y0取为1.

 

示例1(现在采用的代码)

L = size(data);    % 信号长度
NFFT = 2^nextpow2(L);
F = fs/2*linspace(0,1,NFFT/2+1);  %(0:1:N/2)*Fs/N 实际信号第n点处的频率是n*Fs/N
Y = fft(data,NFFT)/L;   %除以L乘以2
y = 2*abs(Y(1:NFFT/2+1,:)); %只取了一半
plot(F,y);
title('频谱图');
xlabel('频率/Hz');
ylabel('幅值');

示例2(代码参见

%傅里叶变换
Y=fft(y); %Y为fft变换结果,复数向量,保证y是偶数
Y=Y(1:N/2+1); %只看变换结果的一半即可
A=abs(Y); %复数的幅值(模)
f=(0:1:N/2)*Fs/N; %生成频率范围
f=f'; %转置成列向量

%%幅值修正
A_adj=zeros(N/2+1,1);
A_adj(1)=A(1)/N; %频率为0的位置,只除以N
A_adj(end)=A(end)/N; %频率为Fs/2的位置,只除以N
A_adj(2:end-1)=2*A(2:end-1)/N;  %频率为其他位置,除以N乘以2

fft变换后为什么要处理

频率处理

幅值处理

为什么乘以2除以N:,参见:https://blog.csdn.net/kofiliu2018/article/details/106932722?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

fftshif函数:https://zhuanlan.zhihu.com/p/36163931

窗函数

窗函数实际就是乘以一个权重,图为不同的窗函数

窗函数处理后幅值会改变,因此需要乘以恢复系数。

时频分析之傅里叶变换

 

存在问题

1.傅里叶分析的长度是不是越长越好?采样频率越高越好?

t=[0:0.02:60*60]';
data_acc=sin(2*t)+randn(size(t))+sin(t)+5*randn(size(t));
% 原始数据
plot(t,data_acc)

当分析数据为60*60,即60分钟,与真实值相同,而10分钟仅仅是接近??

50Hz和500Hz

 

2.什么时候对数据进行平滑,数据开始也需要平滑吗?fft后也要平滑吗?

 

 

功率谱密度

概念

能量谱密度:单位是焦耳/Hz。针对能量有限的信号,能量信号傅里叶变换绝对值的平方就是能量谱(密度)【帕塞瓦尔定理】。

功率谱密度(PSD):单位是功率/Hz。针对功率有限信号的(能量有限信号用能量谱密度),所表现的是单位频带内信号功率随频率的变换情况。

功率谱和功率谱密度是不同的。若能量为E,时间为T,频带为F,则功率谱是表示为E/T;而功率谱密度是表示为E/T/F。所以它们的量纲和单位是不同的,表示了不同的物理量。但又由有常把功率谱当作功率谱密度的简称,所以经常容照耀混淆。

我们需要的是功率谱密度。

实现

Matlab提供多种方法求解PSD

互功率谱:cpsd

实信号的PSD分布通常关于频率0左右偶对称。这样的正负频率范围的功率谱密度称之为“双边”(Two-Side)PSD。当然我们也可以仅用正频率范围表示,这时候称之为“单边”(One-Side)PSD。

单/双边功率谱/声振之家

希黄变换

概念

EMD和HT

在这里插入图片描述

实现

信号处理——Hilbert变换及谱分析

 

时频分析

实现

MATLAB短时傅里叶变换函数spectrogram:spectrogram(data, window, noverlap, nfft,fs, 'yaxis'); 

小波变换:[coefs,f] = cwt(s,wave,Fs);

希黄变换

 

 

 

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
余成波数字信号处理Matlab实现代码,是指由余成波老师编写的关于数字信号处理的相关代码,主要使用Matlab进行实现。数字信号处理是指对离散时间信号进行处理和分析的技术,包括滤波、谱分析、时频分析等。在余成波老师的代码中,他可能会涉及到一些常用的数字信号处理算法和方法,例如离散傅里叶变换(DFT)、快速傅里叶变换(FFT)、滤波器设计、数字滤波等。 余成波老师的代码可能会有以下一些特点: 1. 高效性:余成波老师的代码通常会使用一些高效的算法和技巧,以提高计算速度和降低计算复杂度。 2. 可复用性:余成波老师的代码通常会设计得较为模块化,方便其他人在不同的应用场景中进行使用和扩展。 3. 高可读性:余成波老师的代码通常会注重代码的可读性和注释,方便其他人理解代码的思路和逻辑。 4. 实用性:余成波老师的代码通常会着重于解决实际问题,例如音频处理、图像处理等,因此他的代码对实际应用场景有很好的适应性。 总之,余成波数字信号处理Matlab实现的代码是经过余成波老师编写的,并使用Matlab实现的一些数字信号处理算法和方法的代码集合。这些代码通常具有高效性、可复用性、高可读性和实用性。对于数字信号处理Matlab编程感兴趣的人来说,这些代码是非常有价值的参考资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值