符​号付固定小数点の​16​進数をフーリエ​変換する方法を教えて​ください。

2 ビュー (過去 30 日間)
K_S_
K_S_ 2022 年 7 月 25 日
コメント済み: K_S_ 2022 年 7 月 26 日
下記のような符​号付固定小数点の16​進数のfiオブジェクトy_fiをフーリエ変換する方法を教えてください。
fs = 1000e3;
Ts = 1/fs;
tsim = 0.001;
n = floor(tsim/Ts);
t = (0:n-1)'*Ts;
y = zeros(n,1);
fin = 1000;
a = 1;
y(1:end) = a*sin(2*pi*fin*t);
T = numerictype(true,64,60);
F = fimath('OverflowMode', 'saturate',...
'RoundMode', 'round',...
'SumMode', 'FullPrecision',...
'ProductMode', 'FullPrecision',...
'MaxProductWordLength', 256,...
'MaxSumWordLength', 256);
y_fi = fi(y,T,F);
  2 件のコメント
Hernia Baby
Hernia Baby 2022 年 7 月 25 日
すみませんが2点教えてください
double型に戻してFFTを行うことは大丈夫でしょうか?
②ここでいうFFTとは周波数×パワースペクトラムでしょうか?
 それとも複素数に変換されたものでしょうか?
K_S_
K_S_ 2022 年 7 月 25 日
ご質問ありがとうございます。
①double型に戻さずFFTを行いたいです。
②周波数×パワースペクトラムです。
以上、よろしくお願いいたします。

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

回答 (1 件)

Hernia Baby
Hernia Baby 2022 年 7 月 26 日
①について
 すみませんが、double型に戻さないでのスペクトル解析はわかりませんでした。
 HFFTという手法も探ってみましたが、16進数でのFFTではなさそうです。
②について
 double型でいいのなら1行で解析可能です
fs = 1000e3;
Ts = 1/fs;
tsim = 0.001;
n = floor(tsim/Ts);
t = (0:n-1)'*Ts;
y = zeros(n,1);
fin = 1000;
a = 1;
y(1:end) = a*sin(2*pi*fin*t);
T = numerictype(true,64,60);
F = fimath('OverflowMode', 'saturate',...
'RoundMode', 'round',...
'SumMode', 'FullPrecision',...
'ProductMode', 'FullPrecision',...
'MaxProductWordLength', 256,...
'MaxSumWordLength', 256);
y_fi = fi(y,T,F);
double型にしてパワースペクトル解析を行います
pspectrum(double(y_fi),fs)
手前みそになりますが、信号解析系はMATLABで行うFFT ~1行でパワースペクトル解析~を参考いただけると幸いです。
  1 件のコメント
K_S_
K_S_ 2022 年 7 月 26 日
ご回答いただきありがとうございます。
double型での解析について、参考にさせていただきます。

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

カテゴリ

Help Center および File Exchangeフーリエ解析とフィルター処理 についてさらに検索

タグ

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!