入力信号のフーリエ変換を計算する必要があるmatlabを使用して因子を見つけようとしています。問題は私にこのように述べられました:
fbin = 50HZ
0 <= n <= 1999
alpha = F {Blackman[2000] . cos[-2pi . fbin . n/2000]} (f)
where F is the Continous Time Fourier Transform operator.
私のMATLABコードは次のようになります。
blackman_v = blackman(2000);
signal_x = cos(-2 * pi() .* fbin * (0:(1999)) ./ 2000) .* blackman_v';
fft_real = abs(fft(signal_x, 2000));
alpha = fft_real(51); %51 is the bin for 50hz => or {(f * N/Fs)+1}==51
私の問題は、49hzで約412の値を取得することになっているのに、約250を取得することです(実際にいくつかの以前の結果を検証しています)。問題を間違って翻訳しましたか?私はかなり長い間戦ってきました、そして私はここで本当に何も悪いことを見ません。値は50Hz(430)で大丈夫だと思いました。
ヒントをいただければ幸いです。
編集
blackman_v = blackman(2000);
signal_x = cos(-2 * pi() .* fbin * (0:(1999)) ./ 2000) .* blackman_v';
alpha = abs(freqz(signal_x , 1, 2*pi*50/10000))
あなたは周波数が何であるか知っていますか?matlab docを読みましたが、まだ頭の中ではっきりしていません。