convert signal to morse code

7 ビュー (過去 30 日間)
daniel hoasov cohen
daniel hoasov cohen 2021 年 11 月 9 日
編集済み: daniel hoasov cohen 2021 年 11 月 9 日
hello,
as part of my self project, I'm trying to do morse encoder and decoder from sound,
I'm at the part before the decoder, I'm receiving the signal from the spectrogram and I convert it to a "digital signal" that is equal to the morse code but I don't know how to convert it to dash, dot, and space between words
I received a signal (for example) after some counter manipulations to filter the spectrogram signal
this plot its vector of [1x1499 values]
and the value of code after: - . . . . -
isn't good enough because I want it exactly like this: - . ... -
- . ... - = test (t=- ,e=. ,s=... ,t=- )
and of course, I want to do it generic and not specific for this example morse combination code.
  1 件のコメント
dpb
dpb 2021 年 11 月 9 日
That's a fairly clean-looking signal -- I think I'd try findpeaks to locate the peaks and the time delay between each. The peak magnitude >~80 --> dash and >~40 --> dot look to to be a good selection level. Finding the delays longer than the (illegible) time between peaks would appear to be all needed for the spaces.

サインインしてコメントする。

採用された回答

John D'Errico
John D'Errico 2021 年 11 月 9 日
As @dpb suggested:
  1. Use findpeaks to locate each peak. (Ignore the tiny ones. So anything that is significantly above the baseline.)
  2. The value of the peak will indicate if it is a dash or a dot. high peaks indicate dashes. Low peaks indicate dots.
  3. Next, check the time between each successive peak. You can almost think of this set of times as a new series. The time between peaks is fairly uniform, except when there is a space. A space is indicated when there is a large chunk of time between successive peaks.
Easy enough. Your job to write the code though.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by