1

これを Signal Processing StackExchange に投稿しようとしましたが、人口がまばらであるため、ほとんど役に立ちませんでした。私は MATLAB を使用しているので、ここの誰かが同様に役立つことを願っています。

2 つの「コンポーネント」を持つサンプル信号を設計しようとしています。信号が左上の図のようになり、右側に 2 つのコンポーネントが表示されます。時間周波数スペクトルが左下に表示されます。

信号と周波数スペクトル

確かに、信号に関する私の知識は標準に達していませんが、チャープ、sinc、および正弦関数の組み合わせをいじろうとして数時間後でも、私が考えていたものを正確に再現することはできませんでした. 次のコードは、私が達成しようとしているものと少し似ています。

fs = 5000;
x0 = 1;
t = -x0:1/fs:x0;
yi = cos(t).*sinc(t).*chirp(t,150,0.2,250,'quadratic'); 
yj = cos(t).*sinc(t).*chirp(t,50,0.4,150,'quadratic'); 
subplot(2,2,1)
plot(t,yi+yj)
subplot(2,2,2)
plot(t,yj)
subplot(2,2,3)
spectrogram(yi+yj,512,511,256,fs,'yaxis')
subplot(2,2,4)
plot(t,yi)

これにより、次のシグナルが得られます。

私の試み

これは良いことですが、まだ満足のいくものではありません。そこで今日は、チャープと sinc/gauspuls 関数がどのように機能するかを理解するためのより徹底的なアプローチを試みましたが、背景をあまり理解していなくても、少しコツをつかんでいます。

私の理解では、ガウスパルスは振幅が減少する一定の周波数を持っています。チャープには、t0 と t1 の周波数として指定できる連続周波数があり、その間で補間されます。私が理解していないのは、これがスペクトログラムでうまく表示されない理由です。

次の形式のチャープを作成するとします。

fs = 1000;
scope = 10;
t = -scope:1/fs:scope;
yj = chirp(t,0.5,10,2,'quadratic');
plot(t,yj)

スペクトログラムは 0.5Hz から 2Hz の間の周波数スペクトルを生成するリッジを示すと考えましたが、スペクトログラムは 500Hz を超えるまでの y 軸の解像度を示しています。

サンプルチャープ

このような信号のより明確なスペクトログラムを取得する方法を誰かに説明してもらえますか?

さらに、上部に投稿したスペクトログラムの上部リッジのこの「先細り」効果を視覚化するにはどうすればよいですか?

4

0 に答える 0