matlab三相功率测量不对,matlab中welch法出处理信号的功率谱怎么看着不对呢?

我用welch法对一个震动信号进行分析,我看到其他人做的功率谱分析时候,功率谱(图像的y轴)都是负的,而且波动很大。而我做的结果却不是这样的。不知道原因出到哪里。跪求众大神,帮忙。谢谢了。求大家帮我找找问题啊。我已经上传了结果和原始数据还有程序。

下边是我的程序:

C=textread('zhendong.txt','','headerlines',200);

Fs=1024;

nfft=512;

window=boxcar(100); %矩形窗

window1=hamming(100); %海明窗

window2=blackman(100); %blackman窗

noverlap=60; %数据无重叠

range='half'; %频率间隔为[0 Fs/2],只计算一半的频率

[Pxx,f]=pwelch(C(:,2),window,noverlap,nfft,Fs,range);

[Pxx1,f]=pwelch(C(:,2),window1,noverlap,nfft,Fs,range);

[Pxx2,f]=pwelch(C(:,2),window2,noverlap,nfft,Fs,range);

plot_Pxx=10*log10(Pxx);

plot_Pxx1=10*log10(Pxx1);

plot_Pxx2=10*log10(Pxx2);

subplot(2,2,1);

plot(f,plot_Pxx);

title('矩形窗');

xlabel('频率/Hz');ylabel('功率谱/dB');

subplot(2,2,2);

plot(f,plot_Pxx1);

title('海明窗')

xlabel('频率/Hz');ylabel('功率谱/dB');

subplot(2,2,3);

plot(f,plot_Pxx2);

title('blackman窗')

xlabel('频率/Hz');ylabel('功率谱/dB');

subplot(2,2,4);

plot(C(:,1),C(:,2));

title('原始信号')

xlabel('时间t');ylabel('复制');

we.png

(38.46 KB, 下载次数: 0)

2014-9-16 22:34 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

结果图

0019600ed0efd8678da6dda3dc9fff40.png

a70cbf5f56cb187f20fb09bae08ed3de.gif

2014-9-16 22:36 上传

点击文件名下载附件

124.19 KB, 下载次数: 10

原始数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: csd函数是MATLAB用于估计两个信号的互功率谱密度的函数。它基于Welch方法,这是一种常用的频谱估计方法。 互功率谱密度是用于分析两个信号之间的相关性和相互影响的一种频域表示方法。它可以帮助我们了解信号之间的关系以及它们如何互相作用。 csd函数基于Welch法利用频谱平均的思想来估计互功率谱密度。Welch方法将信号分成若干段,然后对每个段进行傅里叶变换,最后将这些段的频谱密度估计平均起来,得到最终的互功率谱密度。 使用csd函数可以传入两个信号作为输入参数,还可以指定一些其他参数,如段数、重叠率、窗函数等。csd函数会根据输入的信号和参数进行频谱估计,并返回两个信号的互功率谱密度。 互功率谱密度的结果可以使用MATLAB的plot函数进行可视化展示,可以观察信号之间的相互作用情况。 总而言之,MATLAB的csd函数利用Welch方法来估计两个信号的互功率谱密度,为信号分析和相互作用研究提供了一种便捷的工具。 ### 回答2: csd函数是MATLAB的一个函数,它用于估计两个信号的互功率谱密度。这个函数使用的是Welch法,它是一种非参数估计方法。所谓非参数估计方法,是指不依赖于任何关于信号统计特性的先验信息。 Welch法是一种经典的信号谱密度估计方法。它首先将两个信号分成多个段,每个段的长度是固定的。然后对每个段进行窗函数加窗,并对窗口后的段进行傅里叶变换。最后将每个段的幅值平方求平均,得到每个频率点上的互功率谱密度值。 在MATLAB,我们可以使用csd函数来实现这个过程。csd函数接受两个信号作为输入,并根据用户指定的参数进行处理。参数可以包括段长度、窗函数类型等。 csd函数将返回一个功率谱密度估计的结果。这个结果是一个复数矩阵,每个点表示对应频率上的互功率谱密度值。 使用csd函数可以方便地估计两个信号的互功率谱密度,我们可以使用这些估计结果进行信号分析、滤波等操作。这样可以帮助我们更好地理解信号的特性,提高信号处理的效果。 总结起来,MATLAB的csd函数利用Welch法对两个信号进行互功率谱密度估计。这个函数的使用简单方便,可以帮助我们更好地理解和处理信号。 ### 回答3: 在MATLAB,函数csd可以利用Welch法来估计两个信号的互功率谱密度。首先,csd函数需要两个输入信号,假设分别为x和y。csd函数使用Welch法来对输入信号进行分段,并使用傅里叶变换来计算每个段的功率谱密度。Welch法是一种经典的频谱估计方法,它可以有效地减少估计的方差。 在使用csd函数时,可以通过设置一些参数来控制Welch法的估计过程。其,重要的参数包括窗函数、重叠段数和每段的样本数。窗函数的选择可以影响估计结果的频率分辨率和平滑程度。常用的窗函数有汉宁窗、矩形窗和汉明窗等。重叠段数和每段的样本数可以控制估计的分辨能力和计算复杂度。 csd函数的输入输出都是复数形式的。输出是一个2维数组,表示两个信号之间的互功率谱密度。其,每一行表示一个频率点,每一列表示一个段的估计结果。根据需要,可以使用plot函数将频谱密度可视化,以便更直观地分析信号之间的关系。 需要注意的是,csd函数只能对平稳信号进行功率谱密度的估计。对于非平稳信号,可以通过对信号进行分段来获得局部的功率谱密度估计。此外,对于非平稳信号,也可以使用频时分析方法,如短时傅里叶变换(STFT)或连续小波变换(CWT)来获得更详细的分析结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值