前回、三上先生のサンプルプログラムで、甲子園中継が受信できたと喜びました。しかし1点疑問あり。サンプリング周波数は900kHz(ナイキスト周波数は450kHz)なのに、受信したNHK第1放送(東京)は594kHzです。なぜ受信できるの?ここで登場するのがアンダーサンプリングとBPF(バンド・パスフィルタ)です。
※「手習ひデジタル信号処理」投稿順 Indexはこちら
※教科書として読ませていただいておりますのは、以前同様、三上先生の以下の御本です。
CQ出版社『Armマイコンでつくるダイレクト・サンプリングSDR』
元記事はCQ出版社トラ技誌の2021年連載です。上記はそれをまとめたPDF版のダウンロードサイトへのリンクです。
ホンワカしたアンダーサンプリングの概念図
いままでは、ナイキスト周波数(サンプリング周波数Fsの2分の1)以上の信号はLPF(ローパスフィルタ)で落とし、Fs/2以下の信号についてデジタル信号処理を行ってきました。以下の図の一番上のような感じ(雰囲気デス。)
今回行っているアンダーサンプリングは上記の下2つの図のような感じではないかと。知らんけど。
- Fs/2より高い周波数の信号(Fsより低い)は、上記図の真ん中の図のように折り返されてFs/2以下の信号として観測される(Fs/2を挟んで線対称。)ここで必要な周波数帯をBPFで取り出し、それ以外を取り除けばこの信号を取り出せる。
- Fs/2より高い周波数の信号(Fs+1/2Fsより低い)は、上記図の下の図のように折り返されてFs/2以下の信号としてそのまま観測される。やはりBPF使うことで信号を取り出せる。
アンダーサンプリングを味わうための三上先生のプログラム
このアンダーサンプリングを実験するためのプログラム(PC用)を三上先生がダウンロードファイル内に潜ませてくれています(C#、ソース付き。)それをつかった体験学習?が以下のとおり。
Fs=10kHz、信号2kHz、ローパスフィルタ0-5kHz
Fs=10kHz、信号8kHz、ローパスフィルタ0-5kHz
次は信号がFs/2より高い8kHzとな。LPFは同じ。当然、元の信号は復元できませぬ。
Fs=10kHz、信号8kHz、バンドパスフィルタ5-10kHz
8kHzの信号に対して、Fs/2からFsを通過させるようなバンドパスフィルタに変えれば以下のように復元可能と。
Fs=10kHz、信号12kHz、バンドパスフィルタ10-15kHz
さらに Fs を上回る 12kHzの信号に対して、FsからFs+(Fs/2)を通過させるようなバンドパスフィルタを適用すれば復元可能と。うむう。
Fs=10kHz、信号7kHz+9kHz、バンドパスフィルタ5-10kHz
当然、7kHzと9kHzが重なったような信号でもFs/2からFsを通過させるようなバンドパスフィルタにより復元可能。
アンダーサンプリング、当たり前なような、黒魔術のような。でも、お陰でFs=900kHzでもNHK第1放送は受信できると。