サイン入力を使用して、周波数を変更し、スペクトル内のいくつかの低い周波数をカットして、メイン周波数をゼロにシフトしようとしました。信号はfftshiftされていないので、fftベクトルの最初と最後でいくつかのサンプルを削除することでそれを試みました。
interval = 1;
samplingFrequency = 44100;
signalFrequency = 440;
sampleDuration = 1 / samplingFrequency;
timespan = 1 : sampleDuration : (1 + interval);
original = sin(2 * pi * signalFrequency * timespan);
fourierTransform = fft(original);
frequencyCut = 10; %% Hertz
frequencyCut = floor(frequencyCut * (length(pattern) / samplingFrequency) / 4); %% Samples
maxFrequency = length(fourierTransform) - (2 * frequencyCut);
signal = ifft(fourierTransform(frequencyCut + 1:maxFrequency), 'symmetric');
しかし、期待どおりに機能しませんでした。また、スペクトルの中央部分を削除しようとしましたが、より高い周波数の正弦波も使用しました。
それを正しくする方法は?