主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

MATLABでのパワーの推定

时间(ps)とはとはとは有限有限のをベースベース,信号内内にに含ま含ま含まれているパワーパワーをを周波数数上上に分布分布ししたたたですです。。信号ののがであるがありますノイズキャンセリングやシステム同定といった信号信号处理处理アプリケーションアプリケーションははは,,周波数にに特化特化ししたた信号信号修正修正にに基づい基づいてててていますパワースペクトルスペクトルスペクトルスペクトルを推定です信号信号关する既知のにに応じパラメトリックパラメトリックアプローチアプローチまたはまたはノンパラメトリックノンパラメトリックノンパラメトリックアプローチアプローチがが法法としてとして使用使用さされ,,时间时间领域领域领域领域解析解析解析解析领域领域解析解析解析解析解析パラメトリックで,値を回帰モデルに适合させ一般一般的的ななノンパラメトリックノンパラメトリックノンパラメトリック手法手法はピリオドグラムですです。。パワーパワースペクトルスペクトルはは,,ウェルチウェルチ法法ややややフィルターバンクといったフーリエフーリエフーリエフーリエさがの场合フィルターバンクアプローチによって,より高い高いより正确正确ななノイズノイズノイズフロアをスペクトルスペクトル推定推定が生成生成され,,ウェルチ法法法正确正确ピークピークピークををををををををを示し利点に计算の増加追迹低速化いう代偿が伴います。これらこれらの方法方法についてについてについて光谱分析を参照ください。エントロピーのようその他手法を使用するすることもも。。。

MATLAB®では,DSP.SpectrumanalyzerSystem Object™を使用て的なのタイムスペクトル解析実行することができますますオブジェクト关数isnewdatareadyおよびgetspectrumdataを使用,データをアナライザー表示しそのデータをワークスペース変数にに格纳するする。。。dsp.spectrumestimator系统对象ををし后ででDSP.ArrayPlotオブジェクトをするスペクトルデータを表示こともできます。dsp.spectrumestimatorオブジェクトのスペクトルデータ。データをしてその后の处理处理で使用使用。。。

dsp.spectrumanalyzerををたスペクトル推定推定推定

信号のスペクトルをするには,DSP.SpectrumanalyzerSystem Object™をでき。入力信号のして,その変更が信号ののスペクトルにに影响影响をを

初期化

波ソース化してとスペクトルスペクトルを生成生成ししののパワーパワースペクトルスペクトルスペクトルをを表示表示表示表示表示ししししししししししししますますますますますますますますますますますますます。。。。。。。。。。。。。。。。。入力入力入力正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波正弦波入力正弦波入力入力入力入力入力入力入力入力入力入力入力22つのDSP.SineWave1000 hz正弦波正弦波を生成生成生成しししし,,,もうもうもうもうもうもうもうもうもうつつつつつつつつつはつ5000hz正弦波正弦波

FS = 44100;SineObject1 = DSP.SineWave(“ SampleSperFrame”,1024,“阶段”,10,...'采样率',fs,'频率',1000);SineObject2 = DSP.SineWave(“ SampleSperFrame”,1024,...'采样率',fs,'频率',5000);sa = dsp.Spectrumanalyalzer('采样率',fs,'方法',,,,“过滤库”,,,,...“ spectrumtype”,,,,'力量',,,,“ plotastwosidedspectrum”,错误的,...“频道名称”,{“输入的功率谱”},,'ylimits',[-120 40],“ Showlegend”,真的);

スペクトルアナライザーバンクアプローチ使用して信号パワースペクトルを计算します。

推定

ストリーミングを,のパワーを推定します。为了5000回回てて回の反复をします。。ででではは,,,,各正弦波1024サンプル(1フレーム)2つのつのを追加し。。结果としてとして得られる信号信号信号信号信号信号信号信号信号つ周波周波数数数数(1000 Hz 、1000 Hz,,,,,数つつ得得得られるられるられるられるられるられるられるられる信号信号信号信号信号信号信号信号信号信号付加しそのの处理で使用スペクトルを取得するに,オブジェクト关数isnewdatareadyおよびgetspectrumdataを使用し。変数数据にはに追加のとににスペクトルに表示されるスペクトルデータデータが含ま含まれて。。

data = [];为了iter = 1:7000 sinewave1 = sineObject1();SineWave2 = SineObject2();输入= SineWave1 + SineWave2;NoisyInput =输入 + 0.001*Randn(1024,1);SA(NoisyInput);如果sa.isnewdataready data = [data; getspectrumdata(sa)];结尾结尾释放(SA);

スペクトルアナライザー出力は,,,,つのつの明确なピークピーク(1000 Hz 、1000 Hzつ1つ5000Hz)ををできできでき。。

分解(rbw)ははスペクトルアナライザー分解最小の数帯域幅です。既定で,,,DSP.Spectrumanalyzerオブジェクトのrbwsourceプロパティは汽车に设定れ。この,,,,,ははは数スパン1024ののの比率です。両侧両侧スペクトルでではは,,$ \ frac {f_ {s}} {1024} $ですが片侧スペクトルでは$ \ frac {\ frac {f_ {s}} {2}}} {1024} $です。例スペクトルアナライザーは片侧スペクトル示していいます。そのそのその,,,,,,,,,,,(44100/2)/1024/1024 、21.53 Hzです

$ rbw $のこのすると,,,つのつの更新计算ののになな入力数数$ n_ {样品} $は,式で求め。。$ n_ {samples} = \ frac {f_ {s}}} {rbw} $

この例で,$ n_ {样品} $は44100/21.53 、2048サンプルサンプル。。

'自动'モードでさたた$ rbw $は,な数分解能提供します。

2 2つの数数を区别するには,,,,つつの数间间ののの距离少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも少なくとも$ rbw $4000 Hzです。ため,ピークピークと确认ことができます。。。。。。番目番目番目番目のの正弦波正弦波正弦波正弦波正弦波1015 Hzに数数数数数数数数2$ rbw $より小さくています。

释放(SineObject2);sineObject2.frequency = 1015;为了iter = 1:5000 sinewave1 = sineObject1();SineWave2 = SineObject2();输入= SineWave1 + SineWave2;NoisyInput =输入 + 0.001*Randn(1024,1);SA(NoisyInput);结尾释放(SA);

ピークはできません。

周波数を向上せるには,$ rbw $を1Hzまで减らし。。

sa.rbwsource ='财产';sa.rbw = 1;为了iter = 1:5000 sinewave1 = sineObject1();SineWave2 = SineObject2();输入= SineWave1 + SineWave2;NoisyInput =输入 + 0.001*Randn(1024,1);SA(NoisyInput);结尾释放(SA);

15 Hz离れ离れ离れ离れいるいるつのつのをできるようになりた。

周波数させる,时间低下し。周波数分解能分解能と时间分解能のの适切なバランスバランスををを,rbwsourceプロパティを汽车に変更し。

中にのプロパティまたはスペクトルアナライザーのプロパティを変更ててアナライザーアナライザーののの出力出力出力出力出力ににに影响影响影响影响を即座即座即座にににに确认确认确认确认することができことができことができますます。。の正弦波周波数変更します。

释放(SineObject2);sa.rbwsource ='汽车';为了iter = 1:5000 sinewave1 = sineObject1();如果(mod(iter,1000)== 0)释放(sineObject2);sineObject2.frequency = iter;SineWave2 = SineObject2();别的SineWave2 = SineObject2();结尾输入= SineWave1 + SineWave2;NoisyInput =输入 + 0.001*Randn(1024,1);SA(NoisyInput);结尾释放(SA);

2 2番目,中中番目正弦波のが反复反复にてて変化変化するするすることことことををできますます。。同様同様にに,シミュレーションシミュレーションのの実行実行実行実行中中にアナライザーアナライザーアナライザー任意任意任意を确认でき。

単位间のの変换

スペクトルアナライザー,パワー密度を指定ための次次ののののつつの単位が提供提供されれ。。[瓦/Hz][DBM/HZ],および[DBW/HZ]。対応パワーの単位は[瓦][DBM],および[DBW]RMSををののをををを[VRMS]または[DBV]で表示ことできます既定のスペクトルタイプは[DBM][パワー]です。

ワット単位dbw単位およびdbm単位単位の変换変换変换変换

[DBW]単位のは次求められます。

p d b w = 10 日志 10 (( p o w e r 一世 n w 一种 t t / 1 w 一种 t t

[DBM]単位のは次求められます。

p d b m = 10 日志 10 (( p o w e r 一世 n w 一种 t t / 1 m 一世 l l 一世 w 一种 t t

1 vのの信号の,,,[瓦]単位でスペクトルのは次でられ。。。

p w 一种 t t s = 一种 2 / 2 p w 一种 t t s = 1 / 2

この例はこのパワーパワーはははは等しくなります。対応対応するするするする単位単位単位単位パワーは次次られ

p d b m = 10 日志 10 (( p o w e r 一世 n w 一种 t t / 1 m 一世 l l 一世 w 一种 t t p d b m = 10 日志 10 (( 0.5 / 10 - 3

26.9897 dbmににに等しくなります。。の検出でこの値を确认はははは[ツール][测定][ピークの]をクリックし。

ホワイト信号,ははすべての周波数でフラットになりなります。このこのこの例例例ののののの[0 fs/2],単位幅あたりパワー(pUnitBandWidth)は1E-4です。范囲全体でのワット単位のの合计は次でられ。。。

p w H 一世 t e n o 一世 s e = p n 一世 t b 一种 n d w 一世 d t H * n m b e r o F F r e e n C y b 一世 n s ,,,, p w H 一世 t e n o 一世 s e = (( 10 - 4 * (( F s / 2 r b w ,,,, p w H 一世 t e n o 一世 s e = (( 10 - 4 * (( 22050 21.53

rbwのの全全全に対する比率ですですです。场合场合,,全全帯域帯域帯域幅幅幅幅幅幅はははははははサンプリングサンプリングサンプリングサンプリングレートレートレートレートレートのののののの半分半分半分のののワット0.1024 wですdbm単位単位単位単位単位単位単位単位ではは,,ホワイトホワイトノイズパワーパワー10*log10(0.1024/10^-3)20.103 dbmにに等しく等しく等しくなりなります。。。。。。

DBFS単位単位単位のパワー変换変换変换

スペクトル単位を[DBFS]に设定,フル(FullScaleSource)を[汽车]に设定する,[DBFS]単位のはのよう计算されます。

p d b F s = 20 Å 日志 10 (( p w 一种 t t s / F l l _ s C 一种 l e

。ここは以下の。。

  • p瓦特はワット単位パワー。

  • double floatのので,,,

  • 固定小数またはの信号では,,,,scははは表现最大の。

手动のスケールをした(FullScaleSource[财产]に设定),[DBFS]単位のは次求められます。

p F s = 20 Å 日志 10 (( p w 一种 t t s / F s

ここで,FS全幕プロパティでさたフルスケーリング系数。。

1 vのの信号の,,,[瓦]単位でスペクトルのは次でられ。。。

p w 一种 t t s = 一种 2 / 2 p w 一种 t t s = 1 / 2

この例はパワーパワーはははははは等しく等しく正弦波最大入力入力信号信号信号ははははははははははははははですですですです。対応するするするするするする

p F s = 20 Å 日志 10 (( 1 / 2 / 1

ここ-3.0103ににになりこのをスペクトルアナライザーで确认するするには,,次のコマンドコマンドを。。

FS = 1000;%采样频率sinef = dsp.SineWave('采样',fs,'SampleSperFrame',100);范围= dsp.spectrumanalyzer('采样',fs,...'spectrumunits','dbfs','plotAstwoSwoSedspectrum',false)%% for II = 1:100000 xsine = sinef();范围(XSINE)端
次に,[ツール][测定][ピークの]をクリックし。

dbm単位のからvrms単位rmsへへへ変换

[DBM]単位のは次求められます。

p d b m = 10 日志 10 (( p o w e r 一世 n w 一种 t t / 1 m 一世 l l 一世 w 一种 t t

rmsの电圧次求められます。。

v r m s = 10 p d b m / 20 10 - 3

前ので,,DBMは26.9897dbmとと。RMSは次ようにされます。

v r m s = 10 26.9897 / 20 0.001

0.7071と等しくます。

この値确认には次を行います。

  1. [タイプ][RMS]に変更し。

  2. [ツール][测定][ピークの]をクリックてピークのを开きます。

dsp.spectrumestimatorををたパワー推定推定

あるいは,dsp.spectrumestimator系统对象をを信号のパワースペクトルを计算ことできます。スペクトル推定推定器ののの出力を取得取得てデータデータをを保存保存し,その估计ライブラリ内他オブジェクトを表示するには,,,コマンドコマンドコマンドコマンドコマンドでで帮助DSPと入力して估计をクリックし。

初期化

DSP.Spectrumanalyzerのにの节と同じソースをてて,パワーパワーパワースペクトル推定しますますます。。。。。入力入力入力入力入力入力正弦波正弦波正弦波正弦波正弦波正弦波正弦波はははははははははははははははははははははははははははははははははははははははははははははははははははははははははははははdsp.spectrumestimatorを初期,バンクアプローチを使用てのパワースペクトルをします。DSP.ArrayPlotオブジェクトをて信号パワースペクトルをし。。。

FS = 44100;SineObject1 = DSP.SineWave(“ SampleSperFrame”,1024,“阶段”,10,...'采样率',fs,'频率',1000);SineObject2 = DSP.SineWave(“ SampleSperFrame”,1024,...'采样率',fs,'频率',5000);specest = dsp.spectrumestimator('方法',,,,“过滤库”,,,,...“ Powerunits”,,,,'dbm',,,,'采样率',fs,'频率范围',,,,'片面');arrplot = dsp.ArrayPlot(“ plottype',,,,'线',,,,“频道名称”,{“输入的功率谱”},,...'ylimits',[-80 30],'xlabel',,,,“每帧样品数量”,,,,'ylabel',,,,...“电力(DBM)”,,,,'标题',,,,“相对于样品的单方面功率谱”);

推定

ストリーミングを,のパワーを推定します。为了5000回回てて回の反复反复しますます。。ででははは,,,1024サンプル(1フレーム)のガウスを信号に付加し。。

为了iter = 1:5000 sinewave1 = sineObject1();SineWave2 = SineObject2();输入= SineWave1 + SineWave2;NoisyInput =输入 + 0.001*Randn(1024,1);psOutput = Specest(NoisyInput);ARRPLOT(PSOUTPUT);结尾

フィルターバンク使用とスペクトル推定分解はなり,,ピークはスペクトル漏れのないない正确正确なものにに

X轴をして周波表现表现

既定はプロットはフレームのサンプル数についてのパワーを表示表示。。。。。。。。。轴轴轴轴轴の点点のの数数数ははは入力入力フレームフレームのの长长长ささとと等しく[0 fs/2]のは,,场合场合,周波はののので変化しますます。。。両侧両侧両侧両侧両侧両侧両侧スペクトルスペクトルスペクトルスペクトルスペクトルスペクトルののののののの场合场合场合[-fs/2 fs/2 fs/2]のをサンプル周波数に変换するに以下を実行し。。

  • [コンフィギュレーション]アイコンをクリックます。

  • 片侧スペクトル场合--[メイン]タブで,[样本增量]$ fs/framelength $に设定し,[xオフセット]を0ににします。

  • 両侧スペクトル场合--[メイン]タブで,[样本增量]$ fs/framelength $に设定し,[xオフセット]$ -FS/2 $に设定し。

この例はスペクトルは片侧である,,[样本增量][xオフセット]はそれぞれ44100/1024と0にに设定ます。ををををを単位単位単位指定する[样本增量]を44.1/1024に设定ます。。

ArrPlot。s一种mpleIncrement = (Fs/1000)/1024; ArrPlot.XLabel =“频率(kHz)”;arrplot.title =“相对于频率的单方面功率谱”;为了iter = 1:5000 sinewave1 = sineObject1();SineWave2 = SineObject2();输入= SineWave1 + SineWave2;NoisyInput =输入 + 0.001*Randn(1024,1);psOutput = Specest(NoisyInput);ARRPLOT(PSOUTPUT);结尾

ライブ处理

dsp.spectrumestimatorのにスペクトルデータが含まれて,后后で使用使用できできますますます。。このデータデータはリアルタイムでで处理するすることことも,

关连するトピック