このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
时间领域信号のスペクトル(ps)とは,有限均のをに,信号内にれいるパワーを数上に含ましたです。信号ものです。信号の周波。ががであるであるであるがありありますます。ノイズキャンセリングやシステムといったといった多重く信号监位アプリケーション,周波数に特化した信号修にスペクトルててます。信号を关键词无关紧要。たとえばとして使使れ,时间领域解析れれにづいて推定れ解析にて推定がわにづいて推定れれに。たとえば,一般的なパラメトリックパラメトリック法で,観测値を自己回帰モデルにさせますピリオドグラムにはさはピリオドグラムピリオドグラムですは,ウェルチ法やバンクバンクフーリエ変やを使使使ををますますてされます。比较长さが短い信号表号利用方法のについてはがーます伴い伴い伴います。光谱分析を参照してください。最大エントロピー法のようなその他の手法を使用することもできます。
MATLAB®ではdsp.spectrumanalyzer.
系统对象™を使用して動的な信号のリアルタイムスペクトル解析を実行することができます。オブジェクト関数isNewDataReady
およびgetSpectrumData
あるいは,そのデータをてに,そのデータをスペクトルに表示,dsp。S.P.E.CT.R.你M.Estimator
系统对象を使用した後でdsp.arrayplot.
オブジェクトを使用することでスペクトルデータを表示することもできます。dsp。S.P.E.CT.R.你M.Estimator
オブジェクトの出力はスペクトルデータです。このデータを取得して,その後の処理で使用できます。
信号のパワースペクトルを表示するには,dsp.spectrumanalyzer.
系统对象™を使用できます。入力信号のダイナミクスを変更して,その変更が信号のパワースペクトルに与える影響をリアルタイムに確認することができます。
初期化
正弦波ソースを初期化して正弦波とスペクトルアナライザーを生成し,信号のパワースペクトルを表示します。入力正弦波は2つの周波数(1つは1000 Hz,もう1つは5000 Hz)をもちます。2つのdsp。S.一世N.E.W.一种ve
オブジェクトを作用成します.1つは1000 hz正弦波生成し,もう1つは5000 hz正弦波生成するオブジェクト。
FS = 44100;sineObject1 = dsp.sinewave('samplesperframe', 1024,“PhaseOffset”10...“SampleRate”,fs,'频率', 1000);Sineobject2 = dsp。SineWave ('samplesperframe', 1024,...“SampleRate”,fs,'频率',5000);sa = dsp.spectrumanalyzer(“SampleRate”,fs,“方法”那滤波器组的那...“SpectrumType”那“权力”那“PlotAsTwoSidedSpectrum”,错误的,...“ChannelNames”,{'输入的功率谱'},'ylimits',[ - 120 40],'ShowLegend',真正的);
スペクトルアナライザーはフィルターバンクアプローチを使用して,信号のパワースペクトルを計算します。
推定
ストリーミングを行い,信号のパワースペクトルを推定します。为了
ループを作成して5000回の反復を実行します。各反復では,各正弦波の1024サンプル(1フレーム)をストリーミングして,各フレームのパワースペクトルを計算します。入力信号を生成するために,2つの正弦波を追加します。結果として得られる信号は2つの周波数(1つは1000 Hz,もう1つは5000 Hz)をもつ正弦波です。ゼロ平均,標準偏差0.001のガウスノイズを付加します。その後の処理で使用するスペクトルデータを取得するには,オブジェクト関数isNewDataReady
およびgetSpectrumData
を使用します。変数数据
には,スペクトルに関する追加の統計と共にスペクトルアナライザーに表示されるスペクトルデータが含まれています。
数据= [];为了Iter = 1:7000 sininewave1 = sinineobject1 ();Sinewave2 = Sineobject2 ();Input = Sinewave1 + Sinewave2;NoisyInput = Input + 0.001*randn(1024,1);SA(NoisyInput);如果SA。一世S.NewDataReady data = [data;getSpectrumData(SA)];结尾结尾释放(SA);
スペクトルアナライザーの出力では,2つの明確なピーク(1つは1000 Hz,もう1つは5000 Hz)を確認できます。
分解能帯域幅(RBW)はスペクトルアナライザーによって分解できる最小の周波数帯域幅です。既定では,dsp.spectrumanalyzer.
オブジェクトのRBWSource
プロパティは汽车
にに设定されますモードモードで,rbwは周波数号1024の比率です。両侧両侧では,このではですが,片侧スペクトルではです。この例のスペクトルアナライザーは片側スペクトルを示しています。そのため,RBWは(44100/2)/ 1024,つまり21.53赫兹です。
のこの値を使使使用すると,1つのスペクトルの更新を计算するのに必要な力は,次の式で求められます。
この例では,は44100/ 21.53,つまり2048サンプルです。
'自动'モードモードで计算计算れれは,适切な周波数分解能提供します。
表示される2つののののをには,2つの周波数号のが少なくとも少なくともでなければなりん。このこのではなり。より大厦4000 Hzです。そのため,ピークをはっきりと确认ことができます.2番目の正弦波のを1015 hzに変更し.2つの周波与数码の差はより小さくなっています。
释放(Sineobject2);sineObject2.frequency = 1015;为了Iter = 1:50 000 sininewave1 = sinineobject1 ();Sinewave2 = Sineobject2 ();Input = Sinewave1 + Sinewave2;NoisyInput = Input + 0.001*randn(1024,1);SA(NoisyInput);结尾释放(SA);
ピークは区别できません。
周波数分解能を向上させるには,を1 Hzまでます。
sa.rbwsource ='财产';SA。R.B.W.=1;为了Iter = 1:50 000 sininewave1 = sinineobject1 ();Sinewave2 = Sineobject2 ();Input = Sinewave1 + Sinewave2;NoisyInput = Input + 0.001*randn(1024,1);SA(NoisyInput);结尾释放(SA);
ズームすると15赫兹離れている2つのピークを区別できるようになりました。
周波数分を,时间分别分享时分分别。RBWSource
プロパティを汽车
に変更します。
ストリーミング中に,入力のプロパティスペクトルアナライザーのプロパティ変更してたとえばアナライザーのに确认ことができ影响即座即座にが确认ことができことができことができを即座インデックスががことができことができことができを即座がががにに倍であるときときににに倍であるときときにににであるであるときときににの倍であるときときににの正弦波の周波数を変更します。
释放(Sineobject2);sa.rbwsource =“汽车”;为了Iter = 1:50 000 sininewave1 = sinineobject1 ();如果(mod(Iter,1000) == 0)释放(Sineobject2);Sineobject2。FR.E.问:你E.N.Cy=Iter; Sinewave2 = Sineobject2();别的sinewave2 = sineObject2();结尾Input = Sinewave1 + Sinewave2;NoisyInput = Input + 0.001*randn(1024,1);SA(NoisyInput);结尾释放(SA);
ストリーミングループの実行,2番目の正当波のが反复値値従って変ことことをできますますにことををできます。同様同様,シミュレーションの実确认できスペクトルアナライザーのの任意プロパティをしてててて,それそれにするする出のてのててて対応する出ののを确认できます。
スペクトルアナライザーでは,パワースペクトル密度を指定するための次の3つの単位が提供されています。[瓦特/赫兹]
那(dBm / Hz)
,および[dbw / hz]
。対応するパワーの単位は[瓦特]
那[DBM]
,および(瓦分贝)
です。电气工学アプリケーションアプリケーションで,信号のrmsを(Vrms)
または(伏特分贝)
で表示することもできます。既定のスペクトルタイプは[DBM]
の[パワー]です。
(瓦分贝)
単位のパワーは次で求められます。
[DBM]
単位のパワーは次で求められます。
振幅が1 Vの正弦波信号の場合,[瓦特]
単位での片側スペクトルのパワーは次で求められます。
この例では,このパワーは0.5 Wに等しくなります。対応するdBm単位のパワーは次で求められます。
ここで,パワーは26.9897 dBmに等しくなります。ピークの検出でこの値を確認するには,[ツール]那[測定値]那[ピークピークの]をクリックします。
ホワイトノイズ信号の場合,スペクトルはすべての周波数でフラットになります。この例のスペクトルアナライザーは,[0 f / 2]の範囲の片側スペクトルを表示します。分散1军医のホワイトノイズ信号の場合,単位帯域幅あたりのパワー(PUnitaBandWidth.1)は军医です。周波数範囲全体でのワット単位のホワイトノイズの合计パワーは次で求められます。
周波数ビンの数は,全帯域幅のRBWに対する比率です。片側スペクトルの場合,全帯域幅はサンプリングレートの半分です。この例のRBWは21.53赫兹です。これらの値を使用すると,ワット単位でのホワイトノイズの合計パワーは0.1024 Wです。dBm単位では,ホワイトノイズのパワーは10 * log10(0.1024 / 10 ^ -3)を使用して計算することができ,20.103 dBmに等しくなります。
スペクトル単位を[dbfs]
に設定し,フルスケール(FullScaleSource
)を(汽车)
に設定すると,[dbfs]
単位のパワーは次のように计算されます。
。ここここでははののとおりとおり
P.瓦特
はワット単位のパワー。
双および浮动の信号では,Full_Scaleは入力信号の最大値。
固定小数点または整数の信号では,Full_Scaleは表现できる最大の値。
手動のフルスケールを指定した場合(FullScaleSource
を[财产]
に设定),[dbfs]
単位のパワーは次で求められます。
ここで,FS.
は全档
プロパティで指定されたフルスケーリング系数です。
振幅が1 Vの正弦波信号の場合,[瓦特]
単位での片側スペクトルのパワーは次で求められます。
この例では,このパワーは0.5 wに等しく,正弦波の毛大大力信号は1 vです。
ここで,パワーパワー-3.0103に等しくなります。この値をスペクトルアナライザーで确认には,次のコマンドを実実ししし。
Fs = 1000;%采样频率sinef = dsp.SineWave('SampleRate',Fs,'SamplesPerFrame',100);范围= dsp.SpectrumAnalyzer(“SampleRate”,Fs,…'SpectrumUnits','dBFS','PlotAsTwoSidedSpectrum',false) %% for ii = 1:10万xsin = sinef();范围(xsine)结束
[DBM]
単位のパワーは次で求められます。
RMSの電圧は次で求められます。
前の例では,PdBmは26.9897dbmと同等です.vrms.は次のように計算されます。
0.7071と等しくなります。
この値を确认するには,次を行います。
[タイプ]を(RMS)
に変更します。
[ツール]那[測定値]那[ピークピークの]をクリックして,ピークの検出を開きます。
あるいはdsp。S.P.E.CT.R.你M.Estimator
系统对象を使用して信号のパワースペクトルを計算することもできます。スペクトル推定器の出力を取得してデータを保存し,その後の処理で使用することができます。估计
ライブラリ内の他のオブジェクトを表示するには,MATLAB®コマンドプロンプトで帮助DSP.
と入力して估计
をクリックします。
初期化
dsp.spectrumanalyzer.
の使用に関する前の節と同じソースを使って,パワースペクトルを推定します。入力正弦波は2つの周波数(1つは1000 Hz,もう1つは5000 Hz)をもちます。dsp。S.P.E.CT.R.你M.Estimator
を初期化し,フィルターバンクアプローチを使用して信号のパワースペクトルを计算します。dsp.arrayplot.
オブジェクトを使用して信号のパワースペクトルを表示します。
FS = 44100;sineObject1 = dsp.sinewave('samplesperframe', 1024,“PhaseOffset”10...“SampleRate”,fs,'频率', 1000);Sineobject2 = dsp。SineWave ('samplesperframe', 1024,...“SampleRate”,fs,'频率',5000);spolest = dsp.spectrumestimator(“方法”那滤波器组的那...'PowerUnit'那'dbm'那“SampleRate”,fs,“FrequencyRange”那'片面');arrplot = dsp.arrayplot('plottype'那'线'那“ChannelNames”,{'输入的功率谱'},...'ylimits',[ - 80 30],'xlabel'那“每帧样本数目”那“YLabel”那...“权力(dBm)”那“标题”那'单面功率谱相对于样本');
推定
ストリーミングを行い,信号のパワースペクトルを推定します。为了
ループを作物して,5000回の反复を実します。各各では,各正弦波の1024サンプル(1フレーム)ををして,各フレームのパワーを计算しゼロ平等,标准偏差0.001のガウスノイズをを力信号全部加入します。
为了Iter = 1:50 000 sininewave1 = sinineobject1 ();Sinewave2 = Sineobject2 ();Input = Sinewave1 + Sinewave2;NoisyInput = Input + 0.001*randn(1024,1);PSoutput =规范(NoisyInput);ArrPlot (PSoutput);结尾
フィルターバンクアプローチを使用すると,スペクトル推定の分解能は高くなり,ピークはスペクトル漏れのない正确なものになります。
X軸を変換して周波数を表現
既定では,配列プロットはフレームごとのサンプル数についてのパワースペクトルデータを表示します.X轴の点の数は入力フレームの长さと等しくなります。スペクトルアナライザーは周波数に対してパワースペクトルデータをプロットしますスペクトルスペクトルの合,周波数は[0 fs / 2]の范囲でのし。をサンプルベースから周波数ベースに変换するには,以下を実行します。
[コンフィギュレーションプロパティ]アイコンをクリックします。
片側スペクトルの場合-[メイン]タブで,(增量样本)をに設定し,[xオフセット]を0に設定します。
両側スペクトルの場合-[メイン]タブで,(增量样本)をに設定し,[xオフセット]をに設定します。
この例では,スペクトルは片侧であるため,(增量样本)と[xオフセット]はそれぞれ44100/1024と0に設定されます。周波数をkHz単位で指定するには,(增量样本)を44.1/1024に設定します。
ArrPlot。S.一种M.P.L.E.Increment = (Fs/1000)/1024; ArrPlot.XLabel =的频率(赫兹);arrplot.title =“相对于频率的单面功率谱”;为了Iter = 1:50 000 sininewave1 = sinineobject1 ();Sinewave2 = Sineobject2 ();Input = Sinewave1 + Sinewave2;NoisyInput = Input + 0.001*randn(1024,1);PSoutput =规范(NoisyInput);ArrPlot (PSoutput);结尾
ライブ処理
dsp。S.P.E.CT.R.你M.Estimator
。