频谱测量---测量信号的功率
  ObOIMSSu7IyV 2023年12月07日 15 0


频谱测量

通道功率、带宽、均值频率、中位数频率、谐波失真。

使用 obw 和 powerbw 查找信号的 90% 占用带宽和 3-dB 带宽。计算功率谱的均值或中位数频率。估计给定频带上的功率。测量谐波失真。估计瞬时带宽、瞬时频率、频谱熵和谱峭度。

函数

功率和带宽

bandpower

Band power

enbw

Equivalent noise bandwidth


instbw

Estimate instantaneous bandwidth (自 R2021a 起)

instfreq

Estimate instantaneous frequency

meanfreq

Mean frequency

medfreq

Median frequency

obw

Occupied bandwidth

pentropy

Spectral entropy of signal

pkurtosis

Spectral kurtosis from signal or spectrogram

powerbw

Power bandwidth

signalFrequencyFeatureExtractor

Streamline signal frequency feature extraction (自 R2021b 起)

谐波测量

sfdr

Spurious free dynamic range

signalTimeFeatureExtractor

Streamline signal time feature extraction (自 R2021a 起)

sinad

Signal to noise and distortion ratio

snr

Signal-to-noise ratio

thd

Total harmonic distortion

toi

Third-order intercept point

测量信号的功率

       信号的功率是其时域样本的绝对值平方和除以信号长度,或者等效地表示为其 RMS 水平的平方。使用函数 bandpower 只需一步即可估算信号功率。

       考虑嵌入在高斯白噪声中的单位啁啾信号,采样率为 1 kHz,采样时间为 1.2 秒。该线性调频的频率在一秒内从初始值 100 Hz 增加到 300 Hz。噪声具有方差 0.012。重置随机数生成器以获得可重现的结果。

N = 1200;
Fs = 1000;
t = (0:N-1)/Fs;

sigma = 0.01;
rng('default')

s = chirp(t,100,1,300)+sigma*randn(size(t));

验证 bandpower 给出的功率估计值是否与定义相符。

pRMS = rms(s)^2


pRMS = 0.5003


powbp = bandpower(s,Fs,[0 Fs/2])


powbp = 0.5005


       使用 obw 函数来估计包含 99% 信号功率的频带宽度、频带的下限和上限以及频带中的功率。该函数还绘制频谱估计值,并对占用带宽进行注释。

obw(s,Fs);

频谱测量---测量信号的功率_matlab

[wd,lo,hi,power] = obw(s,Fs);
powtot = power/0.99


powtot = 0.5003


非线性功率放大器的输入为 60 Hz 正弦波,输出为具有三阶失真的含噪信号。信号在 3.6 kHz 下采样 2 秒。

Fs = 3600;
t = 0:1/Fs:2-1/Fs;
x = sin(2*pi*60*t);
y = polyval(ones(1,4),x) + randn(size(x));

由于放大器引入三阶失真,输出信号应该具有:

  • 与输入具有相同频率 (60 Hz) 的基波分量。
  • 两个谐波 - 其频率分量为输入频率的两倍和三倍,即分别为 120 和 180 Hz。

使用 thd 函数来可视化信号频谱。为基波和谐波添加注释。

频谱测量---测量信号的功率_Power_02

使用 bandpower 确定基波和谐波中存储的功率。以总功率的百分比和分贝表示每个值。将这些值显示为一个表。

pwrTot = bandpower(y,Fs,[0 Fs/2]);

Harmonic = {'Fundamental';'First';'Second'};

Freqs = [60 120 180]';

Power = zeros([3 1]);
for k = 1:3
    Power(k) = bandpower(y,Fs,Freqs(k)+[-10 10]);
end

Percent = Power/pwrTot*100;

inDB = pow2db(Power);

T = table(Freqs,Power,Percent,inDB,'RowNames',Harmonic)


T=3×4 table Freqs Power Percent inDB _____ _______ _______ _______ Fundamental 60 1.5777 31.788 1.9804 First 120 0.13141 2.6476 -8.8137 Second 180 0.04672 0.9413 -13.305


另请参阅

bandpower | pow2db | pwelch | snr


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月07日 0

暂无评论

推荐阅读
ObOIMSSu7IyV