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

2 views (last 30 days)
K_S_
K_S_ on 25 Jul 2022
Commented: K_S_ on 26 Jul 2022
下記のような符​号付固定小数点の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 Comments
Hernia Baby
Hernia Baby on 25 Jul 2022
すみませんが2点教えてください
double型に戻してFFTを行うことは大丈夫でしょうか?
②ここでいうFFTとは周波数×パワースペクトラムでしょうか?
 それとも複素数に変換されたものでしょうか?
K_S_
K_S_ on 25 Jul 2022
ご質問ありがとうございます。
①double型に戻さずFFTを行いたいです。
②周波数×パワースペクトラムです。
以上、よろしくお願いいたします。

Sign in to comment.

Answers (1)

Hernia Baby
Hernia Baby on 26 Jul 2022
①について
 すみませんが、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 Comment
K_S_
K_S_ on 26 Jul 2022
ご回答いただきありがとうございます。
double型での解析について、参考にさせていただきます。

Sign in to comment.

Categories

Find more on フーリエ解析とフィルター処理 in Help Center and File Exchange

Tags

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!